diff options
author | Ron Yorston <rmy@pobox.com> | 2018-03-06 13:13:03 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2018-03-06 13:13:03 +0000 |
commit | c44b18ace0b3e020e594f4d4ab2c9a1211ec90ab (patch) | |
tree | 3d052cfba60bd79e937f1bec278be6d92c384e43 /win32 | |
parent | 6cc225008d9b34daf1b547630e204fdcafaa76ab (diff) | |
download | busybox-w32-c44b18ace0b3e020e594f4d4ab2c9a1211ec90ab.tar.gz busybox-w32-c44b18ace0b3e020e594f4d4ab2c9a1211ec90ab.tar.bz2 busybox-w32-c44b18ace0b3e020e594f4d4ab2c9a1211ec90ab.zip |
winansi: changes to puts, fputs and fwrite
Rewrite winansi_puts using winansi_fputs and putchar. There's no
need to use winansi_putchar.
Improve error return values from winansi_fputs and winansi_fwrite.
Diffstat (limited to 'win32')
-rw-r--r-- | win32/winansi.c | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/win32/winansi.c b/win32/winansi.c index e3ffa67bd..8e583e0ce 100644 --- a/win32/winansi.c +++ b/win32/winansi.c | |||
@@ -472,15 +472,7 @@ int winansi_putchar(int c) | |||
472 | 472 | ||
473 | int winansi_puts(const char *s) | 473 | int winansi_puts(const char *s) |
474 | { | 474 | { |
475 | int rv; | 475 | return (winansi_fputs(s, stdout) == EOF || putchar('\n') == EOF) ? EOF : 0; |
476 | |||
477 | if (!is_console(STDOUT_FILENO)) | ||
478 | return puts(s); | ||
479 | |||
480 | rv = ansi_emulate(s, stdout); | ||
481 | putchar('\n'); | ||
482 | |||
483 | return rv; | ||
484 | } | 476 | } |
485 | 477 | ||
486 | size_t winansi_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) | 478 | size_t winansi_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) |
@@ -501,22 +493,15 @@ size_t winansi_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) | |||
501 | rv = ansi_emulate(str, stream); | 493 | rv = ansi_emulate(str, stream); |
502 | free(str); | 494 | free(str); |
503 | 495 | ||
504 | return rv; | 496 | return rv == EOF ? 0 : nmemb; |
505 | } | 497 | } |
506 | 498 | ||
507 | int winansi_fputs(const char *str, FILE *stream) | 499 | int winansi_fputs(const char *str, FILE *stream) |
508 | { | 500 | { |
509 | int rv; | ||
510 | |||
511 | if (!is_console(fileno(stream))) | 501 | if (!is_console(fileno(stream))) |
512 | return fputs(str, stream); | 502 | return fputs(str, stream); |
513 | 503 | ||
514 | rv = ansi_emulate(str, stream); | 504 | return ansi_emulate(str, stream) == EOF ? EOF : 0; |
515 | |||
516 | if (rv >= 0) | ||
517 | return 0; | ||
518 | else | ||
519 | return EOF; | ||
520 | } | 505 | } |
521 | 506 | ||
522 | int winansi_vfprintf(FILE *stream, const char *format, va_list list) | 507 | int winansi_vfprintf(FILE *stream, const char *format, va_list list) |