From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Kenichi Handa Newsgroups: gmane.emacs.devel Subject: Re: [michael.cadilhac-@t-lrde.epita.fr: sit-for (detect_input_pending ?) and postfix input methods.] Date: Thu, 06 Oct 2005 10:17:05 +0900 Message-ID: References: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 (generated by SEMI 1.14.3 - "Ushinoya") Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: sea.gmane.org 1128561644 30867 80.91.229.2 (6 Oct 2005 01:20:44 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 6 Oct 2005 01:20:44 +0000 (UTC) Cc: michael.cadilhac-@t-lrde.epita.fr, rms@gnu.org, emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 06 03:20:39 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1ENKOO-0006tN-Vk for ged-emacs-devel@m.gmane.org; Thu, 06 Oct 2005 03:17:53 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ENKOO-0006GS-EN for ged-emacs-devel@m.gmane.org; Wed, 05 Oct 2005 21:17:52 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1ENKNq-00063F-0K for emacs-devel@gnu.org; Wed, 05 Oct 2005 21:17:18 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1ENKNo-00062I-8q for emacs-devel@gnu.org; Wed, 05 Oct 2005 21:17:17 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ENKNo-00062E-3H for emacs-devel@gnu.org; Wed, 05 Oct 2005 21:17:16 -0400 Original-Received: from [192.47.44.130] (helo=tsukuba.m17n.org) by monty-python.gnu.org with esmtp (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA:24) (Exim 4.34) id 1ENKNm-00082y-OZ; Wed, 05 Oct 2005 21:17:15 -0400 Original-Received: from nfs.m17n.org (nfs.m17n.org [192.47.44.7]) by tsukuba.m17n.org (8.13.4/8.13.4/Debian-3) with ESMTP id j961H98j004980; Thu, 6 Oct 2005 10:17:09 +0900 Original-Received: from etlken (etlken.m17n.org [192.47.44.125]) by nfs.m17n.org (8.13.4/8.13.4/Debian-3) with ESMTP id j961H6hp025610; Thu, 6 Oct 2005 10:17:09 +0900 Original-Received: from handa by etlken with local (Exim 3.36 #1 (Debian)) id 1ENKNd-0003Jh-00; Thu, 06 Oct 2005 10:17:05 +0900 Original-To: Stefan Monnier In-reply-to: (message from Stefan Monnier on Wed, 05 Oct 2005 13:42:40 -0400) 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) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:43595 Archived-At: In article , Stefan Monnier 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 betwe= en > the two events, quail is waiting for another key in order to decide wheth= er > to really meant to type an `a' or maybe some other char (like =E0, =E4, .= ..). > 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 '(?\^? ?=E4), > 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 ?=E4) 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 handa@m17n.org