changeset 72248:a1a0b1eed3a8

(jit-lock-fontify-now): Preserve the buffer's modification status when forcing the second redisplay.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 03 Aug 2006 03:35:45 +0000
parents 2d16125405b4
children 268989954f79
files lisp/ChangeLog lisp/jit-lock.el
diffstat 2 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Aug 02 22:51:44 2006 +0000
+++ b/lisp/ChangeLog	Thu Aug 03 03:35:45 2006 +0000
@@ -1,3 +1,8 @@
+2006-08-02  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* jit-lock.el (jit-lock-fontify-now): Preserve the buffer's
+	modification status when forcing the second redisplay.
+
 2006-08-03  Kim F. Storm  <storm@cua.dk>
 
 	* edmacro.el (edmacro-fix-menu-commands): Ignore switch-frame.
--- a/lisp/jit-lock.el	Wed Aug 02 22:51:44 2006 +0000
+++ b/lisp/jit-lock.el	Thu Aug 03 03:35:45 2006 +0000
@@ -31,6 +31,8 @@
 
 
 (eval-when-compile
+  (require 'cl)
+
   (defmacro with-buffer-unmodified (&rest body)
     "Eval BODY, preserving the current buffer's modified state."
     (declare (debug t))
@@ -384,10 +386,14 @@
            ;; eagerly extend the refontified region with
            ;; jit-lock-after-change-extend-region-functions.
            (when (< start orig-start)
-             (run-with-timer
-              0 nil `(lambda ()
-                       (put-text-property ',start ',orig-start
-                                          'fontified t ',(current-buffer)))))
+             (lexical-let ((start start)
+                           (orig-start orig-start)
+                           (buf (current-buffer)))
+               (run-with-timer
+                0 nil (lambda ()
+                        (with-buffer-prepared-for-jit-lock
+                            (put-text-property start orig-start
+                                               'fontified t buf))))))
 
 	   ;; Find the start of the next chunk, if any.
 	   (setq start (text-property-any next end 'fontified nil))))))))