Remove the simple slicing API. All slicing is now done with slice objects.

This commit is contained in:
Thomas Wouters 2007-08-30 22:57:53 +00:00
parent 582b586617
commit d2cf20eea2
32 changed files with 78 additions and 810 deletions

View file

@ -7502,28 +7502,6 @@ unicode_rjust(PyUnicodeObject *self, PyObject *args)
return (PyObject*) pad(self, width - self->length, 0, fillchar);
}
static PyObject*
unicode_slice(PyUnicodeObject *self, Py_ssize_t start, Py_ssize_t end)
{
/* standard clamping */
if (start < 0)
start = 0;
if (end < 0)
end = 0;
if (end > self->length)
end = self->length;
if (start == 0 && end == self->length && PyUnicode_CheckExact(self)) {
/* full slice, return original string */
Py_INCREF(self);
return (PyObject*) self;
}
if (start > end)
start = end;
/* copy slice */
return (PyObject*) PyUnicode_FromUnicode(self->str + start,
end - start);
}
PyObject *PyUnicode_Split(PyObject *s,
PyObject *sep,
Py_ssize_t maxsplit)
@ -8039,7 +8017,7 @@ static PySequenceMethods unicode_as_sequence = {
PyUnicode_Concat, /* sq_concat */
(ssizeargfunc) unicode_repeat, /* sq_repeat */
(ssizeargfunc) unicode_getitem, /* sq_item */
(ssizessizeargfunc) unicode_slice, /* sq_slice */
0, /* sq_slice */
0, /* sq_ass_item */
0, /* sq_ass_slice */
PyUnicode_Contains, /* sq_contains */