diff options
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/longobject.c | 4 | ||||
-rw-r--r-- | Objects/stringobject.c | 16 |
2 files changed, 7 insertions, 13 deletions
diff --git a/Objects/longobject.c b/Objects/longobject.c index e4fc553..1f328dd3 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -1090,7 +1090,7 @@ long_format(PyObject *aa, int base, int addL) assert(accumbits >= basebits); do { char cdigit = (char)(accum & (base - 1)); - cdigit += (cdigit < 10) ? '0' : 'A'-10; + cdigit += (cdigit < 10) ? '0' : 'a'-10; assert(p > PyString_AS_STRING(str)); *--p = cdigit; accumbits -= basebits; @@ -1144,7 +1144,7 @@ long_format(PyObject *aa, int base, int addL) digit nextrem = (digit)(rem / base); char c = (char)(rem - nextrem * base); assert(p > PyString_AS_STRING(str)); - c += (c < 10) ? '0' : 'A'-10; + c += (c < 10) ? '0' : 'a'-10; *--p = c; rem = nextrem; --ntostore; diff --git a/Objects/stringobject.c b/Objects/stringobject.c index 176e0d2b..8a9dc52 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -3753,18 +3753,12 @@ _PyString_FormatLong(PyObject *val, int flags, int prec, int type, } /* Fix up case for hex conversions. */ - switch (type) { - case 'x': - /* Need to convert all upper case letters to lower case. */ + if (type == 'X') { + /* Need to convert all lower case letters to upper case. + and need to convert 0x to 0X (and -0x to -0X). */ for (i = 0; i < len; i++) - if (buf[i] >= 'A' && buf[i] <= 'F') - buf[i] += 'a'-'A'; - break; - case 'X': - /* Need to convert 0x to 0X (and -0x to -0X). */ - if (buf[sign + 1] == 'x') - buf[sign + 1] = 'X'; - break; + if (buf[i] >= 'a' && buf[i] <= 'x') + buf[i] -= 'a'-'A'; } *pbuf = buf; *plen = len; |