[PATCH 10/19] rev: stop adding new line at the end when input does not have it

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When the rev(1) is executed twice outcome is expected to be exactly what
it was originally.  That includes not adding new line at the end of the
output.  The oneliner below demonstrates earlier issue.

$ printf "abc\n123" | rev | rev

Signed-off-by: Sami Kerola <kerolasa@xxxxxx>
---
 tests/expected/misc/rev | 4 +++-
 tests/ts/misc/rev       | 2 ++
 text-utils/rev.c        | 3 ++-
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/tests/expected/misc/rev b/tests/expected/misc/rev
index 263923f..41fdf4c 100644
--- a/tests/expected/misc/rev
+++ b/tests/expected/misc/rev
@@ -1,2 +1,4 @@
 53bbf0d98205319cee2ba589e205c68b  -
-b407c257ed73b43cb992e778f925f7a3  -
+35484965b7a2fd45a471c0d80cb9752c  -
+cba
+321
\ No newline at end of file
diff --git a/tests/ts/misc/rev b/tests/ts/misc/rev
index f36a799..035ce82 100755
--- a/tests/ts/misc/rev
+++ b/tests/ts/misc/rev
@@ -23,4 +23,6 @@ for I in {0..512}; do printf "%s " {a..z}; done | md5sum >> $TS_OUTPUT 2>&1
 for I in {0..512}; do printf "%s " {a..z}; done | \
 				    $TS_CMD_REV | md5sum >> $TS_OUTPUT 2>&1
 
+printf "abc\n123" | $TS_CMD_REV >> $TS_OUTPUT 2>&1
+
 ts_finalize
diff --git a/text-utils/rev.c b/text-utils/rev.c
index 9554506..0456c2b 100644
--- a/text-utils/rev.c
+++ b/text-utils/rev.c
@@ -159,7 +159,8 @@ int main(int argc, char *argv[])
 				if (*t != 0)
 					putwchar(*t);
 			}
-			putwchar('\n');
+			if (!feof(fp))
+				putwchar('\n');
 		}
 
 		fflush(fp);
-- 
1.8.3

--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux