@@ -741,21 +741,25 @@ Return a list of line overlays used."
741741 (lambda (ref-changes )
742742 (when (buffer-live-p orig)
743743 (let ((ref-changes (diff-hl-adjust-changes ref-changes changes))
744- (base (diff-hl--target-buffer orig)))
744+ (base (diff-hl--target-buffer orig))
745+ (has-changes (or changes ref-changes)))
745746 (dolist (buf (buffer-list ))
746747 (when (and (buffer-live-p buf)
747- (eq (diff-hl--target-buffer buf) base)
748- ( buffer-local-value 'diff-hl-mode buf))
748+ (or ( eq buf base)
749+ ( eq ( buffer-base-buffer buf) base) ))
749750 (with-current-buffer buf
750- (let (reuse )
751+ (when ( bound-and-true-p diff-hl-mode )
751752 (diff-hl-remove-overlays)
752- (let ((diff-hl-highlight-function
753- diff-hl-highlight-reference-function)
754- (diff-hl-fringe-face-function
755- diff-hl-fringe-reference-face-function))
756- (setq reuse (diff-hl--update-overlays ref-changes nil )))
757- (diff-hl--update-overlays changes reuse)
758- (when (not (or changes ref-changes))
753+ (let (reuse)
754+ (when ref-changes
755+ (let ((diff-hl-highlight-function
756+ diff-hl-highlight-reference-function)
757+ (diff-hl-fringe-face-function
758+ diff-hl-fringe-reference-face-function))
759+ (setq reuse (diff-hl--update-overlays ref-changes nil ))))
760+ (when (or changes reuse)
761+ (diff-hl--update-overlays changes reuse)))
762+ (unless has-changes
759763 (diff-hl--autohide-margin))))))))))))))
760764
761765(defun diff-hl--resolve (value-or-buffer cb )
0 commit comments