diff options
| author | Victor Stinner <victor.stinner@haypocalc.com> | 2011-03-02 00:04:25 (GMT) |
|---|---|---|
| committer | Victor Stinner <victor.stinner@haypocalc.com> | 2011-03-02 00:04:25 (GMT) |
| commit | 6d970f47134ef812774defe3169c95ee6c4c6bff (patch) | |
| tree | aa1dbd10f28c178d7eb6844066c3cb0cfcc9f453 /Objects/unicodeobject.c | |
| parent | e7faec1aa986f9214a72b2a5533dbab5864fd447 (diff) | |
| download | cpython-6d970f47134ef812774defe3169c95ee6c4c6bff.zip cpython-6d970f47134ef812774defe3169c95ee6c4c6bff.tar.gz cpython-6d970f47134ef812774defe3169c95ee6c4c6bff.tar.bz2 | |
Issue #10831: PyUnicode_FromFormat() supports %li, %lli and %zi formats
Diffstat (limited to 'Objects/unicodeobject.c')
| -rw-r--r-- | Objects/unicodeobject.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 7597a46..cd0fccf 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -753,20 +753,20 @@ parse_format_flags(const char *f, 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 @@ PyUnicode_FromFormatV(const char *format, va_list vargs) *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 @@ PyUnicode_FromFormatV(const char *format, va_list vargs) 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)); |
