diff options
author | Owen Taylor <otaylor@redhat.com> | 2002-07-31 19:55:21 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2002-07-31 19:55:21 +0000 |
commit | 40bc4991e51fc8c2fa70516bae6d36599431cb6a (patch) | |
tree | a8555c57f91c4037c2fa4d2a766a68b13801678c /modules/thai | |
parent | 9f790d57b0cea4fafc70a43acc7ee98b23f09f8d (diff) | |
download | pango-40bc4991e51fc8c2fa70516bae6d36599431cb6a.tar.gz |
Argument to make_glyph() shouldn't have been unsigned char, since we pass
Wed Jul 31 15:43:39 2002 Owen Taylor <otaylor@redhat.com>
* modules/thai/{thai-shaper.h,thai-x.c,thai-xft.c}:
Argument to make_glyph() shouldn't have been
unsigned char, since we pass unicode through it.
* modules/thai/thai-xft.c (make_glyph): Handle
THAI_FONT_ISO10646 correctly. If a character isn't
found, return the correct unknown glyph.
Diffstat (limited to 'modules/thai')
-rw-r--r-- | modules/thai/thai-fc.c | 15 | ||||
-rw-r--r-- | modules/thai/thai-shaper.h | 4 | ||||
-rw-r--r-- | modules/thai/thai-x.c | 4 | ||||
-rw-r--r-- | modules/thai/thai-xft.c | 15 |
4 files changed, 24 insertions, 14 deletions
diff --git a/modules/thai/thai-fc.c b/modules/thai/thai-fc.c index 169aa66d..3a20a536 100644 --- a/modules/thai/thai-fc.c +++ b/modules/thai/thai-fc.c @@ -162,23 +162,28 @@ get_font_info (PangoFont *font) } PangoGlyph -make_glyph (ThaiFontInfo *font_info, unsigned char c) +make_glyph (ThaiFontInfo *font_info, unsigned int c) { int index; + PangoGlyph result; switch (font_info->font_set) { - case THAI_FONT_ISO10646: + case THAI_FONT_ISO10646:index = c; break; case THAI_FONT_TIS: index = (c & 0x80) ? tis620_0[c & 0x7f] : c; break; case THAI_FONT_TIS_MAC: index = (c & 0x80) ? tis620_1[c & 0x7f] : c; break; case THAI_FONT_TIS_WIN: index = (c & 0x80) ? tis620_2[c & 0x7f] : c; break; default: index = 0; break; } - - return pango_xft_font_get_glyph (font_info->font, index); + + result = pango_xft_font_get_glyph (font_info->font, index); + if (result) + return result; + else + return pango_xft_font_get_unknown_glyph (font_info->font, c); } PangoGlyph -make_unknown_glyph (ThaiFontInfo *font_info, unsigned char c) +make_unknown_glyph (ThaiFontInfo *font_info, unsigned int c) { return pango_xft_font_get_unknown_glyph (font_info->font, c); } diff --git a/modules/thai/thai-shaper.h b/modules/thai/thai-shaper.h index 57f4f929..fa2f879e 100644 --- a/modules/thai/thai-shaper.h +++ b/modules/thai/thai-shaper.h @@ -38,10 +38,10 @@ ThaiFontInfo * get_font_info (PangoFont *font); PangoGlyph -make_glyph (ThaiFontInfo *font_info, unsigned char c); +make_glyph (ThaiFontInfo *font_info, unsigned int c); PangoGlyph -make_unknown_glyph (ThaiFontInfo *font_info, unsigned char c); +make_unknown_glyph (ThaiFontInfo *font_info, unsigned int c); /* * Public functions diff --git a/modules/thai/thai-x.c b/modules/thai/thai-x.c index 9890e64f..dbd15b64 100644 --- a/modules/thai/thai-x.c +++ b/modules/thai/thai-x.c @@ -126,13 +126,13 @@ get_font_info (PangoFont *font) } PangoGlyph -make_glyph (ThaiFontInfo *font_info, unsigned char c) +make_glyph (ThaiFontInfo *font_info, unsigned int c) { return PANGO_X_MAKE_GLYPH (font_info->subfont, c); } PangoGlyph -make_unknown_glyph (ThaiFontInfo *font_info, unsigned char c) +make_unknown_glyph (ThaiFontInfo *font_info, unsigned int c) { return pango_x_get_unknown_glyph (font_info->font); } diff --git a/modules/thai/thai-xft.c b/modules/thai/thai-xft.c index 169aa66d..3a20a536 100644 --- a/modules/thai/thai-xft.c +++ b/modules/thai/thai-xft.c @@ -162,23 +162,28 @@ get_font_info (PangoFont *font) } PangoGlyph -make_glyph (ThaiFontInfo *font_info, unsigned char c) +make_glyph (ThaiFontInfo *font_info, unsigned int c) { int index; + PangoGlyph result; switch (font_info->font_set) { - case THAI_FONT_ISO10646: + case THAI_FONT_ISO10646:index = c; break; case THAI_FONT_TIS: index = (c & 0x80) ? tis620_0[c & 0x7f] : c; break; case THAI_FONT_TIS_MAC: index = (c & 0x80) ? tis620_1[c & 0x7f] : c; break; case THAI_FONT_TIS_WIN: index = (c & 0x80) ? tis620_2[c & 0x7f] : c; break; default: index = 0; break; } - - return pango_xft_font_get_glyph (font_info->font, index); + + result = pango_xft_font_get_glyph (font_info->font, index); + if (result) + return result; + else + return pango_xft_font_get_unknown_glyph (font_info->font, c); } PangoGlyph -make_unknown_glyph (ThaiFontInfo *font_info, unsigned char c) +make_unknown_glyph (ThaiFontInfo *font_info, unsigned int c) { return pango_xft_font_get_unknown_glyph (font_info->font, c); } |