Subject: 24.4.50; calendar-update-mode-line: Do not overwrite mode-line-format unconditionally

From: Christopher Schmidt <[email-masked]>
Date: Sat, 13 Sep 2014 05:48:40 -0400 (EDT)

severity: wishlist

--- lisp/ChangeLog
+++ lisp/ChangeLog
@@ -1,3 +1,9 @@
+2014-09-13  Christopher Schmidt  <[email-masked]>
+
+	* calendar/calendar.el (calendar-update-mode-line):
+	Do not overwrite mode-line-format if calendar-mode-line-format is
+	nil.  (Bug##)
+
 2014-09-13  Eli Zaretskii  <[email-masked]>

        * mail/rmailmm.el (rmail-mime-insert-html): Decode the HTML part
--- lisp/calendar/calendar.el
+++ lisp/calendar/calendar.el
@@ -1804,14 +1804,18 @@
                               nil "today"))
    '(calendar-date-string (calendar-current-date) t)
    (calendar-mode-line-entry 'calendar-scroll-left "next month" ">"))
-  "The mode line of the calendar buffer.
+  "If non-nil, the mode line of the calendar buffer.
 This is a list of items that evaluate to strings.  The elements
 are evaluated and concatenated, evenly separated by blanks.
 During evaluation, the variable `date' is available as the date
 nearest the cursor (or today's date if that fails).  To update
-the mode-line as the cursor moves, add `calendar-update-mode-line'
-to `calendar-move-hook'.  Here is an example that has the Hebrew date,
-the day number/days remaining in the year, and the ISO week/year numbers:
+the mode-line as the cursor moves, add
+`calendar-update-mode-line' to `calendar-move-hook'.
+
+If nil, do not modify the mode line at all.
+
+Here is an example that has the Hebrew date, the day number/days
+remaining in the year, and the ISO week/year numbers:

   (list
    \"\"
@@ -1889,7 +1893,8 @@

 (defun calendar-update-mode-line ()
   "Update the calendar mode line with the current date and date style."
-  (if (bufferp (get-buffer calendar-buffer))
+  (if (and calendar-mode-line-format
+           (bufferp (get-buffer calendar-buffer)))
       (with-current-buffer calendar-buffer
         (let ((start (- calendar-left-margin 2))
               (date (condition-case nil