bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Redisplay bug: doesn't happen following text property change.


From: Marshall, Simon
Subject: Redisplay bug: doesn't happen following text property change.
Date: Fri, 30 Mar 2001 14:37:01 +0100

In GNU Emacs 20.7.1 (sparc-sun-solaris2.6, X toolkit)
 of Thu Mar 29 2001 on ashanti
configured using `configure  --prefix=/rvcarma/marshals/slash/usr/local'

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

Evaluation the following in "emacs -q":

(custom-set-variables
 '(font-lock-support-mode (quote lazy-lock-mode))
 '(lazy-lock-defer-time 1.0)
 '(global-font-lock-mode t nil (font-lock))
 )

Then, before the above form, type the 2-char sequence ("
After 1 second the rest of the buffer is fontified as a string.
Correct.
Type "
After 1 second the rest of the buffer is fontified as if not in string
context.  Correct.
Delete the previous ".
After 1 second the rest of the buffer is fontified as a string again.
Correct.
Type the 2-char sequence ") quickly, i.e., with less than one second
between the chars.
After 1 second the rest of the buffer remains shown fontified as a
string.  Wrong.

I think this is a redisplay bug (but I could be wrong).
Type C-l and the correct fontification is immediately shown.
Or, use the arrow keys to move down a line or two, type something and
the correct fontification is immediately shown for the entire region.

The other possibility is that lazy-lock-fontify-after-defer is not being
called after the 2-char sequence is entered.  Apart from being unlikely,
it is easy to check.  Adding a message form to the function verifies
that it is called for the *scratch* buffer.
(setq c 0)
(defun lazy-lock-fontify-after-defer ()
  ;; Called from `timer-idle-list'.
  ;; Fontify all windows where deferral has occurred for its buffer.
  (message "called for %s: %d" lazy-lock-buffers (setq c (1+ c))))
  ...)

Another example.  Evaluation the following in "emacs -q":

(custom-set-variables
 '(font-lock-support-mode (quote lazy-lock-mode))
 '(lazy-lock-defer-time 1.0)
 '(global-font-lock-mode t nil (font-lock))
 )

C-x C-f /tmp/foo.cc RET and then enter the 3 lines:
foo
fubar
bar

Now triple-click on the "fubar" line and C-c C-c.
The line is commented out.  Correct.
The line is not shown fontified as a comment.  Wrong.
Again, you can insert or C-l and it is immediately shown fontified as a
comment.

Simon.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]