summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2016-01-09 01:38:30 +0000
committerPádraig Brady <P@draigBrady.com>2016-01-13 11:11:36 +0000
commit3ed89ae9324026660dfefb5e482e91b8acc5262d (patch)
tree77025a5cb78df0fd5ffad2929a3023181b37c4a1 /tests
parent672663e1b0afd68a10d991527fd5021c40c99acc (diff)
downloadcoreutils-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-xtests/misc/wc-files0.sh8
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