From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Perry E. Metzger" Newsgroups: gmane.emacs.devel Subject: Re: not quite understanding input methods Date: Mon, 30 Aug 2021 15:26:56 -0400 Message-ID: <5dc8bffc-a4d9-96e3-c05d-e6b0e52708c0@piermont.com> References: <231adc63-77f0-037a-365c-28db98f684cf@piermont.com> <7343dfd2-05d5-0752-8e43-cd44d6394963@piermont.com> <356c5a4b-92af-ae1c-a39a-f68586807be1@piermont.com> <390f5e5a-4952-5ccf-3d61-048e4049cd25@piermont.com> <838s0ikawo.fsf@gnu.org> <94711961-81b0-dc21-dca0-d92726a7428f@piermont.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2409"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:92.0) Gecko/20100101 Thunderbird/92.0 Cc: Eli Zaretskii , emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Aug 30 21:37:31 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mKn62-0000QE-UR for ged-emacs-devel@m.gmane-mx.org; Mon, 30 Aug 2021 21:37:30 +0200 Original-Received: from localhost ([::1]:53070 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mKn61-0001MC-AE for ged-emacs-devel@m.gmane-mx.org; Mon, 30 Aug 2021 15:37:29 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54726) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mKmvs-00015t-U5 for emacs-devel@gnu.org; Mon, 30 Aug 2021 15:27:01 -0400 Original-Received: from hacklheber.piermont.com ([166.84.7.14]:49208) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mKmvr-0004Z6-9j; Mon, 30 Aug 2021 15:27:00 -0400 Original-Received: from snark.cb.piermont.com (localhost [127.0.0.1]) by hacklheber.piermont.com (Postfix) with ESMTP id 7B1E419E; Mon, 30 Aug 2021 15:26:57 -0400 (EDT) Original-Received: from [10.160.2.107] (jabberwock.cb.piermont.com [10.160.2.107]) by snark.cb.piermont.com (Postfix) with ESMTP id 25FAB2DEC67; Mon, 30 Aug 2021 15:26:57 -0400 (EDT) Content-Language: en-US In-Reply-To: Received-SPF: pass client-ip=166.84.7.14; envelope-from=perry@piermont.com; helo=hacklheber.piermont.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, NICE_REPLY_A=-0.932, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:273543 Archived-At: On 8/30/21 15:19, Stefan Monnier wrote: >> Yes, but the point at which the character that's inserted into the buffer is >> present is after the Quail input method was invoked by read_char. Again, I'm >> finding the stack of things involved in the input method getting invoked >> rather difficult to follow, but it feels like Quail doesn't actually look >> backwards in the buffer and thus could care less that I inserted >> a particular character there. That said, I don't truly get how all this >> works yet, there's no documentation and a heap of twisty code involved. > There might be multiple obstacles involved (e.g. multiple places that > assumes the chars are all <127), so it'll be important to test things > bit by bit. E.g. check that with no patch the `input-method-function` > is not called at all when you press F19, then check that with > your patch `input-method-function` *is* called when you press F19. > > Once that is done, the rest of the hacking should all be doable at the > Lisp level, but it may involve tracing through the quail code, indeed. The fact that `read_char` is a 1300 line function all on its own doesn't make it particularly easy to tease apart the logic. :( :( :( Perry