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