diff options
author | landley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-03-09 22:21:20 +0000 |
---|---|---|
committer | landley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-03-09 22:21:20 +0000 |
commit | 0b5b84349d2c73b73cc93ba6bea3b3f187b65e77 (patch) | |
tree | a176d02a50d900a5dc610266d920c5efc65c3e1e /libbb | |
parent | 47fe8d364ca68aef1ba972f1624ded711dc9cd92 (diff) | |
download | busybox-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.c | 10 |
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"); |