From: Richard L. <rl...@us...> - 2006-02-07 09:50:17
|
Update of /cvsroot/gaim/gaim/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17030/src Modified Files: log.c Log Message: Given that the timezone is coming from the locale, it might be non-ASCII. Let's make sure to escape everything. This seems like the cleanest and most portable way of dealing with the filename encoding. As these are logs, I'd like their names to be all ASCII, to avoid problems when moving them between filesystems with different encodings. Index: log.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/log.c,v retrieving revision 1.147 retrieving revision 1.148 diff -u -d -p -r1.147 -r1.148 --- log.c 7 Feb 2006 08:01:20 -0000 1.147 +++ log.c 7 Feb 2006 09:50:06 -0000 1.148 @@ -637,7 +637,7 @@ void gaim_log_common_writer(GaimLog *log filename = g_strdup_printf("%s%s", date, ext ? ext : ""); - path = g_build_filename(dir, filename, NULL); + path = g_build_filename(dir, gaim_escape_filename(filename), NULL); g_free(dir); g_free(filename); @@ -664,7 +664,7 @@ GList *gaim_log_common_lister(GaimLogTyp { GDir *dir; GList *list = NULL; - const char *filename; + const char *fname; char *path; if(!account) @@ -680,8 +680,10 @@ GList *gaim_log_common_lister(GaimLogTyp return NULL; } - while ((filename = g_dir_read_name(dir))) + while ((fname = g_dir_read_name(dir))) { + const char *filename = gaim_unescape_filename(fname); + if (gaim_str_has_suffix(filename, ext) && strlen(filename) >= (17 + strlen(ext))) { @@ -886,7 +888,7 @@ static void xml_logger_write(GaimLog *lo gaim_build_dir (dir, S_IRUSR | S_IWUSR | S_IXUSR); - filename = g_build_filename(dir, date, NULL); + filename = g_build_filename(dir, gaim_escape_filename(date), NULL); g_free(dir); log->logger_data = g_fopen(filename, "a"); |