changeset 70505:53adfd470fe4

(syntax-ppss): Flush the cache before rather than after a buffer modification.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 07 May 2006 14:11:05 +0000
parents f30d66ed3e9a
children f7aff7b6d4af
files lisp/ChangeLog lisp/emacs-lisp/syntax.el
diffstat 2 files changed, 20 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun May 07 12:09:42 2006 +0000
+++ b/lisp/ChangeLog	Sun May 07 14:11:05 2006 +0000
@@ -1,3 +1,8 @@
+2006-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* emacs-lisp/syntax.el (syntax-ppss): Flush the cache before rather
+	than after a buffer modification.
+
 2006-05-08  Nick Roberts  <nickrob@snap.net.nz>
 
 	* progmodes/gdb-ui.el (gdb-var-create-handler): Move speedbar
@@ -8,9 +13,8 @@
 	(gdb-speedbar-update, gdb-speedbar-timer-fn): New functions.
 	Use speedbar-timer-fn instead of speedbar-refresh (reverting
 	earlier change).
-	(gdb-var-evaluate-expression-handler) 
-	(gdb-var-list-children-handler-1, gdb-var-update-handler-1): 
-	Use it.
+	(gdb-var-evaluate-expression-handler)
+	(gdb-var-list-children-handler-1, gdb-var-update-handler-1): Use it.
 
 	* speedbar.el (speedbar-timer-fn): Remove save-window-excursion.
 	Update localized contents for all buffers except ignored modes.
@@ -29,14 +33,14 @@
 
 2006-05-07  John Paul Wallington  <jpw@pobox.com>
 
-	* ibuffer.el (ibuffer-compressed-file-name-regexp): Avoid
-	`regexp-opt'; simplify regexp for readability.
+	* ibuffer.el (ibuffer-compressed-file-name-regexp):
+	Avoid `regexp-opt'; simplify regexp for readability.
 
 2006-05-06  Eli Zaretskii  <eliz@gnu.org>
 
-	* ldefs-boot.el (dired-do-redisplay, dired-maybe-insert-subdir): 
-	* files.el (buffer-stale-function): 
-	* dired-aux.el (dired-do-redisplay, dired-maybe-insert-subdir): 
+	* ldefs-boot.el (dired-do-redisplay, dired-maybe-insert-subdir):
+	* files.el (buffer-stale-function):
+	* dired-aux.el (dired-do-redisplay, dired-maybe-insert-subdir):
 	* autorevert.el (global-auto-revert-non-file-buffers): Point Info
 	links to the main manual, not to emacs-xtra.
 
--- a/lisp/emacs-lisp/syntax.el	Sun May 07 12:09:42 2006 +0000
+++ b/lisp/emacs-lisp/syntax.el	Sun May 07 14:11:05 2006 +0000
@@ -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 @@
 	(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 @@
 		 ;; 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 @@
 		(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))