* 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.
pseudo file systems "bpf_fs", "btrfs_test", "nsfs", "overlayfs"
and "tracefs", and remote file system "acfs".
+ wc now ensures a single line per file for counts on standard output,
+ by quoting names containing '\n' characters; appropriate for use in a shell.
+
* Noteworthy changes in release 8.24 (2015-07-03) [stable]
printf (format_int, number_width, umaxtostr (linelength, buf));
}
if (file)
- printf (" %s", file);
+ printf (" %s", strchr (file, '\n') ? quotef (file) : file);
putchar ('\n');
}
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