From 6938a297dafc4d1809938f5be38c4afa475e776e Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 11 Nov 1993 14:51:57 +0000 Subject: Three micro fixes to formatstring --- Objects/stringobject.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Objects/stringobject.c b/Objects/stringobject.c index 0d03a3b..d40b908 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -643,7 +643,7 @@ formatstring(format, args) int width = -1; int prec = -1; int size = 0; - int c; + int c = '\0'; int fill; object *v; char *buf; @@ -788,15 +788,13 @@ formatstring(format, args) buf = formatchar(v); if (buf == NULL) goto error; - len = strlen(buf); + len = 1; break; default: err_setstr(ValueError, "unsupported format character"); goto error; } - /* XXX There's a bug somewhere here so that - XXX '%4d'%-1 yields '- 1' ... */ if (sign) { if (*buf == '-' || *buf == '+') { sign = *buf++; @@ -820,7 +818,6 @@ formatstring(format, args) res = getstringvalue(result) + reslen - rescnt; } if (sign) { - *res++ = sign; rescnt--; if (width > len) width--; @@ -831,6 +828,8 @@ formatstring(format, args) *res++ = fill; } while (--width > len); } + if (sign) + *res++ = sign; memcpy(res, buf, len); res += len; rescnt -= len; -- cgit v0.12