# HG changeset patch # User Glenn Morris # Date 1174376706 0 # Node ID 447e2a38ab14f62f57f7a910f70d61af1194785f # Parent 60bdcd6904577643b3e0fd190539f180b7c37cfe (diary-live-p): New function. (number-of-diary-entries): Add a :set function to redisplay diary when necessary. diff -r 60bdcd690457 -r 447e2a38ab14 lisp/calendar/diary-lib.el --- a/lisp/calendar/diary-lib.el Tue Mar 20 07:44:29 2007 +0000 +++ b/lisp/calendar/diary-lib.el Tue Mar 20 07:45:06 2007 +0000 @@ -290,6 +290,16 @@ (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 @@ (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)