# HG changeset patch # User Edward M. Reingold # Date 802130537 0 # Node ID 017af11017a00400d995df9fffb7743ea6ffefb3 # Parent b163768a998fd4bacc8a01f0df30378497cdcf80 Fixed calendar-string-spread to allow 0 or 1 string; this simplified several calls to it. diff -r b163768a998f -r 017af11017a0 lisp/calendar/calendar.el --- a/lisp/calendar/calendar.el Fri Jun 02 14:45:21 1995 +0000 +++ b/lisp/calendar/calendar.el Fri Jun 02 22:02:17 1995 +0000 @@ -1329,7 +1329,7 @@ (goto-char (point-min)) (calendar-insert-indented (calendar-string-spread - (list "" (format "%s %d" (calendar-month-name month) year) "") ? 20) + (list (format "%s %d" (calendar-month-name month) year)) ? 20) indent t) (calendar-insert-indented "" indent);; Go to proper spot (calendar-for-loop i from 0 to 6 do @@ -1536,16 +1536,18 @@ (make-local-variable 'displayed-year));; Year in middle of window. (defun calendar-string-spread (strings char length) - "Concatenate list of STRINGS separated with copies of CHAR to fill LENGTH -There must be at least 2 strings. The effect is like mapconcat but the -separating pieces are as balanced as possible. Each item of STRINGS is -evaluated before concatenation so it can actually be an expression that -evaluates to a string. If LENGTH is too short, the STRINGS are just -concatenated and the result truncated." + "Concatenate list of STRINGS separated with copies of CHAR to fill LENGTH. +The effect is like mapconcat but the separating pieces are as balanced as +possible. Each item of STRINGS is evaluated before concatenation so it can +actually be an expression that evaluates to a string. If LENGTH is too short, +the STRINGS are just concatenated and the result truncated." ;; The algorithm is based on equation (3.25) on page 85 of Concrete ;; Mathematics by Ronald L. Graham, Donald E. Knuth, and Oren Patashnik, ;; Addison-Wesley, Reading, MA, 1989 - (let* ((strings (mapcar 'eval strings)) + (let* ((strings (mapcar 'eval + (if (< (length strings) 2) + (append (list "") strings (list "")) + strings))) (n (- length (length (apply 'concat strings)))) (m (1- (length strings))) (s (car strings)) @@ -2798,7 +2800,7 @@ (defun calendar-set-mode-line (str) "Set mode line to STR, centered, surrounded by dashes." (setq mode-line-format - (calendar-string-spread (list "" str "") ?- (frame-width)))) + (calendar-string-spread (list str) ?- (frame-width)))) ;;;###autoload (defun list-yahrzeit-dates (death-date start-year end-year)