From 81b0eade25e57fc39f9ee75be3f5adef8af93035 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 31 Mar 2015 00:04:39 -0400 Subject: [PATCH] * jit-lock.el (jit-lock--run-functions): Do the `or' where it can be nil. --- lisp/jit-lock.el | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index d271a447756..5fe2232f0bc 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el @@ -362,8 +362,14 @@ is active." (`(,this-beg . ,this-end) (if (eq (car-safe res) 'jit-lock-bounds) (cdr res) (cons beg end)))) - (setq tight-beg (max tight-beg (or this-beg (point-min)))) - (setq tight-end (max tight-end (or this-end (point-max)))) + ;; If all functions don't fontify the same region, we currently + ;; just try to "still be correct". But we could go further and for + ;; the chunks of text that was fontified by some functions but not + ;; all, we could add text-properties indicating which functions were + ;; already run to avoid running them redundantly when we get to + ;; those chunks. + (setq tight-beg (max (or tight-beg (point-min)) this-beg)) + (setq tight-end (max (or tight-end (point-max)) this-end)) (setq loose-beg (max loose-beg this-beg)) (setq loose-end (max loose-end this-end)) nil))) @@ -402,7 +408,7 @@ Defaults to the whole buffer. END can be out of bounds." ;; `tight' is the part we've fully refontified, and `loose' ;; is the part we've partly refontified (some of the ;; functions have refontified it but maybe not all). - ((`(,tight-beg ,tight-end ,loose-beg ,loose-end) + ((`(,tight-beg ,tight-end ,loose-beg ,_loose-end) (condition-case err (jit-lock--run-functions start next) ;; If the user quits (which shouldn't happen in normal -- 2.11.4.GIT