diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-12-18 22:10:24 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-12-18 22:10:24 +0000 |
commit | c8e6e35ba4095846121d5b5a3eee57caa5e8e0fb (patch) | |
tree | d310542c65bbfd183b50f156916ef3313721625f /libbb/xfuncs.c | |
parent | 83e5d6f77237b64853c194b0ce592e77ef677c4d (diff) | |
download | busybox-w32-c8e6e35ba4095846121d5b5a3eee57caa5e8e0fb.tar.gz busybox-w32-c8e6e35ba4095846121d5b5a3eee57caa5e8e0fb.tar.bz2 busybox-w32-c8e6e35ba4095846121d5b5a3eee57caa5e8e0fb.zip |
nc: add missing cast
xfuncs: add dprintf for dietlibc
Diffstat (limited to 'libbb/xfuncs.c')
-rw-r--r-- | libbb/xfuncs.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index 313e32814..4790aa140 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c | |||
@@ -411,6 +411,37 @@ char *xasprintf(const char *format, ...) | |||
411 | return string_ptr; | 411 | return string_ptr; |
412 | } | 412 | } |
413 | 413 | ||
414 | #ifdef __dietlibc__ | ||
415 | int dprintf(int fd, const char *format, ...) | ||
416 | { | ||
417 | va_list p; | ||
418 | int r; | ||
419 | char *string_ptr; | ||
420 | |||
421 | #if 1 | ||
422 | // GNU extension | ||
423 | va_start(p, format); | ||
424 | r = vasprintf(&string_ptr, format, p); | ||
425 | va_end(p); | ||
426 | #else | ||
427 | // Bloat for systems that haven't got the GNU extension. | ||
428 | va_start(p, format); | ||
429 | r = vsnprintf(NULL, 0, format, p); | ||
430 | va_end(p); | ||
431 | string_ptr = xmalloc(r+1); | ||
432 | va_start(p, format); | ||
433 | r = vsnprintf(string_ptr, r+1, format, p); | ||
434 | va_end(p); | ||
435 | #endif | ||
436 | |||
437 | if (r >= 0) { | ||
438 | full_write(fd, string_ptr, r); | ||
439 | free(string_ptr); | ||
440 | } | ||
441 | return r; | ||
442 | } | ||
443 | #endif | ||
444 | |||
414 | // Die with an error message if we can't copy an entire FILE * to stdout, then | 445 | // Die with an error message if we can't copy an entire FILE * to stdout, then |
415 | // close that file. | 446 | // close that file. |
416 | void xprint_and_close_file(FILE *file) | 447 | void xprint_and_close_file(FILE *file) |