* NEWS: Mention the improvement.
* src/nl.c (process_file): Exit if error outputting line.
* tests/misc/write-errors.sh: Enable the test case.
---
NEWS | 2 +-
src/nl.c | 3 +++
tests/misc/write-errors.sh | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/NEWS b/NEWS
index 55fe59503..fb3359fd4 100644
--- a/NEWS
+++ b/NEWS
@@ -43,7 +43,7 @@ GNU coreutils NEWS -*-
outline -*-
** Improvements
- 'fmt' will now exit promptly upon receiving a write error,
+ 'fmt' and 'nl' will now exit promptly upon receiving a write error,
which is significant when reading large / unbounded inputs.
'install' now uses posix_spawn() to invoke the strip program more
efficiently.
diff --git a/src/nl.c b/src/nl.c
index f243a2953..706075162 100644
--- a/src/nl.c
+++ b/src/nl.c
@@ -425,6 +425,9 @@ process_file (FILE *fp)
proc_text ();
break;
}
+
+ if (ferror (stdout))
+ write_error ();
}
}
diff --git a/tests/misc/write-errors.sh b/tests/misc/write-errors.sh
index 48f9c0f1a..77f7fc860 100755
--- a/tests/misc/write-errors.sh
+++ b/tests/misc/write-errors.sh
@@ -41,7 +41,7 @@ fold -c /dev/zero
fold --version; yes | tr -d '\\n' | fold
head -z -n-1 /dev/zero
join -a 1 -z /dev/zero /dev/null
-# TODO: nl --version; yes | nl
+nl --version; yes | nl
numfmt --version; yes 1 | numfmt
od -v /dev/zero
paste /dev/zero
--
2.51.0