]> git.eshelyaron.com Git - emacs.git/commitdiff
(mark-included-diary-files): Only kill included diary buffer if it was
authorGlenn Morris <rgm@gnu.org>
Mon, 30 May 2005 11:30:47 +0000 (11:30 +0000)
committerGlenn Morris <rgm@gnu.org>
Mon, 30 May 2005 11:30:47 +0000 (11:30 +0000)
not already being visited.
Reported by Stephen Berman <Stephen.Berman@gmx.net>.

lisp/calendar/diary-lib.el

index 312b8841cf950e903e6c6afc0600292910c41bfa..c8e6843d4b2857bd27c09b100f20b41665b8de2c 100644 (file)
@@ -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))