diff options
Diffstat (limited to 'src/buffer.cpp')
| -rw-r--r-- | src/buffer.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/buffer.cpp b/src/buffer.cpp index 1978371034..a03ab333f3 100644 --- a/src/buffer.cpp +++ b/src/buffer.cpp @@ -3,9 +3,8 @@ #include <stdlib.h> #include <stdio.h> -Buf *buf_sprintf(const char *format, ...) { - va_list ap, ap2; - va_start(ap, format); +Buf *buf_vprintf(const char *format, va_list ap) { + va_list ap2; va_copy(ap2, ap); int len1 = vsnprintf(nullptr, 0, format, ap); @@ -19,11 +18,18 @@ Buf *buf_sprintf(const char *format, ...) { assert(len2 == len1); va_end(ap2); - va_end(ap); return buf; } +Buf *buf_sprintf(const char *format, ...) { + va_list ap; + va_start(ap, format); + Buf *result = buf_vprintf(format, ap); + va_end(ap); + return result; +} + void buf_appendf(Buf *buf, const char *format, ...) { assert(buf->list.length); va_list ap, ap2; |
