diff options
author | Guido van Rossum <guido@python.org> | 2002-08-20 17:29:29 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2002-08-20 17:29:29 (GMT) |
commit | 76afbd9aa41bf34f488a7a1e759622c7f1830cff (patch) | |
tree | e4fb84ab073d0da8a668381b45dae2cb96c92c6a /Objects | |
parent | c230b0e1f92bdc54318d58a07859bfcd7b03979a (diff) | |
download | cpython-76afbd9aa41bf34f488a7a1e759622c7f1830cff.zip cpython-76afbd9aa41bf34f488a7a1e759622c7f1830cff.tar.gz cpython-76afbd9aa41bf34f488a7a1e759622c7f1830cff.tar.bz2 |
Fix some endcase bugs in unicode rfind()/rindex() and endswith().
These were reported and fixed by Inyeol Lee in SF bug 595350. The
endswith() bug was already fixed in 2.3, but this adds some more test
cases.
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/stringobject.c | 2 | ||||
-rw-r--r-- | Objects/unicodeobject.c | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/Objects/stringobject.c b/Objects/stringobject.c index 7a48627..9f41317 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -1536,7 +1536,7 @@ string_find_internal(PyStringObject *self, PyObject *args, int dir) } #ifdef Py_USING_UNICODE else if (PyUnicode_Check(subobj)) - return PyUnicode_Find((PyObject *)self, subobj, i, last, 1); + return PyUnicode_Find((PyObject *)self, subobj, i, last, dir); #endif else if (PyObject_AsCharBuffer(subobj, &sub, &n)) return -2; diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 4ac12a0..b264936 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -2891,9 +2891,6 @@ int findstring(PyUnicodeObject *self, if (start < 0) start = 0; - if (substring->length == 0) - return start; - if (end > self->length) end = self->length; if (end < 0) @@ -2901,6 +2898,9 @@ int findstring(PyUnicodeObject *self, if (end < 0) end = 0; + if (substring->length == 0) + return (direction > 0) ? start : end; + end -= substring->length; if (direction < 0) { |