diff options
author | Pádraig Brady <P@draigBrady.com> | 2016-01-09 01:38:30 +0000 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2016-01-13 11:11:36 +0000 |
commit | 3ed89ae9324026660dfefb5e482e91b8acc5262d (patch) | |
tree | 77025a5cb78df0fd5ffad2929a3023181b37c4a1 /tests | |
parent | 672663e1b0afd68a10d991527fd5021c40c99acc (diff) | |
download | coreutils-3ed89ae9324026660dfefb5e482e91b8acc5262d.tar.xz |
wc: avoid ambiguous output with '\n' in file names
* src/wc.c (write_counts): Shell escape the file name
if it contains '\n' so only a single line per file is output.
* tests/misc/wc-files0.sh: Add a test case.
* NEWS: Mention the improvement.
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/misc/wc-files0.sh | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/misc/wc-files0.sh b/tests/misc/wc-files0.sh index b6a204c1c..4562e6a4e 100755 --- a/tests/misc/wc-files0.sh +++ b/tests/misc/wc-files0.sh @@ -40,4 +40,12 @@ if test "$fail" = ''; then compare exp out || fail=1 fi +# Ensure file name containing new lines are output on a single line +nlname='1 +2' +touch "$nlname" || framework_failure_ +printf '%s\0' "$nlname" | wc --files0-from=- > out || fail=1 +printf '%s\n' "0 0 0 '1'$'\\n''2'" > exp || framework_failure_ +compare exp out || fail=1 + Exit $fail |