mirror of
https://github.com/python/cpython.git
synced 2024-11-28 04:15:11 +08:00
Fix closes issue12471 - wrong TypeError message when '%i' format spec was used.
This commit is contained in:
parent
a55007a620
commit
9ebe08d2f6
@ -788,6 +788,7 @@ class UnicodeTest(string_tests.CommonTest,
|
||||
self.assertEqual('%c' % '\U00021483', '\U00021483')
|
||||
self.assertRaises(TypeError, "%c".__mod__, "aa")
|
||||
self.assertRaises(ValueError, "%.1\u1032f".__mod__, (1.0/3))
|
||||
self.assertRaises(TypeError, "%i".__mod__, "aa")
|
||||
|
||||
# formatting jobs delegated from the string implementation:
|
||||
self.assertEqual('...%(foo)s...' % {'foo':"abc"}, '...abc...')
|
||||
|
@ -9689,8 +9689,6 @@ PyObject *PyUnicode_Format(PyObject *format,
|
||||
case 'o':
|
||||
case 'x':
|
||||
case 'X':
|
||||
if (c == 'i')
|
||||
c = 'd';
|
||||
isnumok = 0;
|
||||
if (PyNumber_Check(v)) {
|
||||
PyObject *iobj=NULL;
|
||||
@ -9705,7 +9703,7 @@ PyObject *PyUnicode_Format(PyObject *format,
|
||||
if (iobj!=NULL) {
|
||||
if (PyLong_Check(iobj)) {
|
||||
isnumok = 1;
|
||||
temp = formatlong(iobj, flags, prec, c);
|
||||
temp = formatlong(iobj, flags, prec, (c == 'i'? 'd': c));
|
||||
Py_DECREF(iobj);
|
||||
if (!temp)
|
||||
goto onError;
|
||||
|
Loading…
Reference in New Issue
Block a user