comment all fields
[oweals/busybox.git] / libbb / bb_asprintf.c
index 8658a54087e84411c67416bfb6854ec1ff8b3b44..191417a2dff63277ccb7373f834a58d4b175eaf4 100644 (file)
@@ -13,9 +13,19 @@ char *bb_xasprintf(const char *format, ...)
        int r;
        char *string_ptr;
 
+#ifdef HAVE_GNU_EXTENSIONS
        va_start(p, format);
        r = vasprintf(&string_ptr, format, p);
        va_end(p);
+#else
+       va_start(p, format);
+       r = vsnprintf(NULL, 0, format, p);
+       va_end(p);
+       string_ptr = xmalloc(r+1);
+       va_start(p, format);
+       r = vsnprintf(string_ptr, r+1, format, p);
+       va_end(p);
+#endif
 
        if (r < 0) {
                bb_perror_msg_and_die("bb_xasprintf");