From: handa Date: Mon, 15 Mar 2004 23:17:11 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: REL-1-0-1~16 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=652d460a5d7558128361c9dcc1baa2a40e5430b5;p=m17n%2Fm17n-lib.git *** empty log message *** --- diff --git a/src/font-flt.c b/src/font-flt.c index b93c5c4..4104920 100644 --- a/src/font-flt.c +++ b/src/font-flt.c @@ -226,6 +226,8 @@ static int mdebug_mask = MDEBUG_FONT_FLT; MSymbol Mlayouter; +static MSymbol McatCf; + static MPlist *flt_list; /* Command ID: @@ -1218,6 +1220,7 @@ mfont__flt_init (void) Mcond = msymbol ("cond"); Mrange = msymbol ("range"); Mlayouter = msymbol ("layouter"); + McatCf = msymbol ("Cf"); flt_list = mplist (); return 0; } @@ -1309,6 +1312,22 @@ mfont__flt_run (MGlyphString *gstring, int from, int to, ctx.encoded[i] = (int) MGLYPH (gidx)->code; MGLYPH (gidx)->code = (unsigned) MGLYPH (gidx)->c; } + for (; MGLYPH (to)->type != GLYPH_ANCHOR; to++, i++) + { + MGlyph *g = MGLYPH (to); + unsigned code; + + if (g->category != McatCf + && g->rface->rfont && g->rface->rfont->layouter != Mnil + && g->rface->rfont->layouter != layouter_name) + break; + code = mfont__encode_char (g->rface->rfont, g->c); + if (code == MCHAR_INVALID_CODE) + break; + g->code = g->c; + ctx.encoded[i] = (int) code; + } + ctx.encoded[i++] = '\0'; match_indices[0] = from;