emacs-devel
[Top][All Lists]
Advanced

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

Re: address@hidden: sit-for (detect_input_pending ?) and postfix input m


From: Kenichi Handa
Subject: Re: address@hidden: sit-for (detect_input_pending ?) and postfix input methods.]
Date: Thu, 06 Oct 2005 10:17:05 +0900
User-agent: SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/22.0.50 (i686-pc-linux-gnu) MULE/5.0 (SAKAKI)

In article <address@hidden>, Stefan Monnier <address@hidden> writes:

> Indeed, what happens basically is that when you type

>         a b

> the `a' is only executed when you type the `b', because in the time between
> the two events, quail is waiting for another key in order to decide whether
> to really meant to type an `a' or maybe some other char (like à, ä, ...).

> In the case where `a' and `b' are bount to self-insert-command, I could
> imagine changing Quail such that the first (quail-input-method ?a) returns
> '(?a) and that a subsequent (quail-input-method ?\") returns '(?\^? ?ä),
> with some added magic to add/remove the underscore.  But since those chars
> can be bound to something else than self-insert-command, there's no
> guarantee that it'll do the right thing.

> Or maybe we should first return '(set-quail-undo-boundary ?a) and then
> '(quail-undo-last ?ä) where both set-quail-undo-boundary and quail-undo-last
> are special events bound to similarly named functions.  I guess that could
> work, although it would need additional hacks to enable/disable the undo-log
> and to add/remove the underscore.

You are quite right.  I was also thinking how we can avoid
the command loop within inpt-method function, but, for the
moment, I don't have a good idea.  It's dangerous to insert
that temporary "a" outside of input-method function because
that will run various hook functions, and simply suppressing
them on insertion will cause another problem.  :-(

---
Kenichi Handa
address@hidden





reply via email to

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