* pango/pango-shape.c (pango_shape): Instead of crashing if the shaper
failed to produce any glyphs, print out a warning message containing
the name of the font, and mark the font such that we don't keep
- printing warning for the same font.
+ printing warning for the same font. Moreover, inject one whitespace
+ glyph per character, so you just see nothing, but everything works
+ otherwise.
2006-01-28 Behdad Esfahbod <behdad@gnome.org>
if (!glyphs->num_glyphs)
{
- pango_glyph_string_set_size (glyphs, 1);
+ /* If failed to get glyphs, put a whitespace glyph per character
+ */
+ pango_glyph_string_set_size (glyphs, g_utf8_strlen (text, length));
- glyphs->glyphs[0].glyph = 0;
-
- glyphs->glyphs[0].geometry.x_offset = 0;
- glyphs->glyphs[0].geometry.y_offset = 0;
- glyphs->glyphs[0].geometry.width = 0;
-
- glyphs->log_clusters[0] = 0;
+ for (i = 0; i < glyphs->num_glyphs; i++)
+ {
+ glyphs->glyphs[i].glyph = 0;
+
+ glyphs->glyphs[i].geometry.x_offset = 0;
+ glyphs->glyphs[i].geometry.y_offset = 0;
+ glyphs->glyphs[i].geometry.width = 10 * PANGO_SCALE;
+
+ glyphs->log_clusters[i] = i;
+ }
}
/* Set glyphs[i].attr.is_cluster_start based on log_clusters[]