This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author pitrou
Recipients mark.dickinson, pitrou, serhiy.storchaka, skrah
Date 2013-02-09.20:49:58
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1360442999.41.0.373385180849.issue17173@psf.upfronthosting.co.za>
In-reply-to
Content
Grepping through the code reveals we are still using a number of locale-dependent C library functions:

Python/mystrtoul.c:102:    while (*str && isspace(Py_CHARMASK(*str)))
Python/mystrtoul.c:141:                while (isspace(Py_CHARMASK(*str)))
Python/mystrtoul.c:269:    while (*str && isspace(Py_CHARMASK(*str)))
Python/formatter_unicode.c:404:    while (pos<end && isdigit(PyUnicode_READ_CHAR(s, pos)))
Python/ast.c:3764:    if (isalpha(quote)) {
Python/dynload_aix.c:144:        while (isdigit(Py_CHARMASK(*message[i]))) message[i]++ ;
Objects/longobject.c:2011:    while (*str != '\0' && isspace(Py_CHARMASK(*str)))
Objects/longobject.c:2255:    while (*str && isspace(Py_CHARMASK(*str)))
Modules/getaddrinfo.c:228:        if (! isdigit(*q))
Modules/_sre.c:153:#define SRE_LOC_IS_DIGIT(ch) (!((ch) & ~255) ? isdigit((ch)) : 0)
Modules/_sre.c:154:#define SRE_LOC_IS_SPACE(ch) (!((ch) & ~255) ? isspace((ch)) : 0)
Modules/_sre.c:156:#define SRE_LOC_IS_ALNUM(ch) (!((ch) & ~255) ? isalnum((ch)) : 0)
Modules/binascii.c:1138:    if (isdigit(c))
Modules/_decimal/libmpdec/io.c:153:            if (!isdigit((uchar)*s))
Modules/_decimal/libmpdec/io.c:157:                    if (!isdigit((uchar)*(s+1)))
Modules/_decimal/libmpdec/io.c:159:                              isdigit((uchar)*(s+2))))
Modules/_decimal/libmpdec/io.c:185:    while (isdigit((uchar)*s))
Modules/_decimal/libmpdec/io.c:825:    if (isdigit((uchar)*cp)) {
Modules/_decimal/libmpdec/io.c:847:        if (!isdigit((uchar)*cp)) {
Modules/_decimal/libmpdec/io.c:1087:    assert(isdigit((uchar)*dp));
Modules/_decimal/libmpdec/io.c:1089:    while (isdigit((uchar)*dp)) {
Modules/_decimal/libmpdec/io.c:1244:    if (isupper((uchar)type)) {
Modules/_struct.c:1273:        if (isspace(Py_CHARMASK(c)))
Modules/_struct.c:1338:        if (isspace(Py_CHARMASK(c)))


Include/pyctype.h has locale-agnostic counterpart (a bit faster probably, too).
History
Date User Action Args
2013-02-09 20:49:59pitrousetrecipients: + pitrou, mark.dickinson, skrah, serhiy.storchaka
2013-02-09 20:49:59pitrousetmessageid: <1360442999.41.0.373385180849.issue17173@psf.upfronthosting.co.za>
2013-02-09 20:49:59pitroulinkissue17173 messages
2013-02-09 20:49:58pitroucreate