coreutils
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]