svn+ssh://pythondev@svn.python.org/python/trunk ........ r77461 | antoine.pitrou | 2010-01-13 08:55:48 +0100 (mer., 13 janv. 2010) | 5 lines Issue #7622: Improve the split(), rsplit(), splitlines() and replace() methods of bytes, bytearray and unicode objects by using a common implementation based on stringlib's fast search. Patch by Florent Xicluna. ........
110 lines
2.6 KiB
C
110 lines
2.6 KiB
C
/* NOTE: this API is -ONLY- for use with single byte character strings. */
|
|
/* Do not use it with Unicode. */
|
|
|
|
#include "bytes_methods.h"
|
|
|
|
static PyObject*
|
|
stringlib_isspace(PyObject *self)
|
|
{
|
|
return _Py_bytes_isspace(STRINGLIB_STR(self), STRINGLIB_LEN(self));
|
|
}
|
|
|
|
static PyObject*
|
|
stringlib_isalpha(PyObject *self)
|
|
{
|
|
return _Py_bytes_isalpha(STRINGLIB_STR(self), STRINGLIB_LEN(self));
|
|
}
|
|
|
|
static PyObject*
|
|
stringlib_isalnum(PyObject *self)
|
|
{
|
|
return _Py_bytes_isalnum(STRINGLIB_STR(self), STRINGLIB_LEN(self));
|
|
}
|
|
|
|
static PyObject*
|
|
stringlib_isdigit(PyObject *self)
|
|
{
|
|
return _Py_bytes_isdigit(STRINGLIB_STR(self), STRINGLIB_LEN(self));
|
|
}
|
|
|
|
static PyObject*
|
|
stringlib_islower(PyObject *self)
|
|
{
|
|
return _Py_bytes_islower(STRINGLIB_STR(self), STRINGLIB_LEN(self));
|
|
}
|
|
|
|
static PyObject*
|
|
stringlib_isupper(PyObject *self)
|
|
{
|
|
return _Py_bytes_isupper(STRINGLIB_STR(self), STRINGLIB_LEN(self));
|
|
}
|
|
|
|
static PyObject*
|
|
stringlib_istitle(PyObject *self)
|
|
{
|
|
return _Py_bytes_istitle(STRINGLIB_STR(self), STRINGLIB_LEN(self));
|
|
}
|
|
|
|
|
|
/* functions that return a new object partially translated by ctype funcs: */
|
|
|
|
static PyObject*
|
|
stringlib_lower(PyObject *self)
|
|
{
|
|
PyObject* newobj;
|
|
newobj = STRINGLIB_NEW(NULL, STRINGLIB_LEN(self));
|
|
if (!newobj)
|
|
return NULL;
|
|
_Py_bytes_lower(STRINGLIB_STR(newobj), STRINGLIB_STR(self),
|
|
STRINGLIB_LEN(self));
|
|
return newobj;
|
|
}
|
|
|
|
static PyObject*
|
|
stringlib_upper(PyObject *self)
|
|
{
|
|
PyObject* newobj;
|
|
newobj = STRINGLIB_NEW(NULL, STRINGLIB_LEN(self));
|
|
if (!newobj)
|
|
return NULL;
|
|
_Py_bytes_upper(STRINGLIB_STR(newobj), STRINGLIB_STR(self),
|
|
STRINGLIB_LEN(self));
|
|
return newobj;
|
|
}
|
|
|
|
static PyObject*
|
|
stringlib_title(PyObject *self)
|
|
{
|
|
PyObject* newobj;
|
|
newobj = STRINGLIB_NEW(NULL, STRINGLIB_LEN(self));
|
|
if (!newobj)
|
|
return NULL;
|
|
_Py_bytes_title(STRINGLIB_STR(newobj), STRINGLIB_STR(self),
|
|
STRINGLIB_LEN(self));
|
|
return newobj;
|
|
}
|
|
|
|
static PyObject*
|
|
stringlib_capitalize(PyObject *self)
|
|
{
|
|
PyObject* newobj;
|
|
newobj = STRINGLIB_NEW(NULL, STRINGLIB_LEN(self));
|
|
if (!newobj)
|
|
return NULL;
|
|
_Py_bytes_capitalize(STRINGLIB_STR(newobj), STRINGLIB_STR(self),
|
|
STRINGLIB_LEN(self));
|
|
return newobj;
|
|
}
|
|
|
|
static PyObject*
|
|
stringlib_swapcase(PyObject *self)
|
|
{
|
|
PyObject* newobj;
|
|
newobj = STRINGLIB_NEW(NULL, STRINGLIB_LEN(self));
|
|
if (!newobj)
|
|
return NULL;
|
|
_Py_bytes_swapcase(STRINGLIB_STR(newobj), STRINGLIB_STR(self),
|
|
STRINGLIB_LEN(self));
|
|
return newobj;
|
|
}
|