Subject: Re: bug#1003: 23.0.60; set-keyboard-coding-system incompatible with TeX input method

From: Stefan Monnier <[email-masked]>
Date: Sat, 20 Sep 2008 16:45:41 -0400

> in TeX input mode, I expect to be able to type ént by typing  "\'ent".
> When I  set:

>      (set-keyboard-coding-system 'utf-8)

> typing those four characters gives me some Chinese character.

IIUC the problem is that the input method processing is done before the
keyboard-coding-system processing.  So the sequence "\ ' e n t" is
turned by the input method into "é n t" (i.e. 233 110 116) which is then
interpreted as a utf-8 sequence which happens to give you
a chinese character.

In Emacs-22, bytes such as 233 were different from any other char, so
such confusion wasn't possible, which worked around the underlying
ordering problem.

A real fix would probably be to perform keyboard-coding-system decoding
earlier, but it's a non trivial change which may introduce its own set
of problems.

Maybe another way to fix the problem is to let quail emit not just é but
the sequence [im-char é] and then have input-decode-map strip the
`im-char' pseudo event; this would protect those im-generated chars from
being processed by the keyboard-coding-system processing.

Handa?

        Stefan