14710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#ifndef Py_BYTES_CTYPE_H
24710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define Py_BYTES_CTYPE_H
34710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
44710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm/*
54710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm * The internal implementation behind PyString (bytes) and PyBytes (buffer)
64710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm * methods of the given names, they operate on ASCII byte strings.
74710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm */
84710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern PyObject* _Py_bytes_isspace(const char *cptr, Py_ssize_t len);
94710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern PyObject* _Py_bytes_isalpha(const char *cptr, Py_ssize_t len);
104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern PyObject* _Py_bytes_isalnum(const char *cptr, Py_ssize_t len);
114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern PyObject* _Py_bytes_isdigit(const char *cptr, Py_ssize_t len);
124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern PyObject* _Py_bytes_islower(const char *cptr, Py_ssize_t len);
134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern PyObject* _Py_bytes_isupper(const char *cptr, Py_ssize_t len);
144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern PyObject* _Py_bytes_istitle(const char *cptr, Py_ssize_t len);
154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm/* These store their len sized answer in the given preallocated *result arg. */
174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern void _Py_bytes_lower(char *result, const char *cptr, Py_ssize_t len);
184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern void _Py_bytes_upper(char *result, const char *cptr, Py_ssize_t len);
194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern void _Py_bytes_title(char *result, char *s, Py_ssize_t len);
204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern void _Py_bytes_capitalize(char *result, char *s, Py_ssize_t len);
214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern void _Py_bytes_swapcase(char *result, char *s, Py_ssize_t len);
224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm/* Shared __doc__ strings. */
244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern const char _Py_isspace__doc__[];
254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern const char _Py_isalpha__doc__[];
264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern const char _Py_isalnum__doc__[];
274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern const char _Py_isdigit__doc__[];
284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern const char _Py_islower__doc__[];
294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern const char _Py_isupper__doc__[];
304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern const char _Py_istitle__doc__[];
314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern const char _Py_lower__doc__[];
324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern const char _Py_upper__doc__[];
334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern const char _Py_title__doc__[];
344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern const char _Py_capitalize__doc__[];
354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmextern const char _Py_swapcase__doc__[];
364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm/* These are left in for backward compatibility and will be removed
384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm   in 2.8/3.2 */
394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define ISLOWER(c)  Py_ISLOWER(c)
404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define ISUPPER(c)  Py_ISUPPER(c)
414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define ISALPHA(c)  Py_ISALPHA(c)
424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define ISDIGIT(c)  Py_ISDIGIT(c)
434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define ISXDIGIT(c) Py_ISXDIGIT(c)
444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define ISALNUM(c)  Py_ISALNUM(c)
454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define ISSPACE(c)  Py_ISSPACE(c)
464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#undef islower
484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define islower(c) undefined_islower(c)
494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#undef isupper
504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define isupper(c) undefined_isupper(c)
514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#undef isalpha
524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define isalpha(c) undefined_isalpha(c)
534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#undef isdigit
544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define isdigit(c) undefined_isdigit(c)
554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#undef isxdigit
564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define isxdigit(c) undefined_isxdigit(c)
574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#undef isalnum
584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define isalnum(c) undefined_isalnum(c)
594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#undef isspace
604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define isspace(c) undefined_isspace(c)
614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm/* These are left in for backward compatibility and will be removed
634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm   in 2.8/3.2 */
644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define TOLOWER(c) Py_TOLOWER(c)
654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define TOUPPER(c) Py_TOUPPER(c)
664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#undef tolower
684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define tolower(c) undefined_tolower(c)
694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#undef toupper
704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define toupper(c) undefined_toupper(c)
714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm/* this is needed because some docs are shared from the .o, not static */
734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#define PyDoc_STRVAR_shared(name,str) const char name[] = PyDoc_STR(str)
744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm#endif /* !Py_BYTES_CTYPE_H */
76