diff options
author | Behdad Esfahbod <behdad@gnome.org> | 2006-09-12 17:02:07 +0000 |
---|---|---|
committer | Behdad Esfahbod <behdad@src.gnome.org> | 2006-09-12 17:02:07 +0000 |
commit | b927529d336e6d55d539c446c2bc36bf1f56e55a (patch) | |
tree | 730b1ee7625130d451fbefa29555be1a5921a207 /modules | |
parent | 7ce789271b911714d0dd4e38e17d2bca5573c6a4 (diff) | |
download | pango-b927529d336e6d55d539c446c2bc36bf1f56e55a.tar.gz |
Bug 355605 – hexbox with 0000 in it
2006-09-12 Behdad Esfahbod <behdad@gnome.org>
Bug 355605 – hexbox with 0000 in it
* modules/hangul/hangul-fc.c (render_syllable): If decomposition
fails, backup and add a single hexbox glyph for the original
character.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/hangul/hangul-fc.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/modules/hangul/hangul-fc.c b/modules/hangul/hangul-fc.c index 64966648..8b85c19a 100644 --- a/modules/hangul/hangul-fc.c +++ b/modules/hangul/hangul-fc.c @@ -231,6 +231,7 @@ render_syllable (PangoFont *font, gunichar *text, int length, for (i = 0; i < length; i++) { int jindex; + int oldlen; if (text[i] == LFILL || text[i] == VFILL) continue; @@ -247,14 +248,21 @@ render_syllable (PangoFont *font, gunichar *text, int length, /* This font has no glyphs on the Hangul Jamo area! Find a fallback from the Hangul Compatibility Jamo area. */ jindex = text[i] - LBASE; + oldlen = *n_glyphs; for (j = 0; j < 3 && (__jamo_to_ksc5601[jindex][j] != 0); j++) { wc = __jamo_to_ksc5601[jindex][j] - KSC_JAMOBASE + UNI_JAMOBASE; index = (wc >= 0x3131) ? find_char (font, wc) : 0; pango_glyph_string_set_size (glyphs, *n_glyphs + 1); if (!index) - set_glyph (font, glyphs, *n_glyphs, cluster_offset, - get_unknown_glyph (font, index)); + { + *n_glyphs = oldlen; + pango_glyph_string_set_size (glyphs, *n_glyphs + 1); + set_glyph (font, glyphs, *n_glyphs, cluster_offset, + get_unknown_glyph (font, text[i])); + (*n_glyphs)++; + break; + } else set_glyph (font, glyphs, *n_glyphs, cluster_offset, index); (*n_glyphs)++; |