In article <[EMAIL PROTECTED]>, Stefan Monnier <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED] _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel