]> code.delx.au - gnu-emacs/commitdiff
Fix display of Indic scripts
authorK. Handa <handa@gnu.org>
Fri, 25 Mar 2016 09:40:25 +0000 (12:40 +0300)
committerEli Zaretskii <eliz@gnu.org>
Fri, 25 Mar 2016 09:40:25 +0000 (12:40 +0300)
* 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

index a402245a0674aa2552584fcd5af0cadd258f63f5..b0b532015c2945c7ba0fc37f2a8dfa2de0e299e4 100644 (file)
@@ -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)