summaryrefslogtreecommitdiff
path: root/src/tac.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1994-01-11 05:50:45 +0000
committerJim Meyering <jim@meyering.net>1994-01-11 05:50:45 +0000
commitcd7ed8b3833f7fa7756b53f0cfb2697bfdf86ee2 (patch)
treee770d979102dec0f602519b6b389f066a80e85e9 /src/tac.c
parent1fc09c536b864add9e02be53f0f3bca98605aad0 (diff)
downloadcoreutils-cd7ed8b3833f7fa7756b53f0cfb2697bfdf86ee2.tar.xz
Use fwrite insted of write.
Diffstat (limited to 'src/tac.c')
-rw-r--r--src/tac.c49
1 files changed, 7 insertions, 42 deletions
diff --git a/src/tac.c b/src/tac.c
index c295de444..38008acd8 100644
--- a/src/tac.c
+++ b/src/tac.c
@@ -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 *