mirror of
https://github.com/python/cpython.git
synced 2025-08-28 12:45:07 +00:00
Remove the simple slicing API. All slicing is now done with slice objects.
This commit is contained in:
parent
582b586617
commit
d2cf20eea2
32 changed files with 78 additions and 810 deletions
|
@ -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 */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue