UTF-8 quotation marks in diagnostics

Martin Sebor msebor@gmail.com
Thu Oct 22 01:27:00 GMT 2015


On 10/21/2015 03:23 PM, D. Hugh Redelmeier wrote:
> Several of us don't want UTF-8 quotation marks in diagnostics in our
> environment (Jove subshells).  We'd like a way to turn them off.  We don't
> think that they are a bad idea but they are bad in our environment.
>
> <https://gcc.gnu.org/gcc-4.0/changes.html>
>
> 	English-language diagnostic messages will now use Unicode
> 	quotation marks in UTF-8 locales. (Non-English messages
> 	already used the quotes appropriate for the language in
> 	previous releases.) If your terminal does not support UTF-8
> 	but you are using a UTF-8 locale (such locales are the default
> 	on many GNU/Linux systems) then you should set LC_CTYPE=C in
> 	the environment to disable that locale. Programs that parse
> 	diagnostics and expect plain ASCII English-language messages
> 	should set LC_ALL=C. See Markus Kuhn's explanation of Unicode
> 	quotation marks for more information.
>
> This suggests that LC_CTYPE=C would do what we want: go back to ` and
> ' instead of 342\200\230 and \342\200\231.

That would go against the usual (i.e., POSIX) expected effect
of the environment variable.  Specifically for GCC (or the c99
utility), POSIX requires LC_CTYPE to determine the locale used
to parse the input, and LC_MESSAGE to determine the locale of
diagnostic messages.  If the c99 utility on your system doesn't
honor that I would recommend opening a bug.

Martin



More information about the Gcc mailing list