cvs diff: Diffing . Index: cal-move.el =================================================================== RCS file: /cvsroot/emacs/emacs/lisp/calendar/cal-move.el,v retrieving revision 1.9 diff -u -r1.9 cal-move.el --- cal-move.el 1 Sep 2003 15:45:19 -0000 1.9 +++ cal-move.el 10 Mar 2005 10:40:19 -0000 @@ -311,8 +311,9 @@ (* 3 (mod (- (calendar-day-of-week date) calendar-week-start-day) - 7)))))) - + 7))))) + (point)) + (defun calendar-goto-date (date) "Move cursor to DATE." (interactive (list (calendar-read-date))) Index: calendar.el =================================================================== RCS file: /cvsroot/emacs/emacs/lisp/calendar/calendar.el,v retrieving revision 1.163 diff -u -r1.163 calendar.el --- calendar.el 9 Mar 2005 00:28:22 -0000 1.163 +++ calendar.el 10 Mar 2005 10:40:19 -0000 @@ -2150,15 +2150,24 @@ (forward-line 1)))) t) +(defvar calendar-redrawing nil + "Internal calendar variable, non-nil if inside redraw-calendar.") + (defun redraw-calendar () "Redraw the calendar display, if `calendar-buffer' is live." (interactive) (if (get-buffer calendar-buffer) - (save-excursion + (let (posn window) (with-current-buffer calendar-buffer - (let ((cursor-date (calendar-cursor-to-nearest-date))) + (let ((cursor-date (calendar-cursor-to-nearest-date)) + (calendar-redrawing t)) (generate-calendar-window displayed-month displayed-year) - (calendar-cursor-to-visible-date cursor-date)))))) + (calendar-cursor-to-visible-date cursor-date)) + (setq posn (point))) + (setq window (get-buffer-window calendar-buffer)) + (when (and window + (not (eq window (selected-window)))) + (set-window-point window posn))))) ;;;###autoload (defcustom calendar-week-start-day 0 Index: diary-lib.el =================================================================== RCS file: /cvsroot/emacs/emacs/lisp/calendar/diary-lib.el,v retrieving revision 1.90 diff -u -r1.90 diary-lib.el --- diary-lib.el 9 Mar 2005 00:29:14 -0000 1.90 +++ diary-lib.el 10 Mar 2005 10:40:19 -0000 @@ -846,7 +846,8 @@ ;; 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)) + (not marking-diary-entries) + (not calendar-redrawing)) (setq mark-diary-entries-in-calendar nil) (redraw-calendar)) (let ((marking-diary-entries t) @@ -1658,7 +1659,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)