(view-file-other-window, view-file-other-frame): Fix last change.
authorEli Zaretskii <eliz@gnu.org>
Sat, 12 Jan 2008 17:17:41 +0000 (17:17 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sat, 12 Jan 2008 17:17:41 +0000 (17:17 +0000)
(kill-buffer-if-not-modified): New function.
(view-file): Don't kill the buffer if it is modified.

lisp/ChangeLog
lisp/view.el

index b867771..ef40bc3 100644 (file)
@@ -2,6 +2,8 @@
 
        * view.el (view-file-other-window, view-file-other-frame): Don't
        kill the buffer if it is modified.  Doc fixes.
+       (kill-buffer-if-not-modified): New function.
+       (view-file): Don't kill the buffer if it is modified.
 
        * progmodes/ebrowse.el (ebrowse-view-file-other-window): Delete
        function.
index d2a7d5c..bdf7f6a 100644 (file)
@@ -238,6 +238,12 @@ This is local in each buffer, once it is used.")
 \f
 ;;; Commands that enter or exit view mode.
 
+(defun kill-buffer-if-not-modified (buf)
+  "Like `kill-buffer', but does nothing if the buffer is modified."
+  (let ((buf (or (bufferp buf) (get-buffer buf))))
+    (and buf (not (buffer-modified-p buf))
+        (kill-buffer buf))))
+
 ;;;###autoload
 (defun view-file (file)
   "View FILE in View mode, returning to previous buffer when done.
@@ -258,7 +264,7 @@ This command runs the normal hook `view-mode-hook'."
        (progn
          (switch-to-buffer buffer)
          (message "Not using View mode because the major mode is special"))
-      (view-buffer buffer (and (not had-a-buf) 'kill-buffer)))))
+      (view-buffer buffer (and (not had-a-buf) 'kill-buffer-if-not-modified)))))
 
 ;;;###autoload
 (defun view-file-other-window (file)
@@ -279,8 +285,7 @@ This command runs the normal hook `view-mode-hook'."
        (buf-to-view (find-file-noselect file)))
     (view-buffer-other-window buf-to-view nil
                              (and (not had-a-buf)
-                                  (not (buffer-modified-p buf-to-view))
-                                  'kill-buffer))))
+                                  'kill-buffer-if-not-modified))))
 
 ;;;###autoload
 (defun view-file-other-frame (file)
@@ -302,8 +307,7 @@ This command runs the normal hook `view-mode-hook'."
        (buf-to-view (find-file-noselect file)))
     (view-buffer-other-frame buf-to-view nil
                             (and (not had-a-buf)
-                                 (not (buffer-modified-p buf-to-view))
-                                 'kill-buffer))))
+                                 'kill-buffer-if-not-modified))))
 
 
 ;;;###autoload