From 140e1d36a6b9c60a0b74691a680d47c04d9e3671 Mon Sep 17 00:00:00 2001 From: Thomas Wouters Date: Wed, 23 May 2001 13:14:24 +0000 Subject: Backport MAL's checkin 2.105: Fix for bug #417030: "print '%*s' fails for unicode string" --- Objects/stringobject.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Objects/stringobject.c b/Objects/stringobject.c index 7fccd1b..4de8b1f 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -2779,6 +2779,7 @@ PyString_Format(PyObject *format, PyObject *args) int len; char formatbuf[FORMATBUFLEN]; /* For format{float,int,char}() */ char *fmt_start = fmt; + int argidx_start = argidx; fmt++; if (*fmt == '(') { @@ -2932,6 +2933,7 @@ PyString_Format(PyObject *format, PyObject *args) case 'r': if (PyUnicode_Check(v)) { fmt = fmt_start; + argidx = argidx_start; goto unicode; } if (c == 's') @@ -3096,8 +3098,7 @@ PyString_Format(PyObject *format, PyObject *args) Py_DECREF(args); args_owned = 0; } - /* Fiddle args right (remove the first argidx-1 arguments) */ - --argidx; + /* Fiddle args right (remove the first argidx arguments) */ if (PyTuple_Check(orig_args) && argidx > 0) { PyObject *v; int n = PyTuple_GET_SIZE(orig_args) - argidx; -- cgit v0.12