From dbb4aac212833035203efb969339b71aff86f2ea Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 11 Jan 2018 10:11:39 -0500 Subject: [PATCH] * lisp/emacs-lisp/syntax.el (syntax-propertize): Fix bug#29767 --- lisp/emacs-lisp/syntax.el | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el index a1b70b18693..6106720f7a5 100644 --- a/lisp/emacs-lisp/syntax.el +++ b/lisp/emacs-lisp/syntax.el @@ -291,6 +291,14 @@ END) suitable for `syntax-propertize-function'." ;; (message "Needs to syntax-propertize from %s to %s" ;; syntax-propertize--done pos) (set (make-local-variable 'parse-sexp-lookup-properties) t) + (when (< syntax-propertize--done (point-min)) + ;; *Usually* syntax-propertize is called via syntax-ppss which + ;; takes care of adding syntax-ppss-flush-cache to b-c-f, but this + ;; is not *always* the case, so since we share a single "flush" function + ;; between syntax-ppss and syntax-propertize, we also have to make + ;; sure the flush function is installed here (bug#29767). + (add-hook 'before-change-functions + #'syntax-ppss-flush-cache t t)) (save-excursion (with-silent-modifications (make-local-variable 'syntax-propertize--done) ;Just in case! -- 2.11.4.GIT