From 652d460a5d7558128361c9dcc1baa2a40e5430b5 Mon Sep 17 00:00:00 2001 From: handa Date: Mon, 15 Mar 2004 23:17:11 +0000 Subject: [PATCH] *** empty log message *** --- src/font-flt.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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; -- 1.7.10.4