Condition looks reversed for single-character quoting check
See the code here, repeated below for convenience, which is part of cmOutputConverter::Shell_ArgumentNeedsQuotes()
:
/* On Windows some single character arguments need quotes. */
if (flags & Shell_Flag_IsUnix && in.size() == 1) {
char c = in[0];
if ((c == '?') || (c == '&') || (c == '^') || (c == '|') || (c == '#')) {
return true;
}
}
The comment says quotes may be needed on Windows, but the condition can only lead to quoting if on Unix. This seems contradictory, so I'm assuming either the comment or the condition is wrong.