aboutsummaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2018-03-06 13:13:03 +0000
committerRon Yorston <rmy@pobox.com>2018-03-06 13:13:03 +0000
commitc44b18ace0b3e020e594f4d4ab2c9a1211ec90ab (patch)
tree3d052cfba60bd79e937f1bec278be6d92c384e43 /win32
parent6cc225008d9b34daf1b547630e204fdcafaa76ab (diff)
downloadbusybox-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.c21
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
473int winansi_puts(const char *s) 473int 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
486size_t winansi_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) 478size_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
507int winansi_fputs(const char *str, FILE *stream) 499int 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
522int winansi_vfprintf(FILE *stream, const char *format, va_list list) 507int winansi_vfprintf(FILE *stream, const char *format, va_list list)