From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Richard Wordingham Newsgroups: gmane.emacs.bugs Subject: bug#20173: 24.4; Rendering misallocates combining marks on ligatures Date: Mon, 23 Mar 2015 22:41:07 +0000 Message-ID: <20150323224107.4532b1cc@JRWUBU2> References: <20150323010626.530d3395@JRWUBU2> <83wq27raer.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1427150548 26804 80.91.229.3 (23 Mar 2015 22:42:28 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 23 Mar 2015 22:42:28 +0000 (UTC) Cc: 20173@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Mar 23 23:42:15 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YaB2w-0008Ep-Qp for geb-bug-gnu-emacs@m.gmane.org; Mon, 23 Mar 2015 23:42:10 +0100 Original-Received: from localhost ([::1]:58318 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YaB2w-0001cs-6B for geb-bug-gnu-emacs@m.gmane.org; Mon, 23 Mar 2015 18:42:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:35613) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YaB2s-0001ab-FE for bug-gnu-emacs@gnu.org; Mon, 23 Mar 2015 18:42:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YaB2o-00028U-Cc for bug-gnu-emacs@gnu.org; Mon, 23 Mar 2015 18:42:06 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:44489) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YaB2o-00028Q-A6 for bug-gnu-emacs@gnu.org; Mon, 23 Mar 2015 18:42:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1YaB2n-0005eg-O9 for bug-gnu-emacs@gnu.org; Mon, 23 Mar 2015 18:42:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Richard Wordingham Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 23 Mar 2015 22:42:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 20173 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 20173-submit@debbugs.gnu.org id=B20173.142715048521695 (code B ref 20173); Mon, 23 Mar 2015 22:42:01 +0000 Original-Received: (at 20173) by debbugs.gnu.org; 23 Mar 2015 22:41:25 +0000 Original-Received: from localhost ([127.0.0.1]:34265 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YaB2C-0005dr-GZ for submit@debbugs.gnu.org; Mon, 23 Mar 2015 18:41:24 -0400 Original-Received: from know-smtprelay-omc-9.server.virginmedia.net ([80.0.253.73]:43637) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YaB2A-0005df-4n for 20173@debbugs.gnu.org; Mon, 23 Mar 2015 18:41:23 -0400 Original-Received: from JRWUBU2 ([81.103.224.4]) by know-smtprelay-9-imp with bizsmtp id 7AhF1q01C06JmVd01AhFdV; Mon, 23 Mar 2015 22:41:15 +0000 X-Originating-IP: [81.103.224.4] X-Spam: 0 X-Authority: v=2.1 cv=dJgomYpb c=1 sm=1 tr=0 a=pLuj3OkTrmEUIJBpyvkqVg==:117 a=pLuj3OkTrmEUIJBpyvkqVg==:17 a=IkcTkHD0fZMA:10 a=NLZqzBF-AAAA:8 a=mDV3o1hIAAAA:8 a=t1OBdkjkgCQXMNE6nlUA:9 a=QEXdDO2ut3YA:10 In-Reply-To: <83wq27raer.fsf@gnu.org> X-Mailer: Claws Mail 3.8.0 (GTK+ 2.24.10; i686-pc-linux-gnu) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 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.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:100870 Archived-At: On Mon, 23 Mar 2015 17:38:52 +0200 Eli Zaretskii wrote: > > Date: Mon, 23 Mar 2015 01:06:26 +0000 > > From: Richard Wordingham > Is it possible that some rule(s) are missing from the end of > lisp/language/misc-lang.el? Could you please take a look and see if > something needs to be fixed/added in how we set up the compositions > for Arabic? There's no relevant problem there. I demonstrated the bug to myself by first rendering Tai Tham and confirming that TONE-2 rendered above the first component of the ligature NAA, fromed from . I then hacked my font so that the glyph for TONE-2 was decomposed into the glyphs for MAI KANG and TONE-2, in that order, and observing TONE-2 being rendered on the second component of the ligature. I then turned to Arabic so that a custom font would not be needed to demonstrate the bug. As to what needs fixing in the Arabic section of misc-lang.el: Clusters containing letters should be limited to letters and marks on them. Otherwise, the digits 1, 2, 3 are reversed in a variable name like =D8=A8=D8=AC=D9=A1=D9=A2=D9=A3=D8=AF. (I'm not sure why the problem d= oesn't appear with =D8=A8=D8=AC=D9=A1=D9=A2=D9=A3.) (set-char-table-range composition-function-table '(#x600 . #x6FF) (list ["[\u0600-\u06FF]+" 0 font-shape-gstring])) should change to something like (set-char-table-range composition-function-table '(#x610 . #x615) (list ["[\u0610-\u0615\u0621-\u065F\u066E-\u06D3\u06D5-\u06EF\u06FA-\u06FC\u06FF= ]+" 0 font-shape-gstring])) ; Skip punctuation (set-char-table-range composition-function-table '(#x621 . #x65F) (list=20 ["[\u0610-\u0615\u0621-\u065F\u066E-\u06D3\u06D5-\u06EF\u06FA-\u06FC\u06FF= ]+" 0 font-shape-gstring])) ; skip digits and punctuation (set-char-table-range composition-function-table '(#x66E . #x6D3) (list=20 ["[\u0610-\u0615\u0621-\u065F\u066E-\u06D3\u06D5-\u06EF\u06FA-\u06FC\u06FF= ]+" 0 font-shape-gstring])) ; skip punctuation (set-char-table-range composition-function-table '(#x6D5 . #x6EF) (list ["[\u0610-\u0615\u0621-\u065F\u066E-\u06D3\u06D5-\u06EF\u06FA-\u06FC\u06FF= ]+" 0 font-shape-gstring])) ; Skip digits (set-char-table-range composition-function-table '(#x6FA . #x6FC) (list=20 ["[\u0610-\u0615\u0621-\u065F\u066E-\u06D3\u06D5-\u06EF\u06FA-\u06FC\u06FF= ]+" 0 font-shape-gstring])) ; Skip symbols (set-char-table-range composition-function-table '(#x6FF . #x6FF) (list ["[\u0610-\u0615\u0621-\u065F\u066E-\u06D3\u06D5-\u06EF\u06FA-\u06FC\u06FF= ]+" 0 font-shape-gstring])) There are more elegant ways of expressing this, which is just as well, for there are also blocks Arabic Supplement (U+0750 to U+077F) and Arabic Extended-A (U+08A0 to U+08FF). Being an international script, the Arabic script has a lot of letters, just like the Latin script. Richard.