Mercurial > emacs
changeset 60650:5294e5833aef
(mark-diary-entries): Use new optional argument REDRAW rather than
calendar-redrawing variable.
From Matt Hodges <MPHodges@member.fsf.org>:
(diary-redraw-calendar): Preserve point in diary-file buffer.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Wed, 16 Mar 2005 13:23:55 +0000 |
parents | 3a754b1548d3 |
children | de22fdff5bad |
files | lisp/calendar/diary-lib.el |
diffstat | 1 files changed, 18 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- 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)