From c44b18ace0b3e020e594f4d4ab2c9a1211ec90ab Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Tue, 6 Mar 2018 13:13:03 +0000 Subject: 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. --- win32/winansi.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) (limited to 'win32') 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) int winansi_puts(const char *s) { - int rv; - - if (!is_console(STDOUT_FILENO)) - return puts(s); - - rv = ansi_emulate(s, stdout); - putchar('\n'); - - return rv; + return (winansi_fputs(s, stdout) == EOF || putchar('\n') == EOF) ? EOF : 0; } 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) rv = ansi_emulate(str, stream); free(str); - return rv; + return rv == EOF ? 0 : nmemb; } int winansi_fputs(const char *str, FILE *stream) { - int rv; - if (!is_console(fileno(stream))) return fputs(str, stream); - rv = ansi_emulate(str, stream); - - if (rv >= 0) - return 0; - else - return EOF; + return ansi_emulate(str, stream) == EOF ? EOF : 0; } int winansi_vfprintf(FILE *stream, const char *format, va_list list) -- cgit v1.2.3-55-g6feb