diff options
author | Fredrik Lundh <fredrik@pythonware.com> | 2006-05-27 10:05:10 +0000 |
---|---|---|
committer | Fredrik Lundh <fredrik@pythonware.com> | 2006-05-27 10:05:10 +0000 |
commit | 2d23d5bf2efcea655b22e0ee4dd7cf6554a94c85 (patch) | |
tree | b9de33ef5fc6a0b57338597a14a755babad4dfa2 /Objects/stringlib/find.h | |
parent | d532ba07469d60866df60ec4a2f8afe714347d66 (diff) | |
download | cpython-git-2d23d5bf2efcea655b22e0ee4dd7cf6554a94c85.tar.gz |
needforspeed: more stringlib refactoring
Diffstat (limited to 'Objects/stringlib/find.h')
-rw-r--r-- | Objects/stringlib/find.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Objects/stringlib/find.h b/Objects/stringlib/find.h index d5394b4a31..9db633dd3a 100644 --- a/Objects/stringlib/find.h +++ b/Objects/stringlib/find.h @@ -48,6 +48,39 @@ stringlib_rfind(const STRINGLIB_CHAR* str, Py_ssize_t str_len, return pos; } +#ifdef STRINGLIB_STR + +Py_LOCAL(Py_ssize_t) +stringlib_find_obj(PyObject* str, PyObject* sub, + Py_ssize_t start, Py_ssize_t end) +{ + return stringlib_find( + STRINGLIB_STR(str) + start, end - start, + STRINGLIB_STR(sub), STRINGLIB_LEN(sub), start + ); +} + +Py_LOCAL(int) +stringlib_contains_obj(PyObject* str, PyObject* sub) +{ + return stringlib_find( + STRINGLIB_STR(str), STRINGLIB_LEN(str), + STRINGLIB_STR(sub), STRINGLIB_LEN(sub), 0 + ) != -1; +} + +Py_LOCAL(Py_ssize_t) +stringlib_rfind_obj(PyObject* str, PyObject* sub, + Py_ssize_t start, Py_ssize_t end) +{ + return stringlib_rfind( + STRINGLIB_STR(str) + start, end - start, + STRINGLIB_STR(sub), STRINGLIB_LEN(sub), start + ); +} + +#endif + #endif /* |