aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog9
-rw-r--r--lisp/files.el30
2 files changed, 25 insertions, 14 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c56b9536f9..ccda6c1344 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2002-09-13 Markus Rost <[email protected]>
+
+ * files.el (diff-buffer-with-file): Check whether associated file
+ exists. Display message for 1 second. Always return nil.
+
2002-09-13 Stefan Monnier <[email protected]>
* derived.el (define-derived-mode): Properly ignore unknown args.
@@ -81,8 +86,8 @@
2002-09-11 Vinicius Jose Latorre <[email protected]>
- * ps-print.el: Adjust ps-print-color-p, ps-default-fg and ps-default-bg
- setting.
+ * ps-print.el: Adjust ps-print-color-p, ps-default-fg and
+ ps-default-bg setting.
(ps-print-version): New version number (6.5.7).
(ps-mark-active-p): New fun.
(ps-print-preprint-region): Adjust code.
diff --git a/lisp/files.el b/lisp/files.el
index 31d2b8762f..020249dbf2 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -2999,18 +2999,24 @@ After saving the buffer, this function runs `after-save-hook'."
This requires the external program `diff' to be in your `exec-path'."
(interactive "bBuffer: ")
(with-current-buffer (get-buffer (or buffer (current-buffer)))
- (if (null buffer-file-name)
- (message "Buffer %s has no associated file" (buffer-name))
- (let ((tempfile (make-temp-file "buffer-content-")))
- (unwind-protect
- (save-restriction
- (widen)
- (write-region (point-min) (point-max) tempfile nil 'nomessage)
- (diff buffer-file-name tempfile nil t)
- (sit-for 0))
- (when (file-exists-p tempfile)
- (delete-file tempfile)))
- nil))))
+ (if (and buffer-file-name
+ (file-exists-p buffer-file-name))
+ (let ((tempfile (make-temp-file "buffer-content-")))
+ (unwind-protect
+ (save-restriction
+ (widen)
+ (write-region (point-min) (point-max) tempfile nil 'nomessage)
+ (diff buffer-file-name tempfile nil t)
+ (sit-for 0))
+ (when (file-exists-p tempfile)
+ (delete-file tempfile))))
+ (message "Buffer %s has no associated file on disc" (buffer-name))
+ ;; Display that message for 1 second so that user can read it
+ ;; in the minibuffer.
+ (sit-for 1)))
+ ;; return always nil, so that save-buffers-kill-emacs will not move
+ ;; over to the next unsaved buffer when calling `d'.
+ nil)
(defvar save-some-buffers-action-alist
'((?\C-r