(syntax-ppss-flush-cache): Fix corner boundary case.
Suggested by Martin Rudalics <rudalics@gmx.at>.
This commit is contained in:
parent
68f1aaeead
commit
889c5dad20
1 changed files with 9 additions and 5 deletions
|
@ -83,10 +83,14 @@ point (where the PPSS is equivalent to nil).")
|
|||
(setq syntax-ppss-cache (cdr syntax-ppss-cache)))
|
||||
;; Throw away `last' value if made invalid.
|
||||
(when (< beg (or (car syntax-ppss-last) 0))
|
||||
(if (< beg (or (car (nth 10 syntax-ppss-last))
|
||||
(nth 9 syntax-ppss-last)
|
||||
(nth 2 syntax-ppss-last)
|
||||
0))
|
||||
;; If syntax-begin-function jumped to BEG, then the old state at BEG can
|
||||
;; depend on the text after BEG (which is presumably changed). So if
|
||||
;; BEG=(car (nth 10 syntax-ppss-last)) don't reuse that data because the
|
||||
;; assumed nil state at BEG may not be valid any more.
|
||||
(if (<= beg (or (car (nth 10 syntax-ppss-last))
|
||||
(nth 9 syntax-ppss-last)
|
||||
(nth 2 syntax-ppss-last)
|
||||
0))
|
||||
(setq syntax-ppss-last nil)
|
||||
(setcar syntax-ppss-last nil)))
|
||||
;; Unregister if there's no cache left. Sadly this doesn't work
|
||||
|
@ -293,5 +297,5 @@ Point is at POS when this function returns."
|
|||
|
||||
(provide 'syntax)
|
||||
|
||||
;;; arch-tag: 302f1eeb-e77c-4680-a8c5-c543e01161a5
|
||||
;; arch-tag: 302f1eeb-e77c-4680-a8c5-c543e01161a5
|
||||
;;; syntax.el ends here
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue