use Py_CHARMASK; and don't check for neg. float to the float power here

This commit is contained in:
Guido van Rossum 1995-02-10 17:00:37 +00:00
parent 2497eada60
commit 9fa2c11613
3 changed files with 8 additions and 12 deletions

View File

@ -136,7 +136,7 @@ float_buf_repr(buf, v)
for (; *cp != '\0'; cp++) {
/* Any non-digit means it's not an integer;
this takes care of NAN and INF as well. */
if (!isdigit(*cp))
if (!isdigit(Py_CHARMASK(*cp)))
break;
}
if (*cp == '\0') {
@ -330,10 +330,6 @@ float_pow(v, w, z)
}
return newfloatobject(0.0);
}
if (iv < 0.0) {
err_setstr(ValueError, "negative float to float power");
return NULL;
}
errno = 0;
ix = pow(iv, iw);
CHECK(ix);

View File

@ -377,7 +377,7 @@ long_escan(str, pend, base)
err_setstr(ValueError, "invalid base for long literal");
return NULL;
}
while (*str != '\0' && isspace(*str))
while (*str != '\0' && isspace(Py_CHARMASK(*str)))
str++;
if (*str == '+')
++str;
@ -385,7 +385,7 @@ long_escan(str, pend, base)
++str;
sign = -1;
}
while (*str != '\0' && isspace(*str))
while (*str != '\0' && isspace(Py_CHARMASK(*str)))
str++;
if (base == 0) {
if (str[0] != '0')

View File

@ -749,10 +749,10 @@ formatstring(format, args)
if (--fmtcnt >= 0)
c = *fmt++;
}
else if (isdigit(c)) {
else if (c >= 0 && isdigit(c)) {
width = c - '0';
while (--fmtcnt >= 0) {
c = *fmt++;
c = Py_CHARMASK(*fmt++);
if (!isdigit(c))
break;
if ((width*10) / 10 != width) {
@ -782,10 +782,10 @@ formatstring(format, args)
if (--fmtcnt >= 0)
c = *fmt++;
}
else if (isdigit(c)) {
else if (c >= 0 && isdigit(c)) {
prec = c - '0';
while (--fmtcnt >= 0) {
c = *fmt++;
c = Py_CHARMASK(*fmt++);
if (!isdigit(c))
break;
if ((prec*10) / 10 != prec) {
@ -913,7 +913,7 @@ formatstring(format, args)
--rescnt;
*res++ = ' ';
}
if (dict && (argidx < arglen)) {
if (dict && (argidx < arglen) && c != '%') {
err_setstr(TypeError,
"not all arguments converted");
goto error;