# HG changeset patch # User Glenn Morris # Date 1110979435 0 # Node ID 5294e5833aef48be1a5f9f86371f6e44c24b21be # Parent 3a754b1548d3d66332df5309eff04b456c0d110c (mark-diary-entries): Use new optional argument REDRAW rather than calendar-redrawing variable. From Matt Hodges : (diary-redraw-calendar): Preserve point in diary-file buffer. diff -r 3a754b1548d3 -r 5294e5833aef lisp/calendar/diary-lib.el --- a/lisp/calendar/diary-lib.el Wed Mar 16 13:23:09 2005 +0000 +++ b/lisp/calendar/diary-lib.el Wed Mar 16 13:23:55 2005 +0000 @@ -835,21 +835,23 @@ (defvar marking-diary-entry nil "True during the marking of diary entries, if current entry is marking.") -(defun mark-diary-entries () +(defun mark-diary-entries (&optional redraw) "Mark days in the calendar window that have diary entries. -Each entry in the diary file visible in the calendar window is marked. -After the entries are marked, the hooks `nongregorian-diary-marking-hook' and -`mark-diary-entries-hook' are run." - (interactive) - ;; To remove any deleted diary entries. - (when (and mark-diary-entries-in-calendar - ;; Avoid redrawing when called recursively, eg through - ;; mark-diary-entries-hook for #include's, else only get - ;; the last set of diary marks. - (not marking-diary-entries) - ;; If called from redraw-calendar, the calendar has been - ;; erased, so no need to unmark the diary entries. - (not calendar-redrawing)) +Each entry in the diary file visible in the calendar window is +marked. After the entries are marked, the hooks +`nongregorian-diary-marking-hook' and `mark-diary-entries-hook' +are run. If the optional argument REDRAW is non-nil (which is +the case interactively, for example) then any existing diary +marks are first removed. This is intended to deal with deleted +diary entries." + (interactive "p") + ;; To remove any deleted diary entries. Do not redraw when: + ;; i) processing #include diary files (else only get the marks from + ;; the last #include file processed). + ;; ii) called via calendar-redraw (since calendar has already been + ;; erased). + ;; Use of REDRAW handles both of these cases. + (when (and redraw mark-diary-entries-in-calendar) (setq mark-diary-entries-in-calendar nil) (redraw-calendar)) (let ((marking-diary-entries t) @@ -1661,7 +1663,8 @@ (defun diary-redraw-calendar () "If `calendar-buffer' is live and diary entries are marked, redraw it." (and mark-diary-entries-in-calendar - (redraw-calendar)) + (save-excursion + (redraw-calendar))) ;; Return value suitable for `write-contents-functions'. nil)