Subject: Re: bug#12115: Please add tip about using tac to reverse a file byte-by-byte
From: Paul Eggert <[email-masked]>
To: Reuben Thomas <[email-masked]>
Cc: [email-masked]
Date: Fri, 01 Feb 2013 13:36:00 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

On 02/01/13 11:14, Reuben Thomas wrote:

> Given how long it took how many experts to come up with a valid
> incantation, it seems to me it *is* a useful documentation example.

Sure, but the valid incantation is a bit confusing, and it's not
documented correctly (it reverses characters, not bytes).
As far as I know there's no portable way to use 'tac' to
reverse a file byte-by-byte.

I installed this:

From dad0a3c743464664ed6a7ae8445cb58b8326db6d Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email-masked]>
Date: Fri, 1 Feb 2013 13:32:48 -0800
Subject: [PATCH] doc: say how to tac char-by-char

This fixes Bug#12115, reported by Reuben Thomas.
* doc/coreutils.texi (tac invocation): Document how to reverse a
file character by character.  Break out MS-DOS into a separate
section, like 'cat' does.
---
 doc/coreutils.texi | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index eac8d52..e29af8b 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -1613,10 +1613,7 @@ precedes in the file.
 @itemx --regex
 @opindex -r
 @opindex --regex
-Treat the separator string as a regular expression.  Users of @command{tac}
-on MS-DOS/MS-Windows should note that, since @command{tac} reads files in
-binary mode, each line of a text file might end with a CR/LF pair
-instead of the Unix-style LF.
+Treat the separator string as a regular expression.
 
 @item -s @var{separator}
 @itemx --separator=@var{separator}
@@ -1626,8 +1623,18 @@ Use @var{separator} as the record separator, instead of newline.
 
 @end table
 
+On systems like MS-DOS that distinguish between text and binary files,
+@command{tac} reads and writes in binary mode.
+
 @exitstatus
 
+Example:
+
+@example
+# Reverse a file character by character.
+tac -r -s 'x\|[^x]'
+@end example
+
 
 @node nl invocation
 @section @command{nl}: Number lines and write files
-- 
1.7.11.7