-static size_t valist_to_buf(char **buffer, const char *fmt, va_list src_args)
-{
- size_t len, cur = LOG_START_SZ;
- va_list args;
-
- do {
- *buffer = calloc(1, cur);
- if (!*buffer)
- return 0;
-
- va_copy(args, src_args);
- len = vsnprintf(*buffer, cur, fmt, args);
- va_end(args);
-
- if (len < cur)
- break;
-
- cur = len + 1;
- free(*buffer);
- } while (1);
-
- return len;
-}
-
-/* allocate buffer, fill with prefix string followed by vararg string */
-static size_t prevalist_to_buf(char **buffer, const char *pre, int prelen,
- const char *fmt, va_list src_args)
-{
- size_t len, cur = LOG_START_SZ;
- va_list args;
-
- do {
- *buffer = calloc(1, cur);
- if (!*buffer)
- return 0;
-
- va_copy(args, src_args);
- memcpy(*buffer, pre, prelen);
- len = prelen + vsnprintf(*buffer + prelen, cur - prelen, fmt, args);
- va_end(args);
-
- if (len < cur)
- break;
-
- cur = len + 1;
- free(*buffer);
- } while (1);
-
- return len;
-}
-