From 09203489dd8f128542032b6713eb5979463e1742 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Mon, 22 Sep 2003 16:00:49 +0000 Subject: [PATCH] (tee): Once a write failure has occurred, don't bother writing anything more to that stream. --- src/tee.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/tee.c b/src/tee.c index a1eb4753d0..a45e4bfde3 100644 --- a/src/tee.c +++ b/src/tee.c @@ -209,10 +209,13 @@ tee (int nfiles, const char **files) /* Write to all NFILES + 1 descriptors. Standard output is the first one. */ for (i = 0; i <= nfiles; i++) - { - if (descriptors[i] != NULL) - fwrite (buffer, bytes_read, 1, descriptors[i]); - } + if (descriptors[i] + && fwrite (buffer, bytes_read, 1, descriptors[i]) != bytes_read) + { + error (0, errno, "%s", files[i]); + descriptors[i] = NULL; + ret = 1; + } } if (bytes_read == -1) @@ -223,8 +226,7 @@ tee (int nfiles, const char **files) /* Close the files, but not standard output. */ for (i = 1; i <= nfiles; i++) - if (descriptors[i] != NULL - && (ferror (descriptors[i]) || fclose (descriptors[i]) == EOF)) + if (descriptors[i] && fclose (descriptors[i]) != 0) { error (0, errno, "%s", files[i]); ret = 1; -- 2.47.2