summaryrefslogtreecommitdiff
path: root/modules/basic/basic-fc.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/basic/basic-fc.c')
-rw-r--r--modules/basic/basic-fc.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/modules/basic/basic-fc.c b/modules/basic/basic-fc.c
index 70b311cd..7daf2a93 100644
--- a/modules/basic/basic-fc.c
+++ b/modules/basic/basic-fc.c
@@ -379,19 +379,26 @@ basic_engine_shape (PangoEngineShape *engine,
input = buf;
}
- index = pango_fc_font_get_glyph (fc_font, wc);
-
- if (!index)
+ if (pango_is_zero_width (wc)) /* Zero-width characters */
{
- pango_ot_buffer_add_glyph (buffer, pango_fc_font_get_unknown_glyph (fc_font, wc),
- unknown_property, p - text);
+ pango_ot_buffer_add_glyph (buffer, 0, unknown_property, p - text);
}
else
- {
- cluster = p - text;
+ {
+ index = pango_fc_font_get_glyph (fc_font, wc);
- pango_ot_buffer_add_glyph (buffer, index,
- unknown_property, cluster);
+ if (!index)
+ {
+ pango_ot_buffer_add_glyph (buffer, pango_fc_font_get_unknown_glyph (fc_font, wc),
+ unknown_property, p - text);
+ }
+ else
+ {
+ cluster = p - text;
+
+ pango_ot_buffer_add_glyph (buffer, index,
+ unknown_property, cluster);
+ }
}
p = g_utf8_next_char (p);