diff options
author | Raymond Hettinger <python@rcn.com> | 2006-09-04 15:32:48 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2006-09-04 15:32:48 (GMT) |
commit | a0c95fa4d8f6cdc500e29a390bc7357a74b69572 (patch) | |
tree | 955e931347c407f79eaaa80c5ef91dab38ab53a2 | |
parent | bb0996ccc53c14956f3111500ccbadba98062e96 (diff) | |
download | cpython-a0c95fa4d8f6cdc500e29a390bc7357a74b69572.zip cpython-a0c95fa4d8f6cdc500e29a390bc7357a74b69572.tar.gz cpython-a0c95fa4d8f6cdc500e29a390bc7357a74b69572.tar.bz2 |
Fix endcase for str.rpartition()
-rw-r--r-- | Doc/lib/libstdtypes.tex | 4 | ||||
-rw-r--r-- | Lib/test/string_tests.py | 2 | ||||
-rw-r--r-- | Objects/stringlib/partition.h | 8 | ||||
-rw-r--r-- | Objects/stringobject.c | 4 | ||||
-rw-r--r-- | Objects/unicodeobject.c | 4 |
5 files changed, 11 insertions, 11 deletions
diff --git a/Doc/lib/libstdtypes.tex b/Doc/lib/libstdtypes.tex index f91b06c..83fa92c 100644 --- a/Doc/lib/libstdtypes.tex +++ b/Doc/lib/libstdtypes.tex @@ -771,8 +771,8 @@ The original string is returned if Split the string at the last occurrence of \var{sep}, and return a 3-tuple containing the part before the separator, the separator itself, and the part after the separator. If the separator is not -found, return a 3-tuple containing the string itself, followed by -two empty strings. +found, return a 3-tuple containing two empty strings, followed by +the string itself. \versionadded{2.5} \end{methoddesc} diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py index 73447ad..1aa68de 100644 --- a/Lib/test/string_tests.py +++ b/Lib/test/string_tests.py @@ -1069,7 +1069,7 @@ class MixinStrUnicodeUserStringTest: # from raymond's original specification S = 'http://www.python.org' self.checkequal(('http', '://', 'www.python.org'), S, 'rpartition', '://') - self.checkequal(('http://www.python.org', '', ''), S, 'rpartition', '?') + self.checkequal(('', '', 'http://www.python.org'), S, 'rpartition', '?') self.checkequal(('', 'http://', 'www.python.org'), S, 'rpartition', 'http://') self.checkequal(('http://www.python.', 'org', ''), S, 'rpartition', 'org') diff --git a/Objects/stringlib/partition.h b/Objects/stringlib/partition.h index 1486347..105ba31 100644 --- a/Objects/stringlib/partition.h +++ b/Objects/stringlib/partition.h @@ -78,12 +78,12 @@ stringlib_rpartition( } if (pos < 0) { - Py_INCREF(str_obj); - PyTuple_SET_ITEM(out, 0, (PyObject*) str_obj); Py_INCREF(STRINGLIB_EMPTY); - PyTuple_SET_ITEM(out, 1, (PyObject*) STRINGLIB_EMPTY); + PyTuple_SET_ITEM(out, 0, (PyObject*) STRINGLIB_EMPTY); Py_INCREF(STRINGLIB_EMPTY); - PyTuple_SET_ITEM(out, 2, (PyObject*) STRINGLIB_EMPTY); + PyTuple_SET_ITEM(out, 1, (PyObject*) STRINGLIB_EMPTY); + Py_INCREF(str_obj); + PyTuple_SET_ITEM(out, 2, (PyObject*) str_obj); return out; } diff --git a/Objects/stringobject.c b/Objects/stringobject.c index f3ef4b8..4c2faf4 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -1543,11 +1543,11 @@ string_partition(PyStringObject *self, PyObject *sep_obj) } PyDoc_STRVAR(rpartition__doc__, -"S.rpartition(sep) -> (head, sep, tail)\n\ +"S.rpartition(sep) -> (tail, sep, head)\n\ \n\ Searches for the separator sep in S, starting at the end of S, and returns\n\ the part before it, the separator itself, and the part after it. If the\n\ -separator is not found, returns S and two empty strings."); +separator is not found, returns two empty strings and S."); static PyObject * string_rpartition(PyStringObject *self, PyObject *sep_obj) diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 20daf66..7937281 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -6712,11 +6712,11 @@ unicode_partition(PyUnicodeObject *self, PyObject *separator) } PyDoc_STRVAR(rpartition__doc__, -"S.rpartition(sep) -> (head, sep, tail)\n\ +"S.rpartition(sep) -> (tail, sep, head)\n\ \n\ Searches for the separator sep in S, starting at the end of S, and returns\n\ the part before it, the separator itself, and the part after it. If the\n\ -separator is not found, returns S and two empty strings."); +separator is not found, returns two empty strings and S."); static PyObject* unicode_rpartition(PyUnicodeObject *self, PyObject *separator) |