tHandle non-ASCII characters properly by adding suitable casts; test for isascii() before using isprint() so as not to fail on systems for which isprint() is undefined for non-ASCII characters. - vaccinewars - be a doctor and try to vaccinate the world (HTM) git clone git://src.adamsgaard.dk/vaccinewars (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit f652931011b761b1a5eb96ea1a2684c3a903d1b5 (DIR) parent 6c413067e172ab887c46e24f73013700294d29bc (HTM) Author: Ben Webb <ben@salilab.org> Date: Tue, 17 Sep 2002 09:33:04 +0000 Handle non-ASCII characters properly by adding suitable casts; test for isascii() before using isprint() so as not to fail on systems for which isprint() is undefined for non-ASCII characters. Diffstat: M src/configfile.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) --- (DIR) diff --git a/src/configfile.c b/src/configfile.c t@@ -48,12 +48,13 @@ static void PrintEscaped(FILE *fp, gchar *str) guint i; for (i = 0; i < strlen(str); i++) { - switch(str[i]) { + int ch = (int)(guchar)str[i]; + switch(ch) { case '"': case '\'': case '\\': fputc('\\', fp); - fputc(str[i], fp); + fputc(ch, fp); break; case '\n': fputs("\\n", fp); t@@ -71,10 +72,10 @@ static void PrintEscaped(FILE *fp, gchar *str) fputs("\\f", fp); break; default: - if (isprint(str[i])) { - fputc(str[i], fp); + if (isascii(ch) && isprint(ch)) { + fputc(ch, fp); } else { - fprintf(fp, "\\%o", (int)(guchar)str[i]); + fprintf(fp, "\\%o", ch); } } }