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