Mercurial > cpython-lru_cache-weakref
diff Objects/unicodeobject.c @ 68203:87de017da4bf
Issue #10831: PyUnicode_FromFormat() supports %li, %lli and %zi formats
| author | Victor Stinner <victor.stinner@haypocalc.com> |
|---|---|
| date | Wed, 02 Mar 2011 00:04:25 +0000 |
| parents | 73a499f0eaf1 |
| children | c7a936362281 |
line wrap: on
line diff
--- a/Objects/unicodeobject.c Wed Mar 02 00:01:53 2011 +0000 +++ b/Objects/unicodeobject.c Wed Mar 02 00:04:25 2011 +0000 @@ -753,20 +753,20 @@ size_tflag = 0; if (*f == 'l') { - if (f[1] == 'd' || f[1] == 'u') { + if (f[1] == 'd' || f[1] == 'u' || f[1] == 'i') { longflag = 1; ++f; } #ifdef HAVE_LONG_LONG else if (f[1] == 'l' && - (f[2] == 'd' || f[2] == 'u')) { + (f[2] == 'd' || f[2] == 'u' || f[2] == 'i')) { longlongflag = 1; f += 2; } #endif } /* handle the size_t flag. */ - else if (*f == 'z' && (f[1] == 'd' || f[1] == 'u')) { + else if (*f == 'z' && (f[1] == 'd' || f[1] == 'u' || f[1] == 'i')) { size_tflag = 1; ++f; } @@ -1044,9 +1044,10 @@ *s++ = ordinal; break; } + case 'i': case 'd': makefmt(fmt, longflag, longlongflag, size_tflag, zeropad, - width, precision, 'd'); + width, precision, *f); if (longflag) sprintf(realbuffer, fmt, va_arg(vargs, long)); #ifdef HAVE_LONG_LONG @@ -1075,11 +1076,6 @@ sprintf(realbuffer, fmt, va_arg(vargs, unsigned int)); appendstring(realbuffer); break; - case 'i': - makefmt(fmt, 0, 0, 0, zeropad, width, precision, 'i'); - sprintf(realbuffer, fmt, va_arg(vargs, int)); - appendstring(realbuffer); - break; case 'x': makefmt(fmt, 0, 0, 0, zeropad, width, precision, 'x'); sprintf(realbuffer, fmt, va_arg(vargs, int));
