/* String object implementation */
#define PY_SSIZE_T_CLEAN
+
#include "Python.h"
#include <ctype.h>
#define RSKIP_SPACE(s, i) { while (i>=0 && isspace(Py_CHARMASK(s[i]))) i--; }
#define RSKIP_NONSPACE(s, i) { while (i>=0 && !isspace(Py_CHARMASK(s[i]))) i--; }
-static PyObject *
+Py_LOCAL(PyObject *)
split_whitespace(const char *s, Py_ssize_t len, Py_ssize_t maxsplit)
{
Py_ssize_t i, j, count=0;
return NULL;
}
-static PyObject *
+Py_LOCAL(PyObject *)
split_char(const char *s, Py_ssize_t len, char ch, Py_ssize_t maxcount)
{
register Py_ssize_t i, j, count=0;
return out;
}
-static PyObject *
+Py_LOCAL(PyObject *)
rsplit_whitespace(const char *s, Py_ssize_t len, Py_ssize_t maxsplit)
{
Py_ssize_t i, j, count=0;
return NULL;
}
-static PyObject *
+Py_LOCAL(PyObject *)
rsplit_char(const char *s, Py_ssize_t len, char ch, Py_ssize_t maxcount)
{
register Py_ssize_t i, j, count=0;
return string_join((PyStringObject *)sep, x);
}
-static void
+Py_LOCAL(void)
string_adjust_indices(Py_ssize_t *start, Py_ssize_t *end, Py_ssize_t len)
{
if (*end > len)
*start = 0;
}
-static Py_ssize_t
+Py_LOCAL(Py_ssize_t)
string_find_internal(PyStringObject *self, PyObject *args, int dir)
{
const char *s = PyString_AS_STRING(self), *sub;
}
-static PyObject *
+Py_LOCAL(PyObject *)
do_xstrip(PyStringObject *self, int striptype, PyObject *sepobj)
{
char *s = PyString_AS_STRING(self);
}
-static PyObject *
+Py_LOCAL(PyObject *)
do_strip(PyStringObject *self, int striptype)
{
char *s = PyString_AS_STRING(self);
}
-static PyObject *
+Py_LOCAL(PyObject *)
do_argstrip(PyStringObject *self, int striptype, PyObject *args)
{
PyObject *sep = NULL;
/* String ops must return a string. */
/* If the object is subclass of string, create a copy */
-static PyStringObject *
+Py_LOCAL(PyStringObject *)
return_self(PyStringObject *self)
{
if (PyString_CheckExact(self)) {
PyString_GET_SIZE(self));
}
-static Py_ssize_t
+Py_LOCAL(Py_ssize_t)
countchar(char *target, int target_len, char c)
{
Py_ssize_t count=0;
return count;
}
-static Py_ssize_t
+Py_LOCAL(Py_ssize_t)
findstring(char *target, Py_ssize_t target_len,
char *pattern, Py_ssize_t pattern_len,
Py_ssize_t start,
return -1;
}
-Py_ssize_t
+Py_LOCAL(Py_ssize_t)
countstring(char *target, Py_ssize_t target_len,
char *pattern, Py_ssize_t pattern_len,
Py_ssize_t start,
/* Algorithms for difference cases of string replacement */
/* len(self)>=1, from="", len(to)>=1, maxcount>=1 */
-static PyStringObject *
+Py_LOCAL(PyStringObject *)
replace_interleave(PyStringObject *self,
PyStringObject *to,
Py_ssize_t maxcount)
/* Special case for deleting a single character */
/* len(self)>=1, len(from)==1, to="", maxcount>=1 */
-static PyStringObject *
+Py_LOCAL(PyStringObject *)
replace_delete_single_character(PyStringObject *self,
char from_c, Py_ssize_t maxcount)
{
/* len(self)>=1, len(from)>=2, to="", maxcount>=1 */
-static PyStringObject *
+Py_LOCAL(PyStringObject *)
replace_delete_substring(PyStringObject *self, PyStringObject *from,
Py_ssize_t maxcount) {
char *self_s, *from_s, *result_s;
}
/* len(self)>=1, len(from)==len(to)==1, maxcount>=1 */
-static PyStringObject *
+Py_LOCAL(PyStringObject *)
replace_single_character_in_place(PyStringObject *self,
char from_c, char to_c,
Py_ssize_t maxcount)
}
/* len(self)>=1, len(from)==len(to)>=2, maxcount>=1 */
-static PyStringObject *
+Py_LOCAL(PyStringObject *)
replace_substring_in_place(PyStringObject *self,
PyStringObject *from,
PyStringObject *to,
}
/* len(self)>=1, len(from)==1, len(to)>=2, maxcount>=1 */
-static PyStringObject *
+Py_LOCAL(PyStringObject *)
replace_single_character(PyStringObject *self,
char from_c,
PyStringObject *to,
}
/* len(self)>=1, len(from)>=2, len(to)>=2, maxcount>=1 */
-static PyStringObject *
+Py_LOCAL(PyStringObject *)
replace_substring(PyStringObject *self,
PyStringObject *from,
PyStringObject *to,
}
-static PyStringObject *
+Py_LOCAL(PyStringObject *)
replace(PyStringObject *self,
PyStringObject *from,
PyStringObject *to,
return u;
}
-static PyObject *
+Py_LOCAL(PyObject *)
pad(PyStringObject *self, Py_ssize_t left, Py_ssize_t right, char fill)
{
PyObject *u;
/* Helpers for formatstring */
-static PyObject *
+Py_LOCAL(PyObject *)
getnextarg(PyObject *args, Py_ssize_t arglen, Py_ssize_t *p_argidx)
{
Py_ssize_t argidx = *p_argidx;
#define F_ALT (1<<3)
#define F_ZERO (1<<4)
-static int
+Py_LOCAL(int)
formatfloat(char *buf, size_t buflen, int flags,
int prec, int type, PyObject *v)
{
return result;
}
-static int
+Py_LOCAL(int)
formatint(char *buf, size_t buflen, int flags,
int prec, int type, PyObject *v)
{
return (int)strlen(buf);
}
-static int
+Py_LOCAL(int)
formatchar(char *buf, size_t buflen, PyObject *v)
{
/* presume that the buffer is at least 2 characters long */