diff options
author | Jim Meyering <jim@meyering.net> | 1994-01-11 05:50:45 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1994-01-11 05:50:45 +0000 |
commit | cd7ed8b3833f7fa7756b53f0cfb2697bfdf86ee2 (patch) | |
tree | e770d979102dec0f602519b6b389f066a80e85e9 /src/tac.c | |
parent | 1fc09c536b864add9e02be53f0f3bca98605aad0 (diff) | |
download | coreutils-cd7ed8b3833f7fa7756b53f0cfb2697bfdf86ee2.tar.xz |
Use fwrite insted of write.
Diffstat (limited to 'src/tac.c')
-rw-r--r-- | src/tac.c | 49 |
1 files changed, 7 insertions, 42 deletions
@@ -75,7 +75,6 @@ static char *xmalloc (); static char *xrealloc (); static void output (); static void save_stdin (); -static void xwrite (); void error (); int full_write (); @@ -251,13 +250,12 @@ main (argc, argv) errors |= tac_file (argv[optind]); } - /* Flush the output buffer. */ - output ((char *) NULL, (char *) NULL); + if (ferror (stdout) || fclose (stdout) == EOF) + error (1, errno, "write error"); if (have_read_stdin && close (0) < 0) error (1, errno, "-"); - if (close (1) < 0) - error (1, errno, "write error"); + exit (errors); } @@ -602,31 +600,11 @@ output (start, past_end) char *start; char *past_end; { - static char buffer[WRITESIZE]; - static int bytes_in_buffer = 0; - int bytes_to_add = past_end - start; - int bytes_available = WRITESIZE - bytes_in_buffer; - - if (start == 0) - { - xwrite (1, buffer, bytes_in_buffer); - bytes_in_buffer = 0; - return; - } - - /* Write out as many full buffers as possible. */ - while (bytes_to_add >= bytes_available) - { - bcopy (start, buffer + bytes_in_buffer, bytes_available); - bytes_to_add -= bytes_available; - start += bytes_available; - xwrite (1, buffer, WRITESIZE); - bytes_in_buffer = 0; - bytes_available = WRITESIZE; - } + int n_bytes; - bcopy (start, buffer + bytes_in_buffer, bytes_to_add); - bytes_in_buffer += bytes_to_add; + n_bytes = past_end - start; + + fwrite (start, 1, n_bytes, stdout); } static RETSIGTYPE @@ -636,19 +614,6 @@ cleanup () exit (1); } -static void -xwrite (desc, buffer, size) - int desc; - char *buffer; - int size; -{ - if (full_write (desc, buffer, size) < 0) - { - error (0, errno, "write error"); - cleanup (); - } -} - /* Allocate N bytes of memory dynamically, with error checking. */ static char * |