emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] master f0b945a 14/25: Don't call vc-state unless the file exists


From: Dmitry Gutov
Subject: [elpa] master f0b945a 14/25: Don't call vc-state unless the file exists
Date: Sat, 8 Dec 2018 19:19:39 -0500 (EST)

branch: master
commit f0b945a4c4ac31cfccd72e885bacae652d3765f9
Author: Wilfred Hughes <address@hidden>
Commit: Wilfred Hughes <address@hidden>

    Don't call vc-state unless the file exists
    
    If a buffer is visiting a file whose parent directory has been
    renamed, vc-state throws an error because (buffer-file-path) no longer
    points to an existing file.
    
    Ensure that we never call vc-state when the file doesn't exist. This
    issue can occur with diff-hl-flydiff, or when using
    diff-hl-magit-post-refresh as documented in the readme.
    
    This change causes diff-hl to stop highlighting in the current buffer,
    which is the best we can do when we can't find the file.
---
 diff-hl-flydiff.el | 1 +
 diff-hl.el         | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/diff-hl-flydiff.el b/diff-hl-flydiff.el
index 627840e..5b1522c 100644
--- a/diff-hl-flydiff.el
+++ b/diff-hl-flydiff.el
@@ -140,6 +140,7 @@ This requires the external program `diff' to be in your 
`exec-path'."
   (unless (or
            (not diff-hl-mode)
            (= diff-hl-flydiff-modified-tick (buffer-modified-tick))
+           (not (file-exists-p (buffer-file-name)))
            (file-remote-p default-directory))
     (diff-hl-update)))
 
diff --git a/diff-hl.el b/diff-hl.el
index d882eb1..86d9cc6 100644
--- a/diff-hl.el
+++ b/diff-hl.el
@@ -549,7 +549,8 @@ The value of this variable is a mode line template as in
                  ;; (diff-hl-mode could be non-nil there, even if
                  ;; buffer-file-name is nil):
                  (buffer-file-name buf)
-                 (file-in-directory-p (buffer-file-name buf) topdir))
+                 (file-in-directory-p (buffer-file-name buf) topdir)
+                 (file-exists-p (buffer-file-name buf)))
         (with-current-buffer buf
           (let* ((file buffer-file-name)
                  (backend (vc-backend file)))



reply via email to

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