bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#15273: 24.3.50; Combining character sequences are displayed weirdly


From: Eli Zaretskii
Subject: bug#15273: 24.3.50; Combining character sequences are displayed weirdly
Date: Fri, 06 Sep 2013 09:29:57 +0300

> From: Jan Djärv <jan.h.d@swipnet.se>
> Date: Fri, 6 Sep 2013 07:08:56 +0200
> Cc: xfq.free@gmail.com,
>  15273@debbugs.gnu.org
> 
> > Thanks.  So this is not a composition at all, and the wicked way the
> > triangle is displayed is not Emacs's fault at all.  I guess the font
> > used by NS or the font driver are at fault here.  FWIW, on MS-Windows,
> > I see the ! and the triangle after it correctly, as 2 separate
> > characters (using Code2000 font).
> 
> What do you mean by composition?  Is it that the two characters are replaced 
> by another character that is equivalent?  That may not be possible since we 
> can combine any character with the triangle, such a glyph may not be 
> available.

Character composition in Emacs can happen in 1 of 2 ways:

 . The font driver tells Emacs to compose several characters into a
   single grapheme cluster, by drawing all of them as a single unit,
   and by drawing the 2nd, 3rd, etc. character glyphs at certain pixel
   offsets relative to the base glyph.

 . Emacs itself has composition rules for 2 or more characters; in
   this case, the same pixel offsets come from those rules.

The first possibility includes possible substitution of a single glyph
for several characters, but that's not the only possibility, because
the font driver tells Emacs both the glyphs to draw and their relative
pixel positions.

In both cases, Emacs shows the composition details in "C-u C-x =",
here's an example:

  Composed with the following character(s) "ִ" using this font:
    uniscribe:-outline-Courier 
New-bold-normal-normal-mono-15-*-*-*-c-*-iso10646-1
  by these glyphs:
    [0 1 1506 690 9 0 8 12 5 nil]
    [0 1 1460 657 9 0 5 12 5 [-7 0 0]]

In the case in point, there was no such display of composition
details.  So I concluded that no composition was done.

> Or is it simply that Emacs treats the two characters as one?

Emacs will treat them as one, more or less, if they are composed by
one of the above two methods.  ("More or less" because we still allow
certain operations, such as delete-char, to act on individual
characters that were composed.)

> Why is displaying the ! and the triangle after it as separate characters 
> correct?  The triangle is a composing character and should be displayed above 
> the !.

I meant "correct" in the sense that there's no apparent redisplay bug:
the display engine behaves according to the information it has.

The OP's bug report was about the partial display of the triangle, not
about the lack of composition.

If the font driver doesn't tell us that the characters need to be
combined, and we don't have in Emacs a rule to do that ourselves, then
the problem, if there is one, is not in the display engine.  If we
want to combine this character, we should write a composition rule for
it.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]