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

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

bug#50951: 28.0.50; Urdu text is not displayed correctly


From: YAMAMOTO Mitsuharu
Subject: bug#50951: 28.0.50; Urdu text is not displayed correctly
Date: Tue, 20 Sep 2022 12:41:40 +0900
User-agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (Gojō) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)

On Sun, 18 Sep 2022 01:37:39 +0900,
Rah Guzar wrote:
> 
> 
> I finally tested the patches and both of them improve the situation by a
> lot but problems still remain. One word that is not rendered by
> accurately by them is
> 
> ہنگام
> 
> Where is problem is fourth character which is
>         character: گ‎ (displayed as گ‎) (codepoint 1711, #o3257, #x6af)
>         charset: unicode-bmp (Unicode Basic Multilingual Plane 
> (U+0000..U+FFFF))
>         code point in charset: 0x06AF
>         script: arabic
> 
> This character should be rendered as a circle and two slanted lines
> which seem to get clipped.

Thanks for testing.

The width of grapheme cluster corresponding to U+06AF (ARABIC LETTER
GAF) is rounded to zero, and Emacs does not display such clusters:

xdisp.c:
 32424        gstring = composition_gstring_from_id (it->cmp_it.id);
 32425        it->pixel_width
 32426          = composition_gstring_width (gstring, it->cmp_it.from, 
it->cmp_it.to,
 32427                                       &metrics);
 32428        if (it->pixel_width == 0)
 32429          {
 32430            it->glyph_not_available_p = true;
 32431            it->phys_ascent = it->ascent;
 32432            it->phys_descent = it->descent;
 32433            it->pixel_width = face->font->space_width;
 32434          }
 32435        else

The attached patch avoids zero-width grapheme clusters by adding 1 to
the width of the last glyph in such clusters.

                                     YAMAMOTO Mitsuharu
                                mituharu@math.s.chiba-u.ac.jp

Attachment: avoid-zero-width-grapheme-clusters.diff
Description: Binary data


reply via email to

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