From d4d6d7317dce6981a8491fb52f9211694830bf2b Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Wed, 31 Jul 2002 15:50:38 +0000 Subject: Set is_cluster_start attributes based on the log_clusters[] set by the Tue Jul 30 23:10:14 2002 Owen Taylor * pango/shape.c (pango_shape): Set is_cluster_start attributes based on the log_clusters[] set by the shape engine. (Fix for #84307, Reported by Alex Larsson, others.) --- pango/shape.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'pango/shape.c') diff --git a/pango/shape.c b/pango/shape.c index 2c95f2e8..5cfdf13b 100644 --- a/pango/shape.c +++ b/pango/shape.c @@ -40,6 +40,9 @@ pango_shape (const gchar *text, PangoAnalysis *analysis, PangoGlyphString *glyphs) { + int i; + int last_cluster = -1; + if (analysis->shape_engine) analysis->shape_engine->script_shape (analysis->font, text, length, analysis, glyphs); else @@ -55,5 +58,18 @@ pango_shape (const gchar *text, glyphs->log_clusters[0] = 0; } + /* Set glyphs[i].attr.is_cluster_start based on log_clusters[] + */ + for (i = 0; i < glyphs->num_glyphs; i++) + { + if (glyphs->log_clusters[i] != last_cluster) + { + glyphs->glyphs[i].attr.is_cluster_start = TRUE; + last_cluster = glyphs->log_clusters[i]; + } + else + glyphs->glyphs[i].attr.is_cluster_start = FALSE; + } + g_assert (glyphs->num_glyphs > 0); } -- cgit v1.2.1