diff options
author | Ron Yorston <rmy@pobox.com> | 2012-03-26 12:47:40 +0100 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2012-03-26 12:47:40 +0100 |
commit | b11062c28d3b8b9401effcc9fd7a7f76d920461f (patch) | |
tree | 1919ed663659342e9ee082482b2e8468764e85ad /libbb | |
parent | 83fefff167c161716ba4a40aa4f0dce96cfd3498 (diff) | |
download | busybox-w32-b11062c28d3b8b9401effcc9fd7a7f76d920461f.tar.gz busybox-w32-b11062c28d3b8b9401effcc9fd7a7f76d920461f.tar.bz2 busybox-w32-b11062c28d3b8b9401effcc9fd7a7f76d920461f.zip |
MinGW snprintf/vsnprintf work properly
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/platform.c | 15 | ||||
-rw-r--r-- | libbb/xfuncs_printf.c | 14 |
2 files changed, 1 insertions, 28 deletions
diff --git a/libbb/platform.c b/libbb/platform.c index 3cb41347f..2bf34f5bc 100644 --- a/libbb/platform.c +++ b/libbb/platform.c | |||
@@ -51,21 +51,8 @@ int dprintf(int fd, const char *format, ...) | |||
51 | char *string_ptr; | 51 | char *string_ptr; |
52 | 52 | ||
53 | va_start(p, format); | 53 | va_start(p, format); |
54 | if (ENABLE_PLATFORM_MINGW32) { | 54 | r = vasprintf(&string_ptr, format, p); |
55 | string_ptr = xmalloc(1024); | ||
56 | r = vsnprintf(string_ptr, 1024, format, p); | ||
57 | } | ||
58 | else | ||
59 | r = vasprintf(&string_ptr, format, p); | ||
60 | va_end(p); | 55 | va_end(p); |
61 | if (ENABLE_PLATFORM_MINGW32 && r > 0) { | ||
62 | free(string_ptr); | ||
63 | r += 2; | ||
64 | string_ptr = xmalloc(r); | ||
65 | va_start(p, format); | ||
66 | r = vsnprintf(string_ptr, r, format, p); | ||
67 | va_end(p); | ||
68 | } | ||
69 | if (r >= 0) { | 56 | if (r >= 0) { |
70 | r = full_write(fd, string_ptr, r); | 57 | r = full_write(fd, string_ptr, r); |
71 | free(string_ptr); | 58 | free(string_ptr); |
diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c index 70d3fc96c..d8a42ba0b 100644 --- a/libbb/xfuncs_printf.c +++ b/libbb/xfuncs_printf.c | |||
@@ -295,22 +295,8 @@ char* FAST_FUNC xasprintf(const char *format, ...) | |||
295 | char *string_ptr; | 295 | char *string_ptr; |
296 | 296 | ||
297 | va_start(p, format); | 297 | va_start(p, format); |
298 | #if ENABLE_PLATFORM_MINGW32 | ||
299 | string_ptr = xmalloc(1024); | ||
300 | r = vsnprintf(string_ptr, 1024, format, p); | ||
301 | va_end(p); | ||
302 | if (r > 0) { | ||
303 | free(string_ptr); | ||
304 | r += 2; | ||
305 | string_ptr = xmalloc(r); | ||
306 | va_start(p, format); | ||
307 | r = vsnprintf(string_ptr, r, format, p); | ||
308 | va_end(p); | ||
309 | } | ||
310 | #else | ||
311 | r = vasprintf(&string_ptr, format, p); | 298 | r = vasprintf(&string_ptr, format, p); |
312 | va_end(p); | 299 | va_end(p); |
313 | #endif | ||
314 | 300 | ||
315 | if (r < 0) | 301 | if (r < 0) |
316 | bb_error_msg_and_die(bb_msg_memory_exhausted); | 302 | bb_error_msg_and_die(bb_msg_memory_exhausted); |