+2007-03-21 Glenn Morris <rgm@gnu.org>
+
+ * calendar/calendar.el (diary-set-maybe-redraw): Autoload it.
+ (diary-display-hook): Add custom :set function.
+
+ * calendar/diary-lib.el (diary-header-line-flag): Doc fix. Add
+ custom :set function.
+ (diary-header-line-format): Doc fix.
+ (diary-set-maybe-redraw): New function.
+ (number-of-diary-entries): Change :set to use diary-set-maybe-redraw.
+ (diary-list-entries): Always run diary-mode.
+
2007-03-20 David Kastrup <dak@gnu.org>
* files.el (magic-mode-alist): Require literal "%!PS" string for
;; This can be removed once the kill/yank treatment of invisible text
;; (see etc/TODO) is fixed. -- gm
(defcustom diary-header-line-flag t
- "If non-nil, `diary-simple-display' will show a header line.
+ "If non-nil, `simple-diary-display' will show a header line.
The format of the header is specified by `diary-header-line-format'."
:group 'diary
:type 'boolean
+ :initialize 'custom-initialize-default
+ :set 'diary-set-maybe-redraw
:version "22.1")
(defvar diary-selective-display nil)
before edit/copy"
"Diary"))
?\s (frame-width)))
- "Format of the header line displayed by `diary-simple-display'.
+ "Format of the header line displayed by `simple-diary-display'.
Only used if `diary-header-line-flag' is non-nil."
:group 'diary
:type 'sexp
(with-current-buffer dbuff
diary-selective-display))))))
+(defun diary-set-maybe-redraw (symbol value)
+ "Set SYMBOL's value to VALUE, and redraw the diary if necessary.
+Redraws the diary if it is being displayed (note this is not the same as
+just visiting the `diary-file'), and SYMBOL's value is to be changed."
+ (let ((oldvalue (eval symbol)))
+ (custom-set-default symbol value)
+ (and (not (equal value oldvalue))
+ (diary-live-p)
+ ;; Note this assumes diary was called without prefix arg.
+ (diary))))
+
(defcustom number-of-diary-entries 1
"Specifies how many days of diary entries are to be displayed initially.
This variable affects the diary display when the command \\[diary] is used,
(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))))
+ :set 'diary-set-maybe-redraw
:group 'diary)
(or (verify-visited-file-modtime diary-buffer)
(revert-buffer t t))))
;; Setup things like the header-line-format and invisibility-spec.
- (when (eq major-mode default-major-mode) (diary-mode))
+ ;; This used to only run if the major-mode was default-major-mode,
+ ;; but that meant eg changes to header-line-format did not
+ ;; take effect from one diary invocation to the next.
+ (diary-mode)
;; d-s-p is passed to the diary display function.
(let ((diary-saved-point (point)))
(save-excursion