# HG changeset patch # User Timo Sirainen # Date 1032147186 -10800 # Node ID 400ac5f9ed40cc4c986f24569d7596e779cfec97 # Parent 1fe8eae6fd89b63ca82544f3b2f85b2d71d98695 previous t_push()/t_pop() changes break things. fixed :) diff -r 1fe8eae6fd89 -r 400ac5f9ed40 src/lib/strfuncs.c --- a/src/lib/strfuncs.c Mon Sep 16 06:13:10 2002 +0300 +++ b/src/lib/strfuncs.c Mon Sep 16 06:33:06 2002 +0300 @@ -470,11 +470,11 @@ i_assert(format != NULL); t_push(); + va_start(args, format); format = fix_format(format); buf = t_buffer_get(printf_string_upper_bound(format, args)); va_end(args); - t_pop(); len = vsprintf(buf, format, args); if (len >= (int)max_chars) @@ -482,6 +482,8 @@ memcpy(str, buf, len); str[len] = '\0'; + + t_pop(); return len; #endif } @@ -652,7 +654,6 @@ if (format == NULL) return NULL; - t_push(); format = fix_format(format); VA_COPY(temp_args, args); @@ -661,14 +662,18 @@ vsprintf(ret, format, args); va_end(temp_args); - t_pop(); return ret; } char *p_strdup_vprintf(Pool pool, const char *format, va_list args) { - return strdup_vprintf_core(format, args, pool->malloc, pool); + char *ret; + + t_push(); + ret = strdup_vprintf_core(format, args, pool->malloc, pool); + t_pop(); + return ret; } const char *t_strdup_vprintf(const char *format, va_list args)