diff options
author | Alan Mackenzie <acm@muc.de> | 2016-01-08 14:41:58 +0000 |
---|---|---|
committer | Alan Mackenzie <acm@muc.de> | 2016-01-08 14:41:58 +0000 |
commit | 8be046f453b3f74eaf41154f28b85d45d2cc3844 (patch) | |
tree | e633c33d6c6877d21a42690b8443c971ca3022a8 /lisp/font-lock.el | |
parent | 4b37cba3d55abf6788768c6017019d1039aa6c2e (diff) | |
download | emacs-8be046f453b3f74eaf41154f28b85d45d2cc3844.tar.gz |
Respect fontification region calculated by major mode. Fixes bug #22316.
* lisp/font-lock.el (font-lock-extend-jit-lock-region-after-change): when a
fontification region has been calculated by a function on
font-lock-extend-after-change-region-function use this region rather than
changing the end position to somewhere else.
Diffstat (limited to 'lisp/font-lock.el')
-rw-r--r-- | lisp/font-lock.el | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 4a92069b12e..3c1f01d5886 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1302,15 +1302,18 @@ This function does 2 things: (point-min)))) (when (< end (point-max)) (setq end - (if (get-text-property end 'font-lock-multiline) - (or (text-property-any end (point-max) - 'font-lock-multiline nil) - (point-max)) + (cond + ((get-text-property end 'font-lock-multiline) + (or (text-property-any end (point-max) + 'font-lock-multiline nil) + (point-max))) + ;; If `end' has been set by the function above, don't corrupt it. + (font-lock-extend-after-change-region-function end) ;; Rounding up to a whole number of lines should include the ;; line right after `end'. Typical case: the first char of ;; the line was deleted. Or a \n was inserted in the middle ;; of a line. - (1+ end)))) + (t (1+ end))))) ;; Finally, pre-enlarge the region to a whole number of lines, to try ;; and anticipate what font-lock-default-fontify-region will do, so as to ;; avoid double-redisplay. |