From 44782dea433ce567bf69612a74b62432d68cd4b3 Mon Sep 17 00:00:00 2001 From: "K. Handa" Date: Fri, 25 Mar 2016 12:40:25 +0300 Subject: [PATCH] Fix display of Indic scripts * ftfont.c (ftfont_shape_by_flt): For combining characters out of the range U+300...U+36F, use the "combining" FLT only with non-OTF fonts. --- src/ftfont.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ftfont.c b/src/ftfont.c index a402245a06..b0b532015c 100644 --- a/src/ftfont.c +++ b/src/ftfont.c @@ -2596,7 +2596,12 @@ ftfont_shape_by_flt (Lisp_Object lgstring, struct font *font, language information, and select a proper flt for them here. */ int c1 = LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, 1)); - if (CHAR_HAS_CATEGORY (c1, '^')) + /* For the combining characters in the range U+300..U+36F, + "combining" is the sole FLT provided by the m17n-lib. In + addition, it is the sole FLT that can handle the other + combining characters with non-OTF fonts. */ + if (0x300 <= c1 && c1 <= 0x36F + || (! otf && CHAR_HAS_CATEGORY (c1, '^'))) flt = mflt_get (msymbol ("combining")); } if (! flt && ! otf) -- 2.39.2