summaryrefslogtreecommitdiff
path: root/sys/src/cmd/python/Objects/stringlib/partition.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/partition.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/partition.h')
-rw-r--r--sys/src/cmd/python/Objects/stringlib/partition.h111
1 files changed, 0 insertions, 111 deletions
diff --git a/sys/src/cmd/python/Objects/stringlib/partition.h b/sys/src/cmd/python/Objects/stringlib/partition.h
deleted file mode 100644
index 105ba317d..000000000
--- a/sys/src/cmd/python/Objects/stringlib/partition.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* stringlib: partition implementation */
-
-#ifndef STRINGLIB_PARTITION_H
-#define STRINGLIB_PARTITION_H
-
-#ifndef STRINGLIB_FASTSEARCH_H
-#error must include "stringlib/fastsearch.h" before including this module
-#endif
-
-Py_LOCAL_INLINE(PyObject*)
-stringlib_partition(
- PyObject* str_obj, const STRINGLIB_CHAR* str, Py_ssize_t str_len,
- PyObject* sep_obj, const STRINGLIB_CHAR* sep, Py_ssize_t sep_len
- )
-{
- PyObject* out;
- Py_ssize_t pos;
-
- if (sep_len == 0) {
- PyErr_SetString(PyExc_ValueError, "empty separator");
- return NULL;
- }
-
- out = PyTuple_New(3);
- if (!out)
- return NULL;
-
- pos = fastsearch(str, str_len, sep, sep_len, FAST_SEARCH);
-
- if (pos < 0) {
- Py_INCREF(str_obj);
- PyTuple_SET_ITEM(out, 0, (PyObject*) str_obj);
- Py_INCREF(STRINGLIB_EMPTY);
- PyTuple_SET_ITEM(out, 1, (PyObject*) STRINGLIB_EMPTY);
- Py_INCREF(STRINGLIB_EMPTY);
- PyTuple_SET_ITEM(out, 2, (PyObject*) STRINGLIB_EMPTY);
- return out;
- }
-
- PyTuple_SET_ITEM(out, 0, STRINGLIB_NEW(str, pos));
- Py_INCREF(sep_obj);
- PyTuple_SET_ITEM(out, 1, sep_obj);
- pos += sep_len;
- PyTuple_SET_ITEM(out, 2, STRINGLIB_NEW(str + pos, str_len - pos));
-
- if (PyErr_Occurred()) {
- Py_DECREF(out);
- return NULL;
- }
-
- return out;
-}
-
-Py_LOCAL_INLINE(PyObject*)
-stringlib_rpartition(
- PyObject* str_obj, const STRINGLIB_CHAR* str, Py_ssize_t str_len,
- PyObject* sep_obj, const STRINGLIB_CHAR* sep, Py_ssize_t sep_len
- )
-{
- PyObject* out;
- Py_ssize_t pos, j;
-
- if (sep_len == 0) {
- PyErr_SetString(PyExc_ValueError, "empty separator");
- return NULL;
- }
-
- out = PyTuple_New(3);
- if (!out)
- return NULL;
-
- /* XXX - create reversefastsearch helper! */
- pos = -1;
- for (j = str_len - sep_len; j >= 0; --j)
- if (STRINGLIB_CMP(str+j, sep, sep_len) == 0) {
- pos = j;
- break;
- }
-
- if (pos < 0) {
- Py_INCREF(STRINGLIB_EMPTY);
- PyTuple_SET_ITEM(out, 0, (PyObject*) STRINGLIB_EMPTY);
- Py_INCREF(STRINGLIB_EMPTY);
- PyTuple_SET_ITEM(out, 1, (PyObject*) STRINGLIB_EMPTY);
- Py_INCREF(str_obj);
- PyTuple_SET_ITEM(out, 2, (PyObject*) str_obj);
- return out;
- }
-
- PyTuple_SET_ITEM(out, 0, STRINGLIB_NEW(str, pos));
- Py_INCREF(sep_obj);
- PyTuple_SET_ITEM(out, 1, sep_obj);
- pos += sep_len;
- PyTuple_SET_ITEM(out, 2, STRINGLIB_NEW(str + pos, str_len - pos));
-
- if (PyErr_Occurred()) {
- Py_DECREF(out);
- return NULL;
- }
-
- return out;
-}
-
-#endif
-
-/*
-Local variables:
-c-basic-offset: 4
-indent-tabs-mode: nil
-End:
-*/