mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-10 00:00:39 -08:00
* lisp/emacs-lisp/syntax.el (syntax-propertize): Use run-hook-wrapped
This way we avoid making assumptions about the content of syntax-propertize-extend-region-functions
This commit is contained in:
parent
67bcde188f
commit
5601eb231f
1 changed files with 21 additions and 17 deletions
|
|
@ -345,23 +345,27 @@ END) suitable for `syntax-propertize-function'."
|
|||
(end (max pos
|
||||
(min (point-max)
|
||||
(+ start syntax-propertize-chunk-size))))
|
||||
(funs syntax-propertize-extend-region-functions))
|
||||
(while funs
|
||||
(let ((new (funcall (pop funs) start end))
|
||||
;; Avoid recursion!
|
||||
(syntax-propertize--done most-positive-fixnum))
|
||||
(if (or (null new)
|
||||
(and (>= (car new) start) (<= (cdr new) end)))
|
||||
nil
|
||||
(setq start (car new))
|
||||
(setq end (cdr new))
|
||||
;; If there's been a change, we should go through the
|
||||
;; list again since this new position may
|
||||
;; warrant a different answer from one of the funs we've
|
||||
;; already seen.
|
||||
(unless (eq funs
|
||||
(cdr syntax-propertize-extend-region-functions))
|
||||
(setq funs syntax-propertize-extend-region-functions)))))
|
||||
(first t)
|
||||
(repeat t))
|
||||
(while repeat
|
||||
(setq repeat nil)
|
||||
(run-hook-wrapped
|
||||
'syntax-propertize-extend-region-functions
|
||||
(lambda (f)
|
||||
(let ((new (funcall f start end))
|
||||
;; Avoid recursion!
|
||||
(syntax-propertize--done most-positive-fixnum))
|
||||
(if (or (null new)
|
||||
(and (>= (car new) start) (<= (cdr new) end)))
|
||||
nil
|
||||
(setq start (car new))
|
||||
(setq end (cdr new))
|
||||
;; If there's been a change, we should go through the
|
||||
;; list again since this new position may
|
||||
;; warrant a different answer from one of the funs we've
|
||||
;; already seen.
|
||||
(unless first (setq repeat t))))
|
||||
(setq first nil))))
|
||||
;; Flush ppss cache between the original value of `start' and that
|
||||
;; set above by syntax-propertize-extend-region-functions.
|
||||
(syntax-ppss-flush-cache start)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue