summaryrefslogtreecommitdiff
path: root/lisp/font-lock.el
diff options
context:
space:
mode:
authorSébastien Miquel <sebastien.miquel@posteo.eu>2022-06-19 15:12:44 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2022-06-19 15:12:44 +0200
commite125d4b8207a330133e49263551bb85cd1e4fd31 (patch)
treedf3549d51411f29983f6b992fd31ace8f58e2a4e /lisp/font-lock.el
parent37f168afdd272d4094da9a975425e797f253e63b (diff)
downloademacs-e125d4b8207a330133e49263551bb85cd1e4fd31.tar.gz
Small fix in font-lock-extend-region-multiline
* lisp/font-lock.el (font-lock-extend-region-multiline): Do not extend the region if `font-lock-multiline' starts at `font-lock-end' (bug#46558).
Diffstat (limited to 'lisp/font-lock.el')
-rw-r--r--lisp/font-lock.el17
1 files changed, 11 insertions, 6 deletions
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 488874a1755..df0a26f4d0f 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -1245,12 +1245,17 @@ Put first the functions more likely to cause a change and cheaper to compute.")
(setq font-lock-beg (or (previous-single-property-change
font-lock-beg 'font-lock-multiline)
(point-min))))
- ;;
- (when (get-text-property font-lock-end 'font-lock-multiline)
- (setq changed t)
- (setq font-lock-end (or (text-property-any font-lock-end (point-max)
- 'font-lock-multiline nil)
- (point-max))))
+ ;; If `font-lock-multiline' starts at `font-lock-end', do not
+ ;; extend the region.
+ (let ((before-end (max (point-min) (1- font-lock-end)))
+ (new-end nil))
+ (when (get-text-property before-end 'font-lock-multiline)
+ (setq new-end (or (text-property-any before-end (point-max)
+ 'font-lock-multiline nil)
+ (point-max)))
+ (when (/= new-end font-lock-end)
+ (setq changed t)
+ (setq font-lock-end new-end))))
changed))
(defun font-lock-extend-region-wholelines ()