diff lisp/jit-lock.el @ 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 3ca9684795fe
children f13889b47192 858cb33ae39d
line wrap: on
line diff
--- 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))))))))