summaryrefslogtreecommitdiff
path: root/Objects/stringlib/find.h
diff options
context:
space:
mode:
authorFredrik Lundh <fredrik@pythonware.com>2006-05-27 10:05:10 +0000
committerFredrik Lundh <fredrik@pythonware.com>2006-05-27 10:05:10 +0000
commit2d23d5bf2efcea655b22e0ee4dd7cf6554a94c85 (patch)
treeb9de33ef5fc6a0b57338597a14a755babad4dfa2 /Objects/stringlib/find.h
parentd532ba07469d60866df60ec4a2f8afe714347d66 (diff)
downloadcpython-git-2d23d5bf2efcea655b22e0ee4dd7cf6554a94c85.tar.gz
needforspeed: more stringlib refactoring
Diffstat (limited to 'Objects/stringlib/find.h')
-rw-r--r--Objects/stringlib/find.h33
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
/*