# HG changeset patch # User Mikael Berthe # Date 1147727173 -7200 # Node ID ef35a2bb40d79c9977b5fb388eff0e64a700edac # Parent 722f186f51c3353492d56a367fda8f4f2fe36354 scr_LogPrint(): do not use static buffer size diff -r 722f186f51c3 -r ef35a2bb40d7 mcabber/src/screen.c --- a/mcabber/src/screen.c Sun May 14 10:44:52 2006 +0200 +++ b/mcabber/src/screen.c Mon May 15 23:06:13 2006 +0200 @@ -339,20 +339,19 @@ void scr_LogPrint(unsigned int flag, const char *fmt, ...) { time_t timestamp; + char strtimestamp[64]; char *buffer, *b2; va_list ap; if (!(flag & ~LPRINT_NOTUTF8)) return; // Shouldn't happen - buffer = g_new(char, 5184); + timestamp = time(NULL); + strftime(strtimestamp, 48, "[%H:%M:%S]", localtime(×tamp)); + va_start(ap, fmt); + b2 = g_strdup_vprintf(fmt, ap); + va_end(ap); - timestamp = time(NULL); - strftime(buffer, 48, "[%H:%M:%S] ", localtime(×tamp)); - for (b2 = buffer ; *b2 ; b2++) - ; - va_start(ap, fmt); - vsnprintf(b2, 5120, fmt, ap); - va_end(ap); + buffer = g_strdup_printf("%s %s", strtimestamp, b2); if (flag & LPRINT_NORMAL) { char *buffer_locale; @@ -388,16 +387,14 @@ if (!(flag & LPRINT_NOTUTF8)) g_free(buffer_locale); } - if (flag & (LPRINT_LOG|LPRINT_DEBUG)) { - char *buffer2 = g_new(char, 5184); + g_free(buffer); - strftime(buffer2, 23, "[%Y-%m-%d %H:%M:%S] ", localtime(×tamp)); - strcat(buffer2, b2); - strcat(buffer2, "\n"); - ut_WriteLog(flag, buffer2); - g_free(buffer2); + if (flag & (LPRINT_LOG|LPRINT_DEBUG)) { + strftime(strtimestamp, 23, "[%Y-%m-%d %H:%M:%S]", localtime(×tamp)); + buffer = g_strdup_printf("%s %s\n", strtimestamp, b2); + ut_WriteLog(flag, buffer); + g_free(buffer); } - g_free(buffer); } // scr_CreateBuddyPanel(title, dontshow)