From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#15273: 24.3.50; Combining character sequences are displayed weirdly Date: Sun, 08 Sep 2013 14:03:50 +0300 Message-ID: <8361ublgmh.fsf@gnu.org> References: <9243D0C8-83F9-40B4-8F2C-37517A1F6BCC@swipnet.se> <8338pjnqfm.fsf@gnu.org> <831u53npuy.fsf@gnu.org> <7977F745-C1B8-44AD-9710-3CE9567C5338@swipnet.se> <83zjrrm9tc.fsf@gnu.org> <5B85556B-72FB-49DB-96F8-A38939746260@swipnet.se> <83r4d2mpi2.fsf@gnu.org> <87vc2ee9io.fsf@igel.home> <83ppsmmml5.fsf@gnu.org> <85ob84olwg.fsf@inode.at> <838uz8lkx5.fsf@gnu.org> <85zjrouxb5.fsf@inode.at> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1378638319 19139 80.91.229.3 (8 Sep 2013 11:05:19 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 8 Sep 2013 11:05:19 +0000 (UTC) Cc: 15273@debbugs.gnu.org To: Xue Fuqiao , Kenichi Handa Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Sep 08 13:05:21 2013 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 1VIcnx-0005jZ-6a for geb-bug-gnu-emacs@m.gmane.org; Sun, 08 Sep 2013 13:05:21 +0200 Original-Received: from localhost ([::1]:44820 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VIcnw-0007ch-Pi for geb-bug-gnu-emacs@m.gmane.org; Sun, 08 Sep 2013 07:05:20 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46285) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VIcnm-0007cc-SU for bug-gnu-emacs@gnu.org; Sun, 08 Sep 2013 07:05:18 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VIcnf-0008Lk-Hk for bug-gnu-emacs@gnu.org; Sun, 08 Sep 2013 07:05:10 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:40533) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VIcnf-0008L7-E5 for bug-gnu-emacs@gnu.org; Sun, 08 Sep 2013 07:05:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1VIcne-0002h9-PD for bug-gnu-emacs@gnu.org; Sun, 08 Sep 2013 07:05:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 08 Sep 2013 11:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 15273 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 15273-submit@debbugs.gnu.org id=B15273.137863824610290 (code B ref 15273); Sun, 08 Sep 2013 11:05:02 +0000 Original-Received: (at 15273) by debbugs.gnu.org; 8 Sep 2013 11:04:06 +0000 Original-Received: from localhost ([127.0.0.1]:48826 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VIcmi-0002ft-ML for submit@debbugs.gnu.org; Sun, 08 Sep 2013 07:04:05 -0400 Original-Received: from mtaout23.012.net.il ([80.179.55.175]:56493) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VIcmf-0002fL-Ak for 15273@debbugs.gnu.org; Sun, 08 Sep 2013 07:04:02 -0400 Original-Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0MST00C0000FJ400@a-mtaout23.012.net.il> for 15273@debbugs.gnu.org; Sun, 08 Sep 2013 14:03:54 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MST00C8Y02HGO30@a-mtaout23.012.net.il>; Sun, 08 Sep 2013 14:03:54 +0300 (IDT) In-reply-to: X-012-Sender: halo1@inter.net.il 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:78126 Archived-At: > Date: Sun, 8 Sep 2013 06:48:55 +0800 > From: Xue Fuqiao > > I've attached my "C-u C-x =" information. Thanks. This is quite different from what I get on MS-Windows with the Uniscribe shaping engine. I don't know the explanation of these differences; in fact I cannot even identify the code in nsfont.m that generates these data structures. Perhaps Handa-san could help us out here. What shaping engine is used by the NS port, btw? I summarize some of the differences in the computed composition data below, the data format is defined in the doc string of composition-get-gstring as follows: [ FROM-IDX TO-IDX C CODE WIDTH LBEARING RBEARING ASCENT DESCENT [ [X-OFF Y-OFF WADJUST] | nil] ] where FROM-IDX and TO-IDX are used internally and should not be touched. C is the character of the glyph. CODE is the glyph-code of C in FONT-OBJECT. WIDTH thru DESCENT are the metrics (in pixels) of the glyph. X-OFF and Y-OFF are offsets to the base position for the glyph. WADJUST is the adjustment to the normal width of the glyph. It looks like NS consistently produces more negative values of X-OFF, which might explain why portions of the combining characters are drawn off screen. Character seq. W32 NS =============================================================================== a + u+0303 [0 1 97 165 7 0 7 12 3 nil] [0 1 97 68 7 0 8 6 0 nil] [0 1 771 692 2 -7 6 1 0 [-3 0 0]] a + u+0307 [0 1 97 489 7 0 7 12 3 nil] [0 1 97 68 7 0 8 6 0 nil] [0 1 775 696 2 -6 3 2 0 [-2 0 0]] u+00e3 + u+0323 [0 1 227 165 7 0 7 12 3 nil] [0 1 227 165 7 0 8 9 0 nil] [0 1 227 724 0 -3 -2 12 3 nil] [0 1 803 724 2 -6 3 0 2 [-2 1 0]] a + u+0303 + u+0323 [0 2 97 68 7 0 7 12 3 nil] [0 2 97 68 7 0 8 6 0 nil] [0 2 97 692 0 -4 -1 12 3 [-1 0 0]] [0 2 771 692 2 -7 6 1 0 [-3 0 0]] [0 2 97 724 0 -3 -2 12 3 [-1 0 0]] [0 2 803 724 2 -6 3 0 2 [-2 1 0]] u+1ea1 + u+0303 [0 1 7841 2458 7 0 7 12 3 nil] [0 1 7841 2458 7 0 8 6 2 nil] [0 1 7841 692 0 -4 -1 12 3 nil] [0 1 771 692 2 -7 6 1 0 [-3 0 0]] a + u+0323 + u+0303 [0 2 97 68 7 0 7 12 3 nil] [0 2 97 68 7 0 8 6 0 nil] [0 2 97 724 0 -3 -2 12 3 [-1 0 0]] [0 2 803 724 2 -6 3 0 2 [-2 1 0]] [0 2 97 692 0 -4 -1 12 3 [-1 0 0]] [0 2 771 692 2 -7 6 1 0 [-3 0 0]] u+1ea1 + u+0307 [0 1 7841 2458 7 0 7 12 3 nil] [0 1 7841 2458 7 0 8 6 2 nil] [0 1 7841 696 0 -3 -2 12 3 nil] [0 1 775 696 2 -6 3 2 0 [-2 0 0]] a + u+0323 + u+0307 [0 2 97 68 7 0 7 12 3 nil] [0 2 97 68 7 0 8 6 0 nil] [0 2 97 724 0 -3 -2 12 3 [-1 0 0]] [0 2 803 724 2 -6 3 0 2 [-2 1 0]] [0 2 97 696 0 -3 -2 12 3 [-1 0 0]] [0 2 775 696 2 -6 3 2 0 [-2 0 0]] u+0227 + u+0323 [0 1 551 489 7 0 7 12 3 nil] [0 1 551 489 7 0 8 9 0 nil] [0 1 551 724 0 -3 -2 12 3 nil] [0 1 803 724 2 -6 3 0 2 [-2 1 0]] a + u+0307 + u+0323 [0 2 97 68 7 0 7 12 3 nil] [0 2 97 68 7 0 8 6 0 nil] [0 2 97 696 0 -3 -2 12 3 [-1 0 0]] [0 2 775 696 2 -6 3 2 0 [-2 0 0]] [0 2 97 724 0 -3 -2 12 3 [-1 0 0]] [0 2 803 724 2 -6 3 0 2 [-2 1 0]] u+00e1 + u+0302 [0 1 225 163 7 0 7 12 3 nil] [0 1 225 163 7 0 8 9 0 nil] [0 1 225 691 0 -4 -1 12 3 nil] [0 1 770 691 2 -7 6 2 0 [-3 0 0]]