]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Marc-Andre Lemburg <mal@lemburg.com>:
authorMarc-André Lemburg <mal@egenix.com>
Wed, 14 Jun 2000 09:18:32 +0000 (09:18 +0000)
committerMarc-André Lemburg <mal@egenix.com>
Wed, 14 Jun 2000 09:18:32 +0000 (09:18 +0000)
Added code so that .isXXX() testing returns 0 for emtpy strings.

Objects/stringobject.c
Objects/unicodeobject.c

index 5d754b0fbfba573a561789fe4ead74e47089779b..a254019cb8e49cc7edce2554861c1cabfe00b628 100644 (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;
index eaa381bbf9f08674878c85cec8f61e778f387a9b..bfc59dd97a1c0b28582b5e2c085bf5f459ea3c17 100644 (file)
@@ -3306,6 +3306,10 @@ unicode_islower(PyUnicodeObject *self, PyObject *args)
     if (PyUnicode_GET_SIZE(self) == 1)
        return PyInt_FromLong(Py_UNICODE_ISLOWER(*p) != 0);
 
+    /* Special case for empty strings */
+    if (PyString_GET_SIZE(self) == 0)
+       return PyInt_FromLong(0);
+
     e = p + PyUnicode_GET_SIZE(self);
     cased = 0;
     for (; p < e; p++) {
@@ -3339,6 +3343,10 @@ unicode_isupper(PyUnicodeObject *self, PyObject *args)
     if (PyUnicode_GET_SIZE(self) == 1)
        return PyInt_FromLong(Py_UNICODE_ISUPPER(*p) != 0);
 
+    /* Special case for empty strings */
+    if (PyString_GET_SIZE(self) == 0)
+       return PyInt_FromLong(0);
+
     e = p + PyUnicode_GET_SIZE(self);
     cased = 0;
     for (; p < e; p++) {
@@ -3374,6 +3382,10 @@ unicode_istitle(PyUnicodeObject *self, PyObject *args)
        return PyInt_FromLong((Py_UNICODE_ISTITLE(*p) != 0) ||
                              (Py_UNICODE_ISUPPER(*p) != 0));
 
+    /* Special case for empty strings */
+    if (PyString_GET_SIZE(self) == 0)
+       return PyInt_FromLong(0);
+
     e = p + PyUnicode_GET_SIZE(self);
     cased = 0;
     previous_is_cased = 0;
@@ -3418,6 +3430,10 @@ unicode_isspace(PyUnicodeObject *self, PyObject *args)
        Py_UNICODE_ISSPACE(*p))
        return PyInt_FromLong(1);
 
+    /* Special case for empty strings */
+    if (PyString_GET_SIZE(self) == 0)
+       return PyInt_FromLong(0);
+
     e = p + PyUnicode_GET_SIZE(self);
     for (; p < e; p++) {
        if (!Py_UNICODE_ISSPACE(*p))
@@ -3446,6 +3462,10 @@ unicode_isdecimal(PyUnicodeObject *self, PyObject *args)
        Py_UNICODE_ISDECIMAL(*p))
        return PyInt_FromLong(1);
 
+    /* Special case for empty strings */
+    if (PyString_GET_SIZE(self) == 0)
+       return PyInt_FromLong(0);
+
     e = p + PyUnicode_GET_SIZE(self);
     for (; p < e; p++) {
        if (!Py_UNICODE_ISDECIMAL(*p))
@@ -3474,6 +3494,10 @@ unicode_isdigit(PyUnicodeObject *self, PyObject *args)
        Py_UNICODE_ISDIGIT(*p))
        return PyInt_FromLong(1);
 
+    /* Special case for empty strings */
+    if (PyString_GET_SIZE(self) == 0)
+       return PyInt_FromLong(0);
+
     e = p + PyUnicode_GET_SIZE(self);
     for (; p < e; p++) {
        if (!Py_UNICODE_ISDIGIT(*p))
@@ -3502,6 +3526,10 @@ unicode_isnumeric(PyUnicodeObject *self, PyObject *args)
        Py_UNICODE_ISNUMERIC(*p))
        return PyInt_FromLong(1);
 
+    /* Special case for empty strings */
+    if (PyString_GET_SIZE(self) == 0)
+       return PyInt_FromLong(0);
+
     e = p + PyUnicode_GET_SIZE(self);
     for (; p < e; p++) {
        if (!Py_UNICODE_ISNUMERIC(*p))