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#20140: 24.4; M17n shaper output rejected Date: Sun, 06 Feb 2022 10:11:08 +0200 Message-ID: <83y22oza77.fsf@gnu.org> References: <20150318222040.4066e6e9@JRWUBU2> <87r18jk5nr.fsf@gnus.org> <83v8xv2icg.fsf@gnu.org> <20220205225251.08a0faab@JRWUBU2> 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="32675"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 20140@debbugs.gnu.org, Kenichi Handa , larsi@gnus.org To: Richard Wordingham Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Feb 06 09:20:15 2022 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 1nGcmM-0008LX-Lh for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 06 Feb 2022 09:20:14 +0100 Original-Received: from localhost ([::1]:49938 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nGcmL-0001eh-9P for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 06 Feb 2022 03:20:13 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:33880) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nGceW-0005kH-I2 for bug-gnu-emacs@gnu.org; Sun, 06 Feb 2022 03:12:10 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:42424) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nGceQ-000102-6Q for bug-gnu-emacs@gnu.org; Sun, 06 Feb 2022 03:12:07 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nGceQ-0006wh-2h for bug-gnu-emacs@gnu.org; Sun, 06 Feb 2022 03:12:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Feb 2022 08:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 20140 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 20140-submit@debbugs.gnu.org id=B20140.164413509526666 (code B ref 20140); Sun, 06 Feb 2022 08:12:02 +0000 Original-Received: (at 20140) by debbugs.gnu.org; 6 Feb 2022 08:11:35 +0000 Original-Received: from localhost ([127.0.0.1]:36321 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGcdz-0006w2-9g for submit@debbugs.gnu.org; Sun, 06 Feb 2022 03:11:35 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:55318) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGcdy-0006vp-8t for 20140@debbugs.gnu.org; Sun, 06 Feb 2022 03:11:34 -0500 Original-Received: from [2001:470:142:3::e] (port=52672 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nGcds-0000vA-M5; Sun, 06 Feb 2022 03:11:28 -0500 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=WkOuKVyvfBHM5/vSvQAgqGUTHXZKHWL7XO3/XEwWJo4=; b=pU0eTolgqUPb+2JL01Qw 0+fgBA+aA+ejUGxPXDxMK9uoIBa8YZLSTyAlrJDYoYFd9v2Mcmci6dQ4ja7nMvB2WC0WRJF6Wd83R 8y+7tLj+hs3dgruGbr9jg2DDBMJFsfr3yiFb0iueoB+CVxrFUagA/QBrcYufEFOSQVtLZ1h3JmBCj gyxXbsuiGjPv/qYdq7qy4WZ/aNA6Yl0Z+b2ElclaMrS4qvhgp73WNpoHPcwIWosfCJmYayK0N6Dnb zb8sLb5QRMwa9+b6Um1Zi/U2IlE0v33hZxZJMycysyQfxX3FzblSRje1olEXijoc9BSETaqhbQdf7 j4t7PCLssWmpfQ==; Original-Received: from [87.69.77.57] (port=2960 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nGcdp-0001Uj-2e; Sun, 06 Feb 2022 03:11:27 -0500 In-Reply-To: <20220205225251.08a0faab@JRWUBU2> (message from Richard Wordingham on Sat, 5 Feb 2022 22:52:51 +0000) 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" Xref: news.gmane.io gmane.emacs.bugs:226139 Archived-At: > Date: Sat, 5 Feb 2022 22:52:51 +0000 > From: Richard Wordingham > Cc: Lars Ingebrigtsen , 20140@debbugs.gnu.org > > I'm currently using the vanilla emacs on Ubuntu Focal, which is > described as 'GNU Emacs 26.3 (build 2, x86_64-pc-linux-gnu, GTK+ > Version 3.24.14) of 2020-03-26, modified by Debian'. The key good news > is that the commands forward-char-intrusive and backward-char-intrusive > are now standard, so I can position the cursor by dead-reckoning. You > can reasonably mark the issue as solved. I don't see the commands forward-char-intrusive and backward-char-intrusive anywhere in Emacs, so I guess they are your local changes, based on the code posted by Handa-san in this discussion? > > The most important change is that we now use HarfBuzz by default. > > Isn't that only true for Emacs 27.1 and above? That's true, but Emacs 26 is ancient history; Emacs 28.1 is about to be released. So from our perspective, HarfBuzz is the default shaping engine, and since it's available on all the supported platforms we care about, we are phasing out m17n-flt shapers. > > Richard didn't contribute the Tai Tham composition rules to us > > (AFAIR), so I cannot test what happens now in Emacs with HarfBuzz. > > Maybe we should revisit this issue, but first I hope Richard could > > tell whether the issue still exists, and if so, what composition rules > > he uses or suggests to use for Tai Tham. > > Sad to see that Khaled Hosny's suggestion not to use composition rules > seems not to have been taken. You mean, to pass all the text via HarfBuzz instead? That makes the Emacs redisplay painfully slow, and would require a complete redesign of how we render text to be bearable. So as long as such a redesign is not available, we cannot use that advice. > You're welcome to include my composition rules. Thanks. > They're complicated by the facts that the 'regular expressions' are > not interpreted as regular expressions and they are not interpreted > as closed under canonical equivalence. I therefore calculate the > regular expression. I'm not sure I understand the issue: what you do seems to be very similar to what we do for the Indic scripts in indian.el, so what kind of complications are you talking about here? Also, your rules seem to follow the description in the "Structuring Tai Tham Unicode" document (Revision 7), a.k.a. "L2/19-365", dated Oct 2019, is that right? Is that document the latest word on shaping Tai Tham, or are there any additional sources? > There are some deficiencies; I've a feeling there may be a problem with > adding ZWNJ and CGJ as marks; ZWJ should also be added for > completeness. These are barely mentioned in the L2/19-365 document, and not mentioned at all in the Tai Tham section of the Unicode Standard. Does it mean they are not very important in contemporary Tai Tham texts? > I need ZWNJ to write 4-column ᨴᩣᩴᨶ᩠ᩅ‌ᩣ᩠ᨿ as opposed to > 3-column ᨴᩣᩴᨶ᩠ᩅᩣ᩠ᨿ, and even with my font, HarfBuzz will need CGJ for > the suppression of jack-booted dotted circles. Additionally, for > didactic text, what can I do for U+25CC for explicit display of marks > and their equivalents on a dotted circle, and for that matter, for > display on NBSP? At least for the dotted circle case, Emacs has a general composition rule; see compose-gstring-for-dotted-circle and the corresponding rule in composite.c. So I'm not sure we need anything specific to Tai Tham there. Can you recommend good fonts for Tai Tham? Are they free fonts? Thanks.