From 7ceaf1d975a17d07f1704d8edf4476218148cfba Mon Sep 17 00:00:00 2001 From: Bernhard Voelker Date: Fri, 20 Feb 2015 08:10:51 +0100 Subject: tee: treat '-' operand as file name as mandated by POSIX Since v5.2.1-1247-g8dafbe5, tee(1) treated '-' as stdout while POSIX explicitly requires to treat this as a file name. Revert this change, as the interleaved output - due to sending another copy of input to stdout - is not considered to be useful. Discussed in http://lists.gnu.org/archive/html/coreutils/2015-02/msg00085.html * src/tee.c (tee_files): Remove the special handling for "-" operands. (usage): Remove the corresponding sentence. * doc/coreutils.texi (common options): Remove the "tee -" example. (tee invocation): Document that tee(1) now treats "-" as a file name. * tests/misc/tee.sh: Add a test case for "tee -". While at it, re-indent the above multi-argument processing case and extend that to 13 operands, as POSIX mandates that, too. * tests/misc/tee-dash.sh: Remove now-obsolete test. * tests/local.mk (all_tests): Remove the above test. * NEWS (Changes in behavior): Mention the change. --- doc/coreutils.texi | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'doc') diff --git a/doc/coreutils.texi b/doc/coreutils.texi index bb652aca5..8d050c2e8 100644 --- a/doc/coreutils.texi +++ b/doc/coreutils.texi @@ -752,11 +752,10 @@ operands even if they begin with @samp{-}. For example, @samp{sort -- @cindex standard input @cindex standard output A single @samp{-} operand is not really an option, though it looks like one. It -stands for standard input, or for standard output if that is clear from -the context. For example, @samp{sort -} reads from standard input, -and is equivalent to plain @samp{sort}, and @samp{tee -} writes an -extra copy of its input to standard output. Unless otherwise -specified, @samp{-} can appear as any operand that requires a file +stands for a file operand, and some tools treat it as standard input, or as +standard output if that is clear from the context. For example, @samp{sort -} +reads from standard input, and is equivalent to plain @samp{sort}. Unless +otherwise specified, a @samp{-} can appear as any operand that requires a file name. @menu @@ -13180,9 +13179,11 @@ If a file being written to does not already exist, it is created. If a file being written to already exists, the data it previously contained is overwritten unless the @option{-a} option is used. -A @var{file} of @samp{-} causes @command{tee} to send another copy of -input to standard output, but this is typically not that useful as the -copies are interleaved. +In previous versions of GNU coreutils (v5.3.0 - v8.23), a @var{file} of @samp{-} +caused @command{tee} to send another copy of input to standard output. +However, as the interleaved output was not very useful, @command{tee} now +conforms to POSIX which explicitly mandates it to treat @samp{-} as a file +with such name. The program accepts the following options. Also see @ref{Common options}. -- cgit v1.2.3-54-g00ecf