From: Jim Porter Date: Thu, 24 Jun 2021 16:07:25 +0000 (+0200) Subject: Ignore file-missing errors during diff-refined font-locking X-Git-Tag: emacs-28.0.90~2045 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ed30a7290cbca58c21560e8251738665118d98ef;p=emacs.git Ignore file-missing errors during diff-refined font-locking * lisp/vc/diff-mode.el (diff--font-lock-refined): Ignore file-missing errors (bug#49197). --- diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el index a0093391c69..4652afa1f92 100644 --- a/lisp/vc/diff-mode.el +++ b/lisp/vc/diff-mode.el @@ -2265,17 +2265,20 @@ Call FUN with two args (BEG and END) for each hunk." ;; same hunk. (goto-char (next-single-char-property-change (point) 'diff--font-lock-refined nil max))) - (diff--iterate-hunks - max - (lambda (beg end) - (unless (get-char-property beg 'diff--font-lock-refined) - (diff--refine-hunk beg end) - (let ((ol (make-overlay beg end))) - (overlay-put ol 'diff--font-lock-refined t) - (overlay-put ol 'diff-mode 'fine) - (overlay-put ol 'evaporate t) - (overlay-put ol 'modification-hooks - '(diff--overlay-auto-delete)))))))) + ;; Ignore errors that diff cannot be found so that custom font-lock + ;; keywords after `diff--font-lock-refined' can still be evaluated. + (ignore-error file-missing + (diff--iterate-hunks + max + (lambda (beg end) + (unless (get-char-property beg 'diff--font-lock-refined) + (diff--refine-hunk beg end) + (let ((ol (make-overlay beg end))) + (overlay-put ol 'diff--font-lock-refined t) + (overlay-put ol 'diff-mode 'fine) + (overlay-put ol 'evaporate t) + (overlay-put ol 'modification-hooks + '(diff--overlay-auto-delete))))))))) (defun diff--overlay-auto-delete (ol _after _beg _end &optional _len) (delete-overlay ol))