]> git.eshelyaron.com Git - emacs.git/commitdiff
(diary-live-p): New function.
authorGlenn Morris <rgm@gnu.org>
Tue, 20 Mar 2007 07:45:06 +0000 (07:45 +0000)
committerGlenn Morris <rgm@gnu.org>
Tue, 20 Mar 2007 07:45:06 +0000 (07:45 +0000)
(number-of-diary-entries): Add a :set function to redisplay diary
when necessary.

lisp/calendar/diary-lib.el

index f57120e5924fdb5bb9c8f32fdf24461a4f5c7392..b6fc4300f3efb49b765036fab0a53e003863d9f0 100644 (file)
@@ -290,6 +290,16 @@ Only used if `diary-header-line-flag' is non-nil."
 
 (defvar diary-saved-point)             ; internal
 
+(defun diary-live-p ()
+  "Return non-nil if the diary is being displayed.
+This is not the same as just visiting the `diary-file'."
+  (or (get-buffer fancy-diary-buffer)
+      (when diary-file
+        (let ((dbuff (find-buffer-visiting
+                      (substitute-in-file-name diary-file))))
+          (when dbuff
+            (with-current-buffer dbuff
+              diary-selective-display))))))
 
 (defcustom number-of-diary-entries 1
   "Specifies how many days of diary entries are to be displayed initially.
@@ -317,6 +327,15 @@ number of days of diary entries displayed."
                         (integer :tag "Thursday")
                         (integer :tag "Friday")
                         (integer :tag "Saturday")))
+  :initialize 'custom-initialize-default
+  ;; Redraw a live diary buffer if necessary. Note this assumes diary
+  ;; was not called with a prefix arg.
+  :set (lambda (symbol value)
+         (let ((oldvalue number-of-diary-entries))
+           (custom-set-default symbol value)
+           (and (not (equal value oldvalue))
+                (diary-live-p)
+                (diary))))
   :group 'diary)