static struct ignore_pattern *ignore_patterns;
-/* Nonzero means output nongraphic chars in file names as `?'. -q */
-
+/* Nonzero means output nongraphic chars in file names as `?'.
+ (-q, --hide-control-chars)
+ qmark_funny_chars and the quoting style (-Q, --quoting-style=WORD) are
+ independent. The algorithm is: first, obey the quoting style to get a
+ string representing the file name; then, if qmark_funny_chars is set,
+ replace all nonprintable chars in that string with `?'. It's necessary
+ to replace nonprintable chars even in quoted strings, because we don't
+ want to mess up the terminal if control chars get sent to it, and some
+ quoting methods pass through control chars as-is. */
static int qmark_funny_chars;
/* Quoting options for file and dir name output. */
if (isatty (1))
{
format = many_per_line;
+ /* See description of qmark_funny_chars, above. */
qmark_funny_chars = 1;
}
else