summaryrefslogtreecommitdiff
path: root/sys/src/cmd/python/Objects/stringlib/find.h
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2021-06-14 00:00:37 +0000
committerOri Bernstein <ori@eigenstate.org>2021-06-14 00:00:37 +0000
commita73a964e51247ed169d322c725a3a18859f109a3 (patch)
tree3f752d117274d444bda44e85609aeac1acf313f3 /sys/src/cmd/python/Objects/stringlib/find.h
parente64efe273fcb921a61bf27d33b230c4e64fcd425 (diff)
python, hg: tow outside the environment.
they've served us well, and can ride off into the sunset.
Diffstat (limited to 'sys/src/cmd/python/Objects/stringlib/find.h')
-rw-r--r--sys/src/cmd/python/Objects/stringlib/find.h113
1 files changed, 0 insertions, 113 deletions
diff --git a/sys/src/cmd/python/Objects/stringlib/find.h b/sys/src/cmd/python/Objects/stringlib/find.h
deleted file mode 100644
index 4cdbb096d..000000000
--- a/sys/src/cmd/python/Objects/stringlib/find.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* stringlib: find/index implementation */
-
-#ifndef STRINGLIB_FIND_H
-#define STRINGLIB_FIND_H
-
-#ifndef STRINGLIB_FASTSEARCH_H
-#error must include "stringlib/fastsearch.h" before including this module
-#endif
-
-Py_LOCAL_INLINE(Py_ssize_t)
-stringlib_find(const STRINGLIB_CHAR* str, Py_ssize_t str_len,
- const STRINGLIB_CHAR* sub, Py_ssize_t sub_len,
- Py_ssize_t offset)
-{
- Py_ssize_t pos;
-
- if (sub_len == 0) {
- if (str_len < 0)
- return -1;
- return offset;
- }
-
- pos = fastsearch(str, str_len, sub, sub_len, FAST_SEARCH);
-
- if (pos >= 0)
- pos += offset;
-
- return pos;
-}
-
-Py_LOCAL_INLINE(Py_ssize_t)
-stringlib_rfind(const STRINGLIB_CHAR* str, Py_ssize_t str_len,
- const STRINGLIB_CHAR* sub, Py_ssize_t sub_len,
- Py_ssize_t offset)
-{
- /* XXX - create reversefastsearch helper! */
- if (sub_len == 0) {
- if (str_len < 0)
- return -1;
- return str_len + offset;
- } else {
- Py_ssize_t j, pos = -1;
- for (j = str_len - sub_len; j >= 0; --j)
- if (STRINGLIB_CMP(str+j, sub, sub_len) == 0) {
- pos = j + offset;
- break;
- }
- return pos;
- }
-}
-
-Py_LOCAL_INLINE(Py_ssize_t)
-stringlib_find_slice(const STRINGLIB_CHAR* str, Py_ssize_t str_len,
- const STRINGLIB_CHAR* sub, Py_ssize_t sub_len,
- Py_ssize_t start, Py_ssize_t end)
-{
- if (start < 0)
- start += str_len;
- if (start < 0)
- start = 0;
- if (end > str_len)
- end = str_len;
- if (end < 0)
- end += str_len;
- if (end < 0)
- end = 0;
-
- return stringlib_find(
- str + start, end - start,
- sub, sub_len, start
- );
-}
-
-Py_LOCAL_INLINE(Py_ssize_t)
-stringlib_rfind_slice(const STRINGLIB_CHAR* str, Py_ssize_t str_len,
- const STRINGLIB_CHAR* sub, Py_ssize_t sub_len,
- Py_ssize_t start, Py_ssize_t end)
-{
- if (start < 0)
- start += str_len;
- if (start < 0)
- start = 0;
- if (end > str_len)
- end = str_len;
- if (end < 0)
- end += str_len;
- if (end < 0)
- end = 0;
-
- return stringlib_rfind(str + start, end - start, sub, sub_len, start);
-}
-
-#ifdef STRINGLIB_STR
-
-Py_LOCAL_INLINE(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;
-}
-
-#endif /* STRINGLIB_STR */
-
-#endif /* STRINGLIB_FIND_H */
-
-/*
-Local variables:
-c-basic-offset: 4
-indent-tabs-mode: nil
-End:
-*/