[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] tail: exit without reading input if would never output
From: |
Pádraig Brady |
Subject: |
[PATCH] tail: exit without reading input if would never output |
Date: |
Tue, 26 Mar 2013 01:16:06 +0000 |
* src/tail.c (main): If -n0 or -c0 were specified without -f,
then no data would ever be output, so exit without reading input.
* tests/tail-2/tail-n0f.sh: Augment the related test with this case.
---
src/tail.c | 4 ++++
tests/tail-2/tail-n0f.sh | 5 +++++
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/tail.c b/src/tail.c
index ca851ee..cdaecdd 100644
--- a/src/tail.c
+++ b/src/tail.c
@@ -2149,6 +2149,10 @@ main (int argc, char **argv)
" indefinitely is ineffective"));
}
+ /* Don't read anything if we'll never output anything. */
+ if (! n_units && ! forever && ! from_start)
+ exit (EXIT_SUCCESS);
+
F = xnmalloc (n_files, sizeof *F);
for (i = 0; i < n_files; i++)
F[i].name = file[i];
diff --git a/tests/tail-2/tail-n0f.sh b/tests/tail-2/tail-n0f.sh
index a8d3759..1c6ba89 100755
--- a/tests/tail-2/tail-n0f.sh
+++ b/tests/tail-2/tail-n0f.sh
@@ -29,6 +29,11 @@ require_proc_pid_status_
touch empty || framework_failure_
echo anything > nonempty || framework_failure_
+# First verify that -[nc]0 without -f, exit without reading
+touch unreadable || framework_failure_
+chmod 0 unreadable || framework_failure_
+tail -c0 unreadable || fail=1
+tail -n0 unreadable || fail=1
for inotify in ---disable-inotify ''; do
for file in empty nonempty; do
--
1.7.7.6
- [PATCH] tail: exit without reading input if would never output,
Pádraig Brady <=