From 0bbb9d7785957437182fc633b2d387cc51ee918e Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Wed, 9 Sep 2009 16:48:02 +0200 Subject: dd conv=unblock: print final newline consistently * src/dd.c (dd_copy) [C_UNBLOCK]: Always print the final newline for non-empty output, not just when output size is a multiple of cbs. * doc/coreutils.texi (dd invocation) [conv=unblock]: Mention that dd prints a newline after each output record, not just when replacing trailing spaces. Reported by Ulrich Drepper. * tests/dd/unblock: New file. Test for this. * tests/Makefile.am (TESTS): Add it. * NEWS (Bug fixes): Mention it. --- src/dd.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/dd.c b/src/dd.c index 04665f98f..76a31e981 100644 --- a/src/dd.c +++ b/src/dd.c @@ -1785,10 +1785,11 @@ dd_copy (void) output_char (space_character); } - if ((conversions_mask & C_UNBLOCK) && col == conversion_blocksize) - /* Add a final '\n' if there are exactly `conversion_blocksize' - characters in the final record. */ - output_char (newline_character); + if (col && (conversions_mask & C_UNBLOCK)) + { + /* If there was any output, add a final '\n'. */ + output_char (newline_character); + } /* Write out the last block. */ if (oc != 0) -- cgit v1.2.3-70-g09d2