Kaydet (Commit) 9ebe08d2 authored tarafından Senthil Kumaran's avatar Senthil Kumaran

Fix closes issue12471 - wrong TypeError message when '%i' format spec was used.

üst a55007a6
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment