emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-25 02cd9cb: Check if the file exists on disk before


From: Dmitry Gutov
Subject: [Emacs-diffs] emacs-25 02cd9cb: Check if the file exists on disk before producing the revert diff
Date: Thu, 26 Nov 2015 15:15:49 +0000

branch: emacs-25
commit 02cd9cb8afd9510e3bdb20ce7148d1b9a6aa9d12
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>

    Check if the file exists on disk before producing the revert diff
    
    * lisp/vc/vc-dispatcher.el (vc-buffer-sync): Check if the file
    exists on disk (bug#20558).
---
 lisp/vc/vc-dispatcher.el |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el
index ec55867..b8593e3 100644
--- a/lisp/vc/vc-dispatcher.el
+++ b/lisp/vc/vc-dispatcher.el
@@ -580,12 +580,20 @@ editing!"
 (defun vc-buffer-sync (&optional not-urgent)
   "Make sure the current buffer and its working file are in sync.
 NOT-URGENT means it is ok to continue if the user says not to save."
-  (when (buffer-modified-p)
-    (if (or vc-suppress-confirm
-           (y-or-n-p (format "Buffer %s modified; save it? " (buffer-name))))
-       (save-buffer)
-      (unless not-urgent
-       (error "Aborted")))))
+  (let (missing)
+    (when (cond
+           ((buffer-modified-p))
+           ((not (file-exists-p buffer-file-name))
+            (setq missing t)))
+      (if (or vc-suppress-confirm
+              (y-or-n-p (format "Buffer %s %s; save it? "
+                                (buffer-name)
+                                (if missing
+                                    "is missing on disk"
+                                  "modified"))))
+          (save-buffer)
+        (unless not-urgent
+          (error "Aborted"))))))
 
 ;; Command closures
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]