Sevenbit-strings only partially respected?
Eli Zaretskii
eliz@gnu.org
Sat Oct 9 21:05:00 GMT 2010
> From: Vladimir Prus <vladimir@codesourcery.com>
> Date: Sat, 09 Oct 2010 23:48:12 +0400
>
> > if (c < 0x20 || /* Low control chars */
> > (c >= 0x7F && c < 0xA0) || /* DEL, High controls */
> > (sevenbit_strings && c >= 0x80))
> > {/* high order bit set */
> >
> > Apparently, the second condition fires and causes 0xD0 to be quoted. Is
> > this expected behaviour?
>
> Doh. Of course 0xD0 is larger than 0xA0. The value that causes the actual
> problem is 0x83. Russian letter 'Ñ' is encoded in UTF8 as 0xD1 0x83, and
> because of the above code, strings with that letter (and some other letters)
> get messed up completely.
That `(c >= 0x7F && c < 0xA0)' condition assumes ISO-8859-n encodings
(probably was coded for 8859-1), and should not be used with anything
else.
More information about the Gdb
mailing list