From: Glenn Morris Date: Mon, 30 May 2005 11:30:47 +0000 (+0000) Subject: (mark-included-diary-files): Only kill included diary buffer if it was X-Git-Tag: emacs-pretest-22.0.90~9412 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bf87510ab4d8617528bb4240528fb8c23ae87eab;p=emacs.git (mark-included-diary-files): Only kill included diary buffer if it was not already being visited. Reported by Stephen Berman . --- diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index 312b8841cf9..c8e6843d4b2 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el @@ -1050,15 +1050,18 @@ changing the variable `diary-include-string'." (regexp-quote diary-include-string) " \"\\([^\"]*\\)\"") nil t) - (let ((diary-file (substitute-in-file-name - (buffer-substring-no-properties - (match-beginning 2) (match-end 2)))) - (mark-diary-entries-hook 'mark-included-diary-files)) + (let* ((diary-file (substitute-in-file-name + (match-string-no-properties 2))) + (mark-diary-entries-hook 'mark-included-diary-files) + (dbuff (find-buffer-visiting diary-file))) + ;; TODO if dbuff is non-nil, should we check for modifications + ;; and offer to save it first? (if (file-exists-p diary-file) (if (file-readable-p diary-file) (progn (mark-diary-entries) - (kill-buffer (find-buffer-visiting diary-file))) + (unless dbuff + (kill-buffer (find-buffer-visiting diary-file)))) (beep) (message "Can't read included diary file %s" diary-file) (sleep-for 2))