[issue7442] decimal.py: format failure with locale specifier
Stefan Krah
report at bugs.python.org
Fri Dec 18 10:38:05 CET 2009
Stefan Krah <stefan-usenet at bytereef.org> added the comment:
Yes, it's a problem in _localemodule.c. This situation always
occurs when LC_NUMERIC is something like ISO8859-15, LC_CTYPE
is UTF-8 AND the decimal point or separator are in the range
128-255. Then mbstowcs tries to decode the character according
to LC_CTYPE and finds that the character is not valid UTF-8:
static PyObject*mbstowcs
str2uni(const char* s)
{
#ifdef HAVE_BROKEN_MBSTOWCS
size_t needed = strlen(s);
#else
size_t needed = mbstowcs(NULL, s, 0);
#endif
I can't see a portable way to fix this except:
block threads
set temporary LC_CTYPE
call mbstowcs
restore LC_CTYPE
unblock threads
I don't think this issue is important enough to do that. What
I do in cdecimal is raise an error "Invalid separator or
unsupported combination of LC_NUMERIC and LC_CTYPE".
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue7442>
_______________________________________
More information about the Python-bugs-list
mailing list