summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2006-09-04 15:32:48 (GMT)
committerRaymond Hettinger <python@rcn.com>2006-09-04 15:32:48 (GMT)
commita0c95fa4d8f6cdc500e29a390bc7357a74b69572 (patch)
tree955e931347c407f79eaaa80c5ef91dab38ab53a2
parentbb0996ccc53c14956f3111500ccbadba98062e96 (diff)
downloadcpython-a0c95fa4d8f6cdc500e29a390bc7357a74b69572.zip
cpython-a0c95fa4d8f6cdc500e29a390bc7357a74b69572.tar.gz
cpython-a0c95fa4d8f6cdc500e29a390bc7357a74b69572.tar.bz2
Fix endcase for str.rpartition()
-rw-r--r--Doc/lib/libstdtypes.tex4
-rw-r--r--Lib/test/string_tests.py2
-rw-r--r--Objects/stringlib/partition.h8
-rw-r--r--Objects/stringobject.c4
-rw-r--r--Objects/unicodeobject.c4
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)