17db96d56Sopenharmony_ci#ifndef STRINGLIB_STRINGDEFS_H
27db96d56Sopenharmony_ci#define STRINGLIB_STRINGDEFS_H
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_ci/* this is sort of a hack.  there's at least one place (formatting
57db96d56Sopenharmony_ci   floats) where some stringlib code takes a different path if it's
67db96d56Sopenharmony_ci   compiled as unicode. */
77db96d56Sopenharmony_ci#define STRINGLIB_IS_UNICODE     0
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ci#define FASTSEARCH fastsearch
107db96d56Sopenharmony_ci#define STRINGLIB(F) stringlib_##F
117db96d56Sopenharmony_ci#define STRINGLIB_OBJECT         PyBytesObject
127db96d56Sopenharmony_ci#define STRINGLIB_SIZEOF_CHAR    1
137db96d56Sopenharmony_ci#define STRINGLIB_CHAR           char
147db96d56Sopenharmony_ci#define STRINGLIB_TYPE_NAME      "string"
157db96d56Sopenharmony_ci#define STRINGLIB_PARSE_CODE     "S"
167db96d56Sopenharmony_ci#define STRINGLIB_ISSPACE        Py_ISSPACE
177db96d56Sopenharmony_ci#define STRINGLIB_ISLINEBREAK(x) ((x == '\n') || (x == '\r'))
187db96d56Sopenharmony_ci#define STRINGLIB_ISDECIMAL(x)   ((x >= '0') && (x <= '9'))
197db96d56Sopenharmony_ci#define STRINGLIB_TODECIMAL(x)   (STRINGLIB_ISDECIMAL(x) ? (x - '0') : -1)
207db96d56Sopenharmony_ci#define STRINGLIB_STR            PyBytes_AS_STRING
217db96d56Sopenharmony_ci#define STRINGLIB_LEN            PyBytes_GET_SIZE
227db96d56Sopenharmony_ci#define STRINGLIB_NEW            PyBytes_FromStringAndSize
237db96d56Sopenharmony_ci#define STRINGLIB_CHECK          PyBytes_Check
247db96d56Sopenharmony_ci#define STRINGLIB_CHECK_EXACT    PyBytes_CheckExact
257db96d56Sopenharmony_ci#define STRINGLIB_TOSTR          PyObject_Str
267db96d56Sopenharmony_ci#define STRINGLIB_TOASCII        PyObject_Repr
277db96d56Sopenharmony_ci#endif /* !STRINGLIB_STRINGDEFS_H */
28