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

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

quail inserts raw characters on unfinished sequences


From: Juri Linkov
Subject: quail inserts raw characters on unfinished sequences
Date: Tue, 25 Oct 2005 05:29:05 +0300
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/22.0.50 (gnu/linux)

Quail input methods produce unexpected results on unfinished input
sequences.  For example, consider the input method `cyrillic-translit'
which contains among other rules:

 ("sh" ?ш) ("shch" ?щ)

Now both "sh" and "shch" work right, but the input sequence "shc" does not.
It inserts two characters: the first character corresponds to "sh" - "ш",
but the second is the raw latin "c".  This is wrong.  When the input
sequence "shc" is completed, the result should be "шц", i.e. the first
character corresponding to "sh", and the second - translated according
to the rules of the same input method, as if "c" was typed solely.

In the map returned from (quail-map) there is nil corresponding to "shc":

 (115 3681
      (104 3688
           (99 nil
               (104
                ["щ"]))))

Maybe, quail should try to restart the whole input loop to interpret
remaining latin "c"?

Of course, the simplest solution for this case is to define a new rule
explicitly by adding to the same input method:

 ("shc" ["шц"])

But I wonder if authors of input methods should be careful about
catching such cases, or this can be fixed at a general level?

-- 
Juri Linkov
http://www.jurta.org/emacs/





reply via email to

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