branch: externals/diff-hl
commit 55806aa9aa203a5f512bbf8843bd37c79820d6f2
Author: James Cherti <[email protected]>
Commit: James Cherti <[email protected]>
Simplify base buffer resolution for indirect buffers
---
diff-hl.el | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/diff-hl.el b/diff-hl.el
index 647285dd05..5bc895f60f 100644
--- a/diff-hl.el
+++ b/diff-hl.el
@@ -314,14 +314,14 @@ It can be a relative expression as well, such as
\"HEAD^\" with Git, or
(lambda (value)
(or (null value) (stringp value))))
+(defun diff-hl--target-buffer (buf)
+ "Return the correct buffer for the situation, preferring the base buffer."
+ (or (buffer-base-buffer buf) buf))
+
(defun diff-hl--buffer-file-name (&optional buffer)
"Return the file name of the BUFFER or its base buffer.
BUFFER defaults to the current buffer."
- (let* ((buffer (or buffer (current-buffer)))
- (base-buffer (buffer-base-buffer buffer)))
- (if base-buffer
- (buffer-file-name base-buffer)
- (buffer-file-name buffer))))
+ (buffer-file-name (diff-hl--target-buffer (or buffer (current-buffer)))))
(defun diff-hl-define-bitmaps ()
(let* ((scale (if (and (boundp 'text-scale-mode-amount)
@@ -741,11 +741,10 @@ Return a list of line overlays used."
(lambda (ref-changes)
(when (buffer-live-p orig)
(let ((ref-changes (diff-hl-adjust-changes ref-changes changes))
- (base (or (buffer-base-buffer orig) orig)))
+ (base (diff-hl--target-buffer orig)))
(dolist (buf (buffer-list))
(when (and (buffer-live-p buf)
- (or (eq buf base)
- (eq (buffer-base-buffer buf) base))
+ (eq (diff-hl--target-buffer buf) base)
(buffer-local-value 'diff-hl-mode buf))
(with-current-buffer buf
(let (reuse)