diff options
author | Behdad Esfahbod <behdad@gnome.org> | 2006-09-12 17:07:58 +0000 |
---|---|---|
committer | Behdad Esfahbod <behdad@src.gnome.org> | 2006-09-12 17:07:58 +0000 |
commit | 60b4b295d136f0dd9102100940d6bb396494bbef (patch) | |
tree | 75b5b9a5b7ab80502a057cc76177f5874e7f44a0 /modules | |
parent | fca3a5693a7516bb4871576886609f9baf97ac74 (diff) | |
download | pango-60b4b295d136f0dd9102100940d6bb396494bbef.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)++; |