Ross Ridge writes:
>The compiler can't in general know what encoding that printf, fprintf,
>and sprintf will use to parse the string.  It's locale dependent.

Paolo Bonzini writes:
>It is undefined what happens if you run a program in a different charset
>than in the one you specified for -fexec-charset. (locale != charset).

I don't think that's true, but regardless many systems have runtime
character sets that are dependent on locale.  If GCC doesn't support this,
then GCC is broken.

>A google code search for printf.*\\x1[bB][($].*%s hints that this is
>not a problem in practice.

In practice, probably not.  I doubt there are any ASCII based systems that
actually support stateful encodings like ISO 2202-JP in their C runtimes.
There is at least one EBCDIC based systems, that fully supports stateful
encodings, but I don't know if in these encodings '%' byte values can
appear outside of the initial shift state.

                                        Ross Ridge

Reply via email to