From: <ro...@us...> - 2006-07-02 21:13:00
|
Revision: 16399 Author: roast Date: 2006-07-02 14:12:54 -0700 (Sun, 02 Jul 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16399&view=rev Log Message: ----------- log creation now calls gaim_escape_filename fewer times; extra strings facilitates Modified Paths: -------------- branches/soc-2006-file-loggers/src/log.c Modified: branches/soc-2006-file-loggers/src/log.c =================================================================== --- branches/soc-2006-file-loggers/src/log.c 2006-07-02 19:34:04 UTC (rev 16398) +++ branches/soc-2006-file-loggers/src/log.c 2006-07-02 21:12:54 UTC (rev 16399) @@ -666,8 +666,8 @@ /* This log is new */ char *dir; struct tm *tm; - char *tz; - const char *date; + char *basename; + char *extname; char *filename; char *path; @@ -677,16 +677,19 @@ gaim_build_dir (dir, S_IRUSR | S_IWUSR | S_IXUSR); - // roast: tz must be strdup'd. gaim_escape_filename returns a pointer to static data, - // and I need it for escaping remote_user's name for the filename below tm = localtime(&log->time); - tz = g_strdup(gaim_escape_filename(gaim_utf8_strftime("%Z", tm))); - date = gaim_utf8_strftime("%Y-%m-%dT%H%M%S%z", tm); - filename = g_strdup_printf("%s_%s%s%s", - gaim_escape_filename(gaim_normalize(log->account, log->name)), - date, tz, ext ? ext : ""); + { // build basename + char * temp = g_strdup_printf("%s_%s", gaim_normalize(log->account, log->name), + gaim_utf8_strftime("%Y-%m-%dT%H%M%S%z%Z", tm)); + basename = g_strdup(gaim_escape_filename(temp)); + g_free(temp); + } + extname = g_strdup(gaim_escape_filename(ext)); + + filename = g_strdup_printf("%s%s", basename, extname ? extname : ""); + path = g_build_filename(dir, filename, NULL); g_free(filename); @@ -696,9 +699,7 @@ do { g_free(path); - filename = g_strdup_printf("%s_%s%s.%c%s", - gaim_escape_filename(gaim_normalize(log->account, log->name)), - date, tz, suffixchar, ext ? ext : ""); + filename = g_strdup_printf("%s%c%s", basename, suffixchar, extname ? extname : ""); path = g_build_filename(dir, filename, NULL); g_free(filename); @@ -709,9 +710,10 @@ /* we have a collision problem. not logging, and complain. */ gaim_conversation_write(log->conv, NULL, _("Logging of this conversation failed."), GAIM_MESSAGE_ERROR, time(NULL)); - g_free(tz); g_free(dir); g_free(path); + g_free(extname); + g_free(basename); return; } } @@ -727,14 +729,18 @@ if (log->conv != NULL) gaim_conversation_write(log->conv, NULL, _("Logging of this conversation failed."), GAIM_MESSAGE_ERROR, time(NULL)); - g_free(tz); g_free(dir); g_free(path); + g_free(extname); + g_free(basename); return; } data->path = g_strndup(path, strlen(path)); + g_free(dir); g_free(path); + g_free(extname); + g_free(basename); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |