GNU bug report logs - #14368
24.3.50; Big screw: multibyte characters become unibyte

Previous Next

Package: emacs;

Reported by: rms <at> gnu.org

Date: Wed, 8 May 2013 08:23:01 UTC

Severity: important

Found in version 24.3.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


Message #38 received at 14368 <at> debbugs.gnu.org (full text, mbox):

From: Handa Kenichi <handa <at> gnu.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 14368 <at> debbugs.gnu.org, monnier <at> iro.umontreal.ca, rms <at> gnu.org
Subject: Re: bug#14368: 24.3.50; Big screw: multibyte characters become unibyte
Date: Fri, 24 May 2013 10:51:20 -0400
I'm very sorry for the late response on this matter.

In article <83a9o09oc1.fsf <at> gnu.org>, Eli Zaretskii <eliz <at> gnu.org>
writes:
> However, quail seems to work by deleting some characters from the
> buffer, and then reinserting them, possibly after translation, as
> instructed by the additional characters you type.  In this case,
> typing "a '" inserts á, and quail then waits for another character.
> Typing C-a at this point removes á from the buffer, and then sends as
> input 2 events: a self-inserting character whose code is 225 decimal
> (that's á), followed by the code 1, which is C-a.  (I don't know if
> this is how quail is supposed to work; what I described is what I saw
> in the debugger.  Perhaps Handa-san could comment on that.)

Your analysis is correct.  Quail is an event translator.  It
is designed not to insert a character directly but to
generate proper character events.

> I'm not sure how to fix this cleanly.  One way would be to get quail
> to encode the character events it sends, but then we have problems
> with un-encodable characters.

It is a possible way, but I don't think that is the right
thing.  Making quail encode characters and making the caller
to re-decode them looks like very silly.

> Another way would be to somehow detect
> that the character comes from quail and refrain from decoding it,

It's not only the quail problem.  Currently the handling of
unread-command-events is broken; this does not work correctly on
terminal
   (setq unread-command-events '(?À))

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




This bug report was last modified 11 years and 361 days ago.

Previous Next


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