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