branch: externals/diff-hl
commit 902d082d70b962103342ee46e73fc6886bc8720a
Author: Dmitry Gutov <[email protected]>
Commit: Dmitry Gutov <[email protected]>
Check buffer liveness (both work buffers and source buffer)
Fixes #281
---
diff-hl.el | 32 +++++++++++++++++---------------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/diff-hl.el b/diff-hl.el
index 37331acfb5..d628d260d2 100644
--- a/diff-hl.el
+++ b/diff-hl.el
@@ -730,27 +730,29 @@ Return a list of line overlays used."
(diff-hl--resolve
reference
(lambda (ref-changes)
- (let ((ref-changes (diff-hl-adjust-changes ref-changes changes))
- reuse)
- (with-current-buffer orig
- (diff-hl-remove-overlays)
- (let ((diff-hl-highlight-function
- diff-hl-highlight-reference-function)
- (diff-hl-fringe-face-function
- diff-hl-fringe-reference-face-function))
- (setq reuse (diff-hl--update-overlays ref-changes nil)))
- (diff-hl--update-overlays changes reuse)
- (when (not (or changes ref-changes))
- (diff-hl--autohide-margin))))))))))
+ (when (buffer-live-p orig)
+ (let ((ref-changes (diff-hl-adjust-changes ref-changes changes))
+ reuse)
+ (with-current-buffer orig
+ (diff-hl-remove-overlays)
+ (let ((diff-hl-highlight-function
+ diff-hl-highlight-reference-function)
+ (diff-hl-fringe-face-function
+ diff-hl-fringe-reference-face-function))
+ (setq reuse (diff-hl--update-overlays ref-changes nil)))
+ (diff-hl--update-overlays changes reuse)
+ (when (not (or changes ref-changes))
+ (diff-hl--autohide-margin)))))))))))
(defun diff-hl--resolve (value-or-buffer cb)
(if (listp value-or-buffer)
(funcall cb value-or-buffer)
(static-if (fboundp 'vc-run-delayed-success)
;; Emacs 31.
- (with-current-buffer value-or-buffer
- (vc-run-delayed-success 1
- (funcall cb (diff-hl-changes-from-buffer (current-buffer)))))
+ (when (get-buffer value-or-buffer)
+ (with-current-buffer value-or-buffer
+ (vc-run-delayed-success 1
+ (funcall cb (diff-hl-changes-from-buffer (current-buffer))))))
(diff-hl--when-done value-or-buffer
#'diff-hl-changes-from-buffer
cb))))