summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2006-09-12 17:02:07 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2006-09-12 17:02:07 +0000
commitb927529d336e6d55d539c446c2bc36bf1f56e55a (patch)
tree730b1ee7625130d451fbefa29555be1a5921a207 /modules
parent7ce789271b911714d0dd4e38e17d2bca5573c6a4 (diff)
downloadpango-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.c12
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)++;