From 1f305dc0fdb8415c9c1321e49cc194089e58c456 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Thu, 9 Mar 2006 22:21:20 +0000 Subject: Portability patch from rfelker. The bb_asprintf.c thing needs an eventual follow up in platform.h to set the #ifdef, but the workaround works for everybody, so... --- libbb/bb_asprintf.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'libbb') diff --git a/libbb/bb_asprintf.c b/libbb/bb_asprintf.c index 8658a5408..191417a2d 100644 --- a/libbb/bb_asprintf.c +++ b/libbb/bb_asprintf.c @@ -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"); -- cgit v1.2.3-55-g6feb