unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Xue Fuqiao <xfq.free@gmail.com>, Kenichi Handa <handa@gnu.org>
Cc: 15273@debbugs.gnu.org
Subject: bug#15273: 24.3.50; Combining character sequences are displayed weirdly
Date: Sun, 08 Sep 2013 14:03:50 +0300	[thread overview]
Message-ID: <8361ublgmh.fsf@gnu.org> (raw)
In-Reply-To: <CAAF+z6G-M3+VVUQ17zuDKKO9ABP8SoLAMhwR5AXE_=iFFySMYg@mail.gmail.com>

> Date: Sun, 8 Sep 2013 06:48:55 +0800
> From: Xue Fuqiao <xfq.free@gmail.com>
> 
> 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]]






  reply	other threads:[~2013-09-08 11:03 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-05 14:08 bug#15273: 24.3.50; Combining character sequences are displayed weirdly Xue Fuqiao
2013-09-05 14:33 ` Eli Zaretskii
2013-09-05 23:26   ` Xue Fuqiao
2013-09-05 16:48 ` Jan Djärv
2013-09-05 17:12   ` Eli Zaretskii
2013-09-05 17:24     ` Eli Zaretskii
2013-09-05 17:33       ` Jan Djärv
2013-09-05 17:56         ` Eli Zaretskii
2013-09-06  5:08           ` Jan Djärv
2013-09-06  6:29             ` Eli Zaretskii
2013-09-06  6:42               ` Andreas Schwab
2013-09-06  7:32                 ` Eli Zaretskii
2013-09-06 14:37                   ` Xue Fuqiao
2013-09-06 15:53                     ` Eli Zaretskii
2013-09-06 22:17                       ` Xue Fuqiao
2013-09-06 22:37                         ` Xue Fuqiao
2013-09-07  7:27                           ` Eli Zaretskii
2013-09-07  7:26                         ` Eli Zaretskii
2013-09-07  7:36                           ` Jan Djärv
2013-09-07  7:57                             ` Eli Zaretskii
2013-09-07  8:02                               ` Jan Djärv
2013-09-07  8:10                                 ` Eli Zaretskii
2013-09-07  8:27                                   ` Jan Djärv
2013-09-07  8:40                                     ` Eli Zaretskii
2013-09-07  8:54                                       ` Jan Djärv
2013-09-07  9:59                                         ` Eli Zaretskii
2013-09-07 13:44                                           ` Jan Djärv
2013-09-07 15:20                                             ` Eli Zaretskii
2013-09-08  8:26                                               ` Jan Djärv
2013-09-07 22:50                                         ` Xue Fuqiao
2013-09-07  8:47                                     ` Jan Djärv
2013-09-07  9:22                                       ` Eli Zaretskii
2013-09-09  0:52                                       ` YAMAMOTO Mitsuharu
2013-09-09  5:17                                         ` Jan Djärv
2013-09-07 12:25                     ` Wolfgang Jenkner
2013-09-07 15:18                       ` Eli Zaretskii
2013-09-07 21:38                         ` Wolfgang Jenkner
2013-09-07 22:29                           ` Xue Fuqiao
2013-09-07 22:48                             ` Xue Fuqiao
2013-09-08 11:03                               ` Eli Zaretskii [this message]
2013-09-08 13:05               ` Kenichi Handa
2013-09-08 14:59                 ` Eli Zaretskii
2013-09-10 13:58                   ` Kenichi Handa
2013-09-10 15:37                     ` Eli Zaretskii
2013-09-12 14:52                     ` Kenichi Handa
2013-09-12 16:08                       ` Eli Zaretskii
2020-11-18 15:13                         ` Stefan Kangas
2020-11-18 17:09                           ` Eli Zaretskii
2013-09-14  8:51                       ` Jan Djärv
2013-09-14  9:12                         ` Jan Djärv
2013-09-05 17:29     ` Jan Djärv
2013-09-05 17:56       ` Eli Zaretskii
2013-09-05 23:27   ` Xue Fuqiao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8361ublgmh.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=15273@debbugs.gnu.org \
    --cc=handa@gnu.org \
    --cc=xfq.free@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).