summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2009-01-06 10:40:30 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2009-01-06 10:40:30 +0000
commit24fb6a2be0c492b023b32ab98556961a8317e13e (patch)
tree96e3b988b4b49b15f639043bbaf24df1ed4c0a9d
parent12762f0b6df9c0324929feb99fc80406c7501418 (diff)
downloadpango-24fb6a2be0c492b023b32ab98556961a8317e13e.tar.gz
Make it Unicode safe.
2009-01-06 Behdad Esfahbod <behdad@gnome.org> * pango/fonts.c (pango_font_description_to_filename): Make it Unicode safe. svn path=/trunk/; revision=2786
-rw-r--r--ChangeLog5
-rw-r--r--pango/fonts.c7
2 files changed, 8 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 28707073..c66b02d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2009-01-06 Behdad Esfahbod <behdad@gnome.org>
+ * pango/fonts.c (pango_font_description_to_filename):
+ Make it Unicode safe.
+
+2009-01-06 Behdad Esfahbod <behdad@gnome.org>
+
* pango/fonts.c (find_field), (parse_field), (pango_parse_style),
(pango_parse_variant), (pango_parse_weight), (pango_parse_stretch):
Move the parse_*() functions in fonts.c and have them share tables
diff --git a/pango/fonts.c b/pango/fonts.c
index 532adbe3..5e145aec 100644
--- a/pango/fonts.c
+++ b/pango/fonts.c
@@ -1280,13 +1280,12 @@ pango_font_description_to_filename (const PangoFontDescription *desc)
result = pango_font_description_to_string (desc);
- /* XXX This should be rewritten to read char-by-char instead
- * of byte-by-byte, to be Unicode safe.
- */
p = result;
while (*p)
{
- if (strchr ("-+_.", *p) == NULL && !g_ascii_isalnum (*p))
+ if (G_UNLIKELY ((guchar) *p >= 128))
+ /* skip over non-ASCII chars */;
+ else if (strchr ("-+_.", *p) == NULL && !g_ascii_isalnum (*p))
*p = '_';
else
*p = g_ascii_tolower (*p);