11a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#ifndef Py_BYTES_CTYPE_H
21a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#define Py_BYTES_CTYPE_H
31a6387e68300b6f554f4f4f044491b7034733442Christian Heimes
41a6387e68300b6f554f4f4f044491b7034733442Christian Heimes/*
51a6387e68300b6f554f4f4f044491b7034733442Christian Heimes * The internal implementation behind PyString (bytes) and PyBytes (buffer)
61a6387e68300b6f554f4f4f044491b7034733442Christian Heimes * methods of the given names, they operate on ASCII byte strings.
71a6387e68300b6f554f4f4f044491b7034733442Christian Heimes */
81a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern PyObject* _Py_bytes_isspace(const char *cptr, Py_ssize_t len);
91a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern PyObject* _Py_bytes_isalpha(const char *cptr, Py_ssize_t len);
101a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern PyObject* _Py_bytes_isalnum(const char *cptr, Py_ssize_t len);
111a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern PyObject* _Py_bytes_isdigit(const char *cptr, Py_ssize_t len);
121a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern PyObject* _Py_bytes_islower(const char *cptr, Py_ssize_t len);
131a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern PyObject* _Py_bytes_isupper(const char *cptr, Py_ssize_t len);
141a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern PyObject* _Py_bytes_istitle(const char *cptr, Py_ssize_t len);
151a6387e68300b6f554f4f4f044491b7034733442Christian Heimes
161a6387e68300b6f554f4f4f044491b7034733442Christian Heimes/* These store their len sized answer in the given preallocated *result arg. */
171a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern void _Py_bytes_lower(char *result, const char *cptr, Py_ssize_t len);
181a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern void _Py_bytes_upper(char *result, const char *cptr, Py_ssize_t len);
191a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern void _Py_bytes_title(char *result, char *s, Py_ssize_t len);
201a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern void _Py_bytes_capitalize(char *result, char *s, Py_ssize_t len);
211a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern void _Py_bytes_swapcase(char *result, char *s, Py_ssize_t len);
221a6387e68300b6f554f4f4f044491b7034733442Christian Heimes
231a6387e68300b6f554f4f4f044491b7034733442Christian Heimes/* Shared __doc__ strings. */
241a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern const char _Py_isspace__doc__[];
251a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern const char _Py_isalpha__doc__[];
261a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern const char _Py_isalnum__doc__[];
271a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern const char _Py_isdigit__doc__[];
281a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern const char _Py_islower__doc__[];
291a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern const char _Py_isupper__doc__[];
301a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern const char _Py_istitle__doc__[];
311a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern const char _Py_lower__doc__[];
321a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern const char _Py_upper__doc__[];
331a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern const char _Py_title__doc__[];
341a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern const char _Py_capitalize__doc__[];
351a6387e68300b6f554f4f4f044491b7034733442Christian Heimesextern const char _Py_swapcase__doc__[];
361a6387e68300b6f554f4f4f044491b7034733442Christian Heimes
37cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith/* These are left in for backward compatibility and will be removed
38cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith   in 2.8/3.2 */
39cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith#define ISLOWER(c)  Py_ISLOWER(c)
40cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith#define ISUPPER(c)  Py_ISUPPER(c)
41cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith#define ISALPHA(c)  Py_ISALPHA(c)
42cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith#define ISDIGIT(c)  Py_ISDIGIT(c)
43cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith#define ISXDIGIT(c) Py_ISXDIGIT(c)
44cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith#define ISALNUM(c)  Py_ISALNUM(c)
45cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith#define ISSPACE(c)  Py_ISSPACE(c)
461a6387e68300b6f554f4f4f044491b7034733442Christian Heimes
471a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#undef islower
481a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#define islower(c) undefined_islower(c)
491a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#undef isupper
501a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#define isupper(c) undefined_isupper(c)
511a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#undef isalpha
521a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#define isalpha(c) undefined_isalpha(c)
531a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#undef isdigit
541a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#define isdigit(c) undefined_isdigit(c)
551a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#undef isxdigit
561a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#define isxdigit(c) undefined_isxdigit(c)
571a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#undef isalnum
581a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#define isalnum(c) undefined_isalnum(c)
591a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#undef isspace
601a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#define isspace(c) undefined_isspace(c)
611a6387e68300b6f554f4f4f044491b7034733442Christian Heimes
62cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith/* These are left in for backward compatibility and will be removed
63cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith   in 2.8/3.2 */
64cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith#define TOLOWER(c) Py_TOLOWER(c)
65cac7af6863a997376bffe00ecf07a62c5618a5d9Eric Smith#define TOUPPER(c) Py_TOUPPER(c)
661a6387e68300b6f554f4f4f044491b7034733442Christian Heimes
671a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#undef tolower
681a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#define tolower(c) undefined_tolower(c)
691a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#undef toupper
701a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#define toupper(c) undefined_toupper(c)
711a6387e68300b6f554f4f4f044491b7034733442Christian Heimes
721a6387e68300b6f554f4f4f044491b7034733442Christian Heimes/* this is needed because some docs are shared from the .o, not static */
731a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#define PyDoc_STRVAR_shared(name,str) const char name[] = PyDoc_STR(str)
741a6387e68300b6f554f4f4f044491b7034733442Christian Heimes
751a6387e68300b6f554f4f4f044491b7034733442Christian Heimes#endif /* !Py_BYTES_CTYPE_H */
76