diff options
Diffstat (limited to 'Objects/stringlib/split.h')
-rw-r--r-- | Objects/stringlib/split.h | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/Objects/stringlib/split.h b/Objects/stringlib/split.h index 31f77a7..60e7767 100644 --- a/Objects/stringlib/split.h +++ b/Objects/stringlib/split.h @@ -1,5 +1,8 @@ /* stringlib: split implementation */ +#ifndef STRINGLIB_SPLIT_H +#define STRINGLIB_SPLIT_H + #ifndef STRINGLIB_FASTSEARCH_H #error must include "stringlib/fastsearch.h" before including this module #endif @@ -51,7 +54,7 @@ #define FIX_PREALLOC_SIZE(list) Py_SIZE(list) = count Py_LOCAL_INLINE(PyObject *) -STRINGLIB(split_whitespace)(PyObject* str_obj, +stringlib_split_whitespace(PyObject* str_obj, const STRINGLIB_CHAR* str, Py_ssize_t str_len, Py_ssize_t maxcount) { @@ -99,7 +102,7 @@ STRINGLIB(split_whitespace)(PyObject* str_obj, } Py_LOCAL_INLINE(PyObject *) -STRINGLIB(split_char)(PyObject* str_obj, +stringlib_split_char(PyObject* str_obj, const STRINGLIB_CHAR* str, Py_ssize_t str_len, const STRINGLIB_CHAR ch, Py_ssize_t maxcount) @@ -142,7 +145,7 @@ STRINGLIB(split_char)(PyObject* str_obj, } Py_LOCAL_INLINE(PyObject *) -STRINGLIB(split)(PyObject* str_obj, +stringlib_split(PyObject* str_obj, const STRINGLIB_CHAR* str, Py_ssize_t str_len, const STRINGLIB_CHAR* sep, Py_ssize_t sep_len, Py_ssize_t maxcount) @@ -155,7 +158,7 @@ STRINGLIB(split)(PyObject* str_obj, return NULL; } else if (sep_len == 1) - return STRINGLIB(split_char)(str_obj, str, str_len, sep[0], maxcount); + return stringlib_split_char(str_obj, str, str_len, sep[0], maxcount); list = PyList_New(PREALLOC_SIZE(maxcount)); if (list == NULL) @@ -163,7 +166,7 @@ STRINGLIB(split)(PyObject* str_obj, i = j = 0; while (maxcount-- > 0) { - pos = FASTSEARCH(str+i, str_len-i, sep, sep_len, -1, FAST_SEARCH); + pos = fastsearch(str+i, str_len-i, sep, sep_len, -1, FAST_SEARCH); if (pos < 0) break; j = i + pos; @@ -190,7 +193,7 @@ STRINGLIB(split)(PyObject* str_obj, } Py_LOCAL_INLINE(PyObject *) -STRINGLIB(rsplit_whitespace)(PyObject* str_obj, +stringlib_rsplit_whitespace(PyObject* str_obj, const STRINGLIB_CHAR* str, Py_ssize_t str_len, Py_ssize_t maxcount) { @@ -240,7 +243,7 @@ STRINGLIB(rsplit_whitespace)(PyObject* str_obj, } Py_LOCAL_INLINE(PyObject *) -STRINGLIB(rsplit_char)(PyObject* str_obj, +stringlib_rsplit_char(PyObject* str_obj, const STRINGLIB_CHAR* str, Py_ssize_t str_len, const STRINGLIB_CHAR ch, Py_ssize_t maxcount) @@ -284,7 +287,7 @@ STRINGLIB(rsplit_char)(PyObject* str_obj, } Py_LOCAL_INLINE(PyObject *) -STRINGLIB(rsplit)(PyObject* str_obj, +stringlib_rsplit(PyObject* str_obj, const STRINGLIB_CHAR* str, Py_ssize_t str_len, const STRINGLIB_CHAR* sep, Py_ssize_t sep_len, Py_ssize_t maxcount) @@ -297,7 +300,7 @@ STRINGLIB(rsplit)(PyObject* str_obj, return NULL; } else if (sep_len == 1) - return STRINGLIB(rsplit_char)(str_obj, str, str_len, sep[0], maxcount); + return stringlib_rsplit_char(str_obj, str, str_len, sep[0], maxcount); list = PyList_New(PREALLOC_SIZE(maxcount)); if (list == NULL) @@ -305,7 +308,7 @@ STRINGLIB(rsplit)(PyObject* str_obj, j = str_len; while (maxcount-- > 0) { - pos = FASTSEARCH(str, j, sep, sep_len, -1, FAST_RSEARCH); + pos = fastsearch(str, j, sep, sep_len, -1, FAST_RSEARCH); if (pos < 0) break; SPLIT_ADD(str, pos + sep_len, j); @@ -333,7 +336,7 @@ STRINGLIB(rsplit)(PyObject* str_obj, } Py_LOCAL_INLINE(PyObject *) -STRINGLIB(splitlines)(PyObject* str_obj, +stringlib_splitlines(PyObject* str_obj, const STRINGLIB_CHAR* str, Py_ssize_t str_len, int keepends) { @@ -345,8 +348,8 @@ STRINGLIB(splitlines)(PyObject* str_obj, and the appends only done when the prealloc buffer is full. That's too much work for little gain.*/ - Py_ssize_t i; - Py_ssize_t j; + register Py_ssize_t i; + register Py_ssize_t j; PyObject *list = PyList_New(0); PyObject *sub; @@ -388,3 +391,4 @@ STRINGLIB(splitlines)(PyObject* str_obj, return NULL; } +#endif |