aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
authorlandley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-03-09 22:21:20 +0000
committerlandley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-03-09 22:21:20 +0000
commit0b5b84349d2c73b73cc93ba6bea3b3f187b65e77 (patch)
treea176d02a50d900a5dc610266d920c5efc65c3e1e /libbb
parent47fe8d364ca68aef1ba972f1624ded711dc9cd92 (diff)
downloadbusybox-w32-0b5b84349d2c73b73cc93ba6bea3b3f187b65e77.tar.gz
busybox-w32-0b5b84349d2c73b73cc93ba6bea3b3f187b65e77.tar.bz2
busybox-w32-0b5b84349d2c73b73cc93ba6bea3b3f187b65e77.zip
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... git-svn-id: svn://busybox.net/trunk/busybox@14498 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'libbb')
-rw-r--r--libbb/bb_asprintf.c10
1 files changed, 10 insertions, 0 deletions
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, ...)
13 int r; 13 int r;
14 char *string_ptr; 14 char *string_ptr;
15 15
16#ifdef HAVE_GNU_EXTENSIONS
16 va_start(p, format); 17 va_start(p, format);
17 r = vasprintf(&string_ptr, format, p); 18 r = vasprintf(&string_ptr, format, p);
18 va_end(p); 19 va_end(p);
20#else
21 va_start(p, format);
22 r = vsnprintf(NULL, 0, format, p);
23 va_end(p);
24 string_ptr = xmalloc(r+1);
25 va_start(p, format);
26 r = vsnprintf(string_ptr, r+1, format, p);
27 va_end(p);
28#endif
19 29
20 if (r < 0) { 30 if (r < 0) {
21 bb_perror_msg_and_die("bb_xasprintf"); 31 bb_perror_msg_and_die("bb_xasprintf");