GNU bug report logs - #5984
Crash displaying composed characters

Previous Next

Package: emacs;

Reported by: Juanma Barranquero <lekktu <at> gmail.com>

Date: Tue, 20 Apr 2010 13:50:02 UTC

Severity: serious

Found in versions 24.0.50, 23.1.96

Done: Chong Yidong <cyd <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Kenichi Handa <handa <at> m17n.org>
To: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Cc: lekktu <at> gmail.com, eliz <at> gnu.org, 5984 <at> debbugs.gnu.org
Subject: bug#5984: Crash displaying composed characters
Date: Sat, 01 May 2010 15:28:46 +0900
In article <jwvr5lw4qnn.fsf-monnier+gnus-read-ephemeral-bug <at> gnu.org>, Stefan Monnier <monnier <at> IRO.UMontreal.CA> writes:

> >   . Emacs then enters redisplay to display the echo area.  As part of
> [...]
> >   . Further down, autocmp_chars calls the value of
> >     auto-composition-function:
> [...]
> >   . Now the " *Echo Area0*" buffer holds a totally different text,
> >     unbeknownst to autocmp_chars, which still passes the old values 32
> >     and 33 to TEMP_SET_PT_BOTH:

> More generally, this Lisp code could modify any buffer, so preventing
> the load-messages is not a sufficiently reliable solution (tho it might
> be desirable in any case).

Yes, and this problem is not only in auto-composition.  For
instance, evaluating this crashes Emacs.

(put-text-property 1 10 'display '(height (progn (delete-region 1 10))))

How about having a special mode in which any modifications
to buffers are silently ignored, and we run Lisp in that
mode in redisplay?

Another way is to check MODIFF before and after calling
Lisp, and if the current buffer is modified, restart the
redisplay... somehow.

---
Kenichi Handa
handa <at> m17n.org




This bug report was last modified 13 years and 142 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.