(ftfont_shape_by_flt): Use "combining" FLT for ASCII characters.
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
2008-09-09 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* ftfont.c (ftfont_shape_by_flt): Use "combining" FLT for ASCII
|
||||
characters.
|
||||
|
||||
* composite.c (FORWARD_CHAR): Fix calculation
|
||||
of (POSITION).pos_byte.
|
||||
|
||||
|
||||
@@ -1813,6 +1813,7 @@ ftfont_shape_by_flt (lgstring, font, ft_face, otf)
|
||||
EMACS_UINT len = LGSTRING_GLYPH_LEN (lgstring);
|
||||
EMACS_UINT i;
|
||||
struct MFLTFontFT flt_font_ft;
|
||||
MFLT *flt = NULL;
|
||||
|
||||
if (! m17n_flt_initialized)
|
||||
{
|
||||
@@ -1861,9 +1862,14 @@ ftfont_shape_by_flt (lgstring, font, ft_face, otf)
|
||||
flt_font_ft.font = font;
|
||||
flt_font_ft.ft_face = ft_face;
|
||||
flt_font_ft.otf = otf;
|
||||
if (ASCII_CHAR_P (gstring.glyphs[0].c))
|
||||
/* A little bit ad hoc. Perhaps, shaper must get script and
|
||||
language information, and select a proper flt for them
|
||||
here. */
|
||||
flt = mflt_get (msymbol ("combining"));
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
int result = mflt_run (&gstring, 0, len, &flt_font_ft.flt_font, NULL);
|
||||
int result = mflt_run (&gstring, 0, len, &flt_font_ft.flt_font, flt);
|
||||
if (result != -2)
|
||||
break;
|
||||
gstring.allocated += gstring.allocated;
|
||||
|
||||
Reference in New Issue
Block a user