From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#74170: [PATCH] Add input methods for Northern Iroquoian languages Date: Sat, 02 Nov 2024 10:16:22 +0200 Message-ID: <86r07uyrs9.fsf@gnu.org> References: <87froas6s7.fsf@fernseed.me> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25637"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 74170@debbugs.gnu.org To: Kierin Bell Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Nov 02 09:17:46 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1t79KM-0006Yq-5M for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 02 Nov 2024 09:17:46 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t79Jo-0004rp-PK; Sat, 02 Nov 2024 04:17:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t79Jf-0004qk-J0 for bug-gnu-emacs@gnu.org; Sat, 02 Nov 2024 04:17:05 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t79Je-0005L1-EG for bug-gnu-emacs@gnu.org; Sat, 02 Nov 2024 04:17:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-version:References:In-Reply-To:From:Date:To:Subject; bh=Yu+awbAZE6x/3aT/CMNZruD4o5mNAItQDjMkQhTqE0M=; b=S4T2S4711V9P09I4tTTGSWr4FF3wUjM0eZ07NzXT8rwC9WkxVXAvjyFtBMKPKWL5uszoQvxIwgSxs6QJ4yxx+sJOcrzVQ4XX9aGGsNiCQUoV3Jx45bKMBu41kgEpQX4HpDwWHXvs1nWxC49xz0oK6BEmI32yOkljFQ5C2w5t970KzJ00jrNPdRYGi6tEuTGwJa3pO1jkzPZLlsdEJG8zFXqrEso/RLytf4KraDu//p0G2crDbuzoslnKyuF30X91xxjywPXM1UNaRk6tF/tiT3AUBOL9ZdzZqizeQYy1xh20m3awLTKeBoWo91g4opCIsEsVt07EM1LldC/ZpvWKDA==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t79Jd-0001pr-QF for bug-gnu-emacs@gnu.org; Sat, 02 Nov 2024 04:17:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 02 Nov 2024 08:17:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74170 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 74170-submit@debbugs.gnu.org id=B74170.17305353957041 (code B ref 74170); Sat, 02 Nov 2024 08:17:01 +0000 Original-Received: (at 74170) by debbugs.gnu.org; 2 Nov 2024 08:16:35 +0000 Original-Received: from localhost ([127.0.0.1]:53041 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t79JC-0001pT-G8 for submit@debbugs.gnu.org; Sat, 02 Nov 2024 04:16:35 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:44064) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t79JA-0001pN-9S for 74170@debbugs.gnu.org; Sat, 02 Nov 2024 04:16:33 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t79J3-0004mm-GQ; Sat, 02 Nov 2024 04:16:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=Yu+awbAZE6x/3aT/CMNZruD4o5mNAItQDjMkQhTqE0M=; b=Ptg/Etxoh07R8M2jJ5ku I+wd1yrDGRA4vJpX3zPsQ3gLOViaWA33OP08vY1nJiAe9AQDW/gD6KFNOc6CdcSE0gVVzAMeANEiG 6UKqkN1IFuT0oTg4bTYIt+mRWQnKtn2eOqNqS2XkKchp82FDL8+wlne39jz/RuP51jTX194TLe/LH IWDKq0e3SNTIChmRnkGMS4ZZWEoELOPzvk0goi4/ji97ikLsRP0maICjX0tM3jinOvtTFRkIVoGA0 SMCKazb4CBwWnwrEwV4zVT6z5aSgbDJZ0MXKNkkDVOCTy3wT/lWLnU7jWqjG00m7sfEmaqyBUteKu pFn4hI+mmtBkuQ==; In-Reply-To: <87froas6s7.fsf@fernseed.me> (message from Kierin Bell on Fri, 01 Nov 2024 22:34:16 -0400) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:294719 Archived-At: > From: Kierin Bell > Date: Fri, 01 Nov 2024 22:34:16 -0400 > > Attached is a patch implementing input methods for five languages in the > Northern Iroquoian language family. Thanks. > None of these languages have have officially designated standardized > orthographies (and all of them are endangered), but I have designed the > input methods around what I believe to be the most widely used community > orthographies (used in language programs, dictionaries, etc). Would it make sense to document the sources of the information you used to write these input methods? Since there are no standardized orthographies, I think it would be good to have this information in the file, so that in the future people who are interested in developing these input methods could consult those sources and understand your decisions. > I should already have FSF copyright assignment on file. Your copyright assignment is on file, yes. > In GNU Emacs 30.0.91 (build 1, x86_64-pc-linux-gnu, GTK+ Version > 3.24.41, cairo version 1.18.0) > System Description: Guix System Please rebase the changeset on the master branch, as the Emacs 30 release branch is already closed for new features. This is mostly important for the NEWS part, because otherwise the patchset will fail to apply. > +(defun quail-iroquoian-combining-char-p (char) > + "Return whether CHAR is a combining character." > + (and (characterp char) > + ;; XXX: Combining characters here all have 'Mn' general category. > + (memq (get-char-code-property char 'general-category) '(Mn)))) What's with those "XXX" comments, here and elsewhere in the patch? They seem to be FIXME comments of sorts, and if so, can we please resolve these issues before this is installed? More generally, I wonder why you needed to test 'characterp' here. Do we expect to get anything but characters in the code which uses this? Also, what is special with combining characters used by these languages that we need a special test for them? > + ((quail-iroquoian-combining-char-p quail-current-str) > + (setq quail-current-str > + (compose-string > + ;; > + ;; XXX: Kludge to delete extraneous initial letters from some > + ;; translations, e.g., with keys "a/'" in `onondaga-post', > + ;; the following would be inserted (with the extraneous > + ;; initial "a"): aǽ > + ;; > + ;; Doesn't work: > + ;; (substring STR (max 0 (- (string-width STR) 1))) > + ;; > + (apply #'string > + (seq-reduce > + (lambda (acc elt) > + (if (quail-iroquoian-combining-char-p elt) > + (append acc (list elt)) > + (list elt))) > + (quail-lookup-map-and-concat quail-current-key) > + '()))))) Please explain why we need to use compose-string here. In general, I'd like to avoid using it, because it's based on so-called "static compositions", which don't support the bidirectional display that is standard in Emacs since v24.1. Why cannot we rely on the automatic compositions (which are turned on by default) instead? Any combining character will automatically be composed with the preceding base and combining characters due to the following auto-composition rule we install by default: (when unicode-category-table (let ((elt `([,(purecopy "\\c.\\c^+") 1 compose-gstring-for-graphic] [nil 0 compose-gstring-for-graphic]))) (map-char-table #'(lambda (key val) (if (memq val '(Mn Mc Me)) (set-char-table-range composition-function-table key elt))) unicode-category-table)) If this is somehow not enough for what you want to do here, please explain the details. Perhaps also explain how these input methods work, from the user's POV. That is, what should the user type and what will EMacs show while inputting some of these sequences. > +;;; iroquoian.el ends here A 'provide' line is missing here. Thanks.