Commit 92b99a01 authored by Glenn Morris's avatar Glenn Morris

Fix bug#6999.

* lisp/calendar/diary-lib.el (diary-included-files): New variable.
(diary-list-entries): Maybe initialize diary-included-files.
(diary-include-other-diary-files): Append to diary-included-files.
* lisp/calendar/appt.el (appt-update-list): Also check the members of
diary-included-files.
parent 5a66ed0f
2010-09-14 Glenn Morris <rgm@gnu.org>
* calendar/diary-lib.el (diary-included-files): New variable.
(diary-list-entries): Maybe initialize diary-included-files.
(diary-include-other-diary-files): Append to diary-included-files.
* calendar/appt.el (appt-update-list): Also check the members of
diary-included-files. (Bug#6999)
2010-09-12 David Reitter <david.reitter@gmail.com>
* simple.el (line-move-visual): Do not truncate goal column to
......
......@@ -345,6 +345,8 @@ displayed in a window:
(if d-buff ; diary buffer exists
(with-current-buffer d-buff
diary-selective-display))))
;; FIXME why not using diary-list-entries with
;; non-nil LIST-ONLY?
(diary)
;; If the diary buffer existed before this command,
;; restore its display state. Otherwise, kill it.
......@@ -642,8 +644,10 @@ hour and minute parts."
(defun appt-update-list ()
"If the current buffer is visiting the diary, update appointments.
This function is intended for use with `write-file-functions'."
(and (string-equal buffer-file-name (expand-file-name diary-file))
This function also acts on any file listed in `diary-included-files'.
It is intended for use with `write-file-functions'."
(and (member buffer-file-name (append diary-included-files
(list (expand-file-name diary-file))))
appt-timer
(let ((appt-display-diary nil))
(appt-check t)))
......
......@@ -699,6 +699,10 @@ of the appropriate type."
(1+ (calendar-absolute-from-gregorian gdate))))))
(goto-char (point-min)))
(defvar diary-including) ; dynamically bound in diary-include-other-diary-files
(defvar diary-included-files nil
"List of any diary files included in the last call to `diary-list-entries'.")
;; FIXME non-greg and list hooks run same number of times?
(defun diary-list-entries (date number &optional list-only)
"Create and display a buffer containing the relevant lines in `diary-file'.
......@@ -743,6 +747,8 @@ LIST-ONLY is non-nil, in which case it just returns the list."
(date-string (calendar-date-string date))
(diary-buffer (find-buffer-visiting diary-file))
diary-entries-list file-glob-attrs)
(or (bound-and-true-p diary-including)
(setq diary-included-files nil))
(message "Preparing diary...")
(save-current-buffer
(if (not diary-buffer)
......@@ -828,11 +834,15 @@ the variable `diary-include-string'."
(let ((diary-file (match-string-no-properties 1))
(diary-list-entries-hook 'diary-include-other-diary-files)
(diary-display-function 'ignore)
(diary-including t)
diary-hook diary-list-include-blanks)
(if (file-exists-p diary-file)
(if (file-readable-p diary-file)
(unwind-protect
(setq diary-entries-list
(setq diary-included-files
(append diary-included-files
(list (expand-file-name diary-file)))
diary-entries-list
(append diary-entries-list
(diary-list-entries original-date number)))
(with-current-buffer (find-buffer-visiting diary-file)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment