Marc-Andre Lemburg <mal@lemburg.com>:

Added code so that .isXXX() testing returns 0 for emtpy strings.
This commit is contained in:
Marc-André Lemburg 2000-06-14 09:18:32 +00:00
parent bddf502a1f
commit 60bc809d9a
2 changed files with 48 additions and 0 deletions

View file

@ -1927,6 +1927,10 @@ string_isspace(PyStringObject *self, PyObject *args)
isspace(*p))
return PyInt_FromLong(1);
/* Special case for empty strings */
if (PyString_GET_SIZE(self) == 0)
return PyInt_FromLong(0);
e = p + PyString_GET_SIZE(self);
for (; p < e; p++) {
if (!isspace(*p))
@ -1956,6 +1960,10 @@ string_isdigit(PyStringObject *self, PyObject *args)
isdigit(*p))
return PyInt_FromLong(1);
/* Special case for empty strings */
if (PyString_GET_SIZE(self) == 0)
return PyInt_FromLong(0);
e = p + PyString_GET_SIZE(self);
for (; p < e; p++) {
if (!isdigit(*p))
@ -1985,6 +1993,10 @@ string_islower(PyStringObject *self, PyObject *args)
if (PyString_GET_SIZE(self) == 1)
return PyInt_FromLong(islower(*p) != 0);
/* Special case for empty strings */
if (PyString_GET_SIZE(self) == 0)
return PyInt_FromLong(0);
e = p + PyString_GET_SIZE(self);
cased = 0;
for (; p < e; p++) {
@ -2017,6 +2029,10 @@ string_isupper(PyStringObject *self, PyObject *args)
if (PyString_GET_SIZE(self) == 1)
return PyInt_FromLong(isupper(*p) != 0);
/* Special case for empty strings */
if (PyString_GET_SIZE(self) == 0)
return PyInt_FromLong(0);
e = p + PyString_GET_SIZE(self);
cased = 0;
for (; p < e; p++) {
@ -2050,6 +2066,10 @@ string_istitle(PyStringObject *self, PyObject *args)
if (PyString_GET_SIZE(self) == 1)
return PyInt_FromLong(isupper(*p) != 0);
/* Special case for empty strings */
if (PyString_GET_SIZE(self) == 0)
return PyInt_FromLong(0);
e = p + PyString_GET_SIZE(self);
cased = 0;
previous_is_cased = 0;