summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2006-05-07 14:11:05 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2006-05-07 14:11:05 +0000
commitad8a840d25775bd194419743a043309e4a0799af (patch)
treeab886186b6ecd337c54b39c527ec48d2c4aec2a1 /lisp/emacs-lisp
parentfa115ed7255a9ea37a177510976484916776ba3c (diff)
downloademacs-ad8a840d25775bd194419743a043309e4a0799af.tar.gz
emacs-ad8a840d25775bd194419743a043309e4a0799af.tar.bz2
emacs-ad8a840d25775bd194419743a043309e4a0799af.zip
(syntax-ppss): Flush the cache before rather than after a buffer modification.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/syntax.el17
1 files changed, 8 insertions, 9 deletions
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
index 1484c38a403..695d7877b38 100644
--- a/lisp/emacs-lisp/syntax.el
+++ b/lisp/emacs-lisp/syntax.el
@@ -27,9 +27,9 @@
;; The main exported function is `syntax-ppss'. You might also need
;; to call `syntax-ppss-flush-cache' or to add it to
-;; after-change-functions'(although this is automatically done by
+;; before-change-functions'(although this is automatically done by
;; syntax-ppss when needed, but that might fail if syntax-ppss is
-;; called in a context where after-change-functions is temporarily
+;; called in a context where before-change-functions is temporarily
;; let-bound to nil).
;;; Todo:
@@ -94,10 +94,9 @@ point (where the PPSS is equivalent to nil).")
(setq syntax-ppss-last nil)
(setcar syntax-ppss-last nil)))
;; Unregister if there's no cache left. Sadly this doesn't work
- ;; because `after-change-functions' is temporarily bound to nil here.
+ ;; because `before-change-functions' is temporarily bound to nil here.
;; (unless syntax-ppss-cache
- ;; (remove-hook 'after-change-functions
- ;; 'syntax-ppss-after-change-function t))
+ ;; (remove-hook 'before-change-functions 'syntax-ppss-flush-cache t))
)
(defvar syntax-ppss-stats
@@ -148,7 +147,7 @@ Point is at POS when this function returns."
;; too far from `pos', we could try to use other positions
;; in (nth 9 old-ppss), but that doesn't seem to happen in
;; practice and it would complicate this code (and the
- ;; after-change-function code even more). But maybe it
+ ;; before-change-function code even more). But maybe it
;; would be useful in "degenerate" cases such as when the
;; whole file is wrapped in a set of parenthesis.
(setq pt-min (or (car (nth 9 old-ppss))
@@ -176,10 +175,10 @@ Point is at POS when this function returns."
(setq cache (cdr cache)))
(if cache (setq pt-min (caar cache) ppss (cdar cache)))
- ;; Setup the after-change function if necessary.
+ ;; Setup the before-change function if necessary.
(unless (or syntax-ppss-cache syntax-ppss-last)
- (add-hook 'after-change-functions
- 'syntax-ppss-flush-cache nil t))
+ (add-hook 'before-change-functions
+ 'syntax-ppss-flush-cache t t))
;; Use the best of OLD-POS and CACHE.
(if (or (not old-pos) (< old-pos pt-min))