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: Wed, 1 Sep 2021 08:58:46 -0400 Message-ID: <348756cf-6924-b390-01f5-9541ac56ca92@piermont.com> References: <231adc63-77f0-037a-365c-28db98f684cf@piermont.com> <871r686abe.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30452"; 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: Emacs developers To: Juri Linkov , Yuri Khan Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Sep 01 15:10:19 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 1mLQ0M-0007bJ-LF for ged-emacs-devel@m.gmane-mx.org; Wed, 01 Sep 2021 15:10:14 +0200 Original-Received: from localhost ([::1]:42612 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mLQ0L-0005Nw-D4 for ged-emacs-devel@m.gmane-mx.org; Wed, 01 Sep 2021 09:10:13 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:42314) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mLPpK-0004zk-1i for emacs-devel@gnu.org; Wed, 01 Sep 2021 08:58:50 -0400 Original-Received: from hacklheber.piermont.com ([166.84.7.14]:55164) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mLPpI-0000R9-74 for emacs-devel@gnu.org; Wed, 01 Sep 2021 08:58:49 -0400 Original-Received: from snark.cb.piermont.com (localhost [127.0.0.1]) by hacklheber.piermont.com (Postfix) with ESMTP id C972A10D; Wed, 1 Sep 2021 08:58:46 -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 8D39B2DECBF; Wed, 1 Sep 2021 08:58:46 -0400 (EDT) Content-Language: en-US In-Reply-To: <871r686abe.fsf@mail.linkov.net> Received-SPF: pass client-ip=166.84.7.14; envelope-from=perry@piermont.com; helo=hacklheber.piermont.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, NICE_REPLY_A=-1.029, 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:273652 Archived-At: On 9/1/21 03:23, Juri Linkov wrote: > Emacs 28 has the input method "Compose" corresponding to XKB's Compose > in leim/quail/compose.el, but many useful key sequences in this > input method don't work because of the artificial limitation > to ASCII-only chars in read_char. > I've been looking at this a bit. If you simply lift the limitation in read_char everything downstream fails. It appears that the limitation is partially caused by the fact that quail.el expects to be able to create dense keymaps of size limited to 255, though that might not be the only problem.  Note that fixing this won't be overly difficult, but it would need to be fixed in anything that can supply a `input-method-function` that is hooked by read_char. (BTW, as a pure aside: why aren't keymaps hash tables? Is that purely historical?) (FYI, I fear that after the last few days of reading I may be the expert on how all of this works, which is terrifying because I feel completely lost in the code. It's a maze. It's pretty rare that I see a part of Emacs that I feel should be nuked from orbit, but the input subsystem feels that way; a rewrite would be required to make it actually comprehensible, but a rewrite would also break enormous amounts of stuff that people depend on.) Perry