Mercurial > cpython-lru_cache-weakref
diff Objects/stringobject.c @ 1282:e0464e7115ca legacy-trunk
* pythonrun.c: Print exception type+arg *after* stack trace instead of
before it.
* ceval.c, object.c: moved testbool() to object.c (now extern visible)
* stringobject.c: fix bugs in and rationalize string resize in formatstring()
* tokenizer.[ch]: fix non-working code for lines longer than BUFSIZ
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 12 May 1993 08:24:20 +0000 |
| parents | 1cabc2b6c970 |
| children | 6ee380349c84 |
line wrap: on
line diff
--- a/Objects/stringobject.c Tue May 11 18:36:54 1993 +0000 +++ b/Objects/stringobject.c Wed May 12 08:24:20 1993 +0000 @@ -491,13 +491,13 @@ err_badcall(); return NULL; } - reslen = rescnt = 100; + fmt = getstringvalue(format); + fmtcnt = getstringsize(format); + reslen = rescnt = fmtcnt + 100; result = newsizedstringobject((char *)NULL, reslen); if (result == NULL) return NULL; res = getstringvalue(result); - fmt = getstringvalue(format); - fmtcnt = getstringsize(format); if (is_tupleobject(args)) { arglen = gettuplesize(args); argidx = 0; @@ -509,12 +509,11 @@ while (--fmtcnt >= 0) { if (*fmt != '%') { if (--rescnt < 0) { - rescnt = reslen; - reslen = reslen * 2; /* Maybe less when big? */ + rescnt = fmtcnt + 100; + reslen += rescnt; if (resizestring(&result, reslen) < 0) return NULL; - res = getstringvalue(result) + rescnt; - rescnt = reslen - rescnt; + res = getstringvalue(result) + reslen - rescnt; } *res++ = *fmt++; } @@ -692,12 +691,12 @@ if (width < len) width = len; if (rescnt < width + (sign != '\0')) { - rescnt = reslen; - reslen = reslen + width + 100; + reslen -= rescnt; + rescnt = width + fmtcnt + 100; + reslen += rescnt; if (resizestring(&result, reslen) < 0) return NULL; - res = getstringvalue(result) + rescnt; - rescnt = reslen - rescnt; + res = getstringvalue(result) + reslen - rescnt; } if (sign) { *res++ = sign;
