summaryrefslogtreecommitdiff
path: root/Objects/stringobject.c
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2002-11-12 23:01:12 +0000
committerNeal Norwitz <nnorwitz@gmail.com>2002-11-12 23:01:12 +0000
commitf29ba790cd6a8d0995d652faba626e775a5e6f7c (patch)
tree917d6a467aa31311fa6aa8d96cf8dab7346b6be0 /Objects/stringobject.c
parent07a431ede3d12317d2725a8c2b68b75823b5ffb6 (diff)
downloadcpython-f29ba790cd6a8d0995d652faba626e775a5e6f7c.tar.gz
Fix SF # 635969, No error "not all arguments converted"
When mwh added extended slicing, strings and unicode became mappings. Thus, dict was set which prevented an error when doing: newstr = 'format without a percent' % string_value This fix raises an exception again when there are no formats and % with a string value.
Diffstat (limited to 'Objects/stringobject.c')
-rw-r--r--Objects/stringobject.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 35b4b47e98..bf8bad53a8 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -3622,7 +3622,8 @@ PyString_Format(PyObject *format, PyObject *args)
arglen = -1;
argidx = -2;
}
- if (args->ob_type->tp_as_mapping && !PyTuple_Check(args))
+ if (args->ob_type->tp_as_mapping && !PyTuple_Check(args) &&
+ !PyObject_TypeCheck(args, &PyBaseString_Type))
dict = args;
while (--fmtcnt >= 0) {
if (*fmt != '%') {