blob: 0938446e1f2643f8214a7893e7c0c6c729ba7c35 [file] [log] [blame]
Gregory P. Smith60d241f2007-10-16 06:31:30 +00001#ifndef Py_BYTES_CTYPE_H
2#define Py_BYTES_CTYPE_H
3
4/*
Christian Heimes9c4756e2008-05-26 13:22:05 +00005 * The internal implementation behind PyBytes (bytes) and PyByteArray (bytearray)
Gregory P. Smith60d241f2007-10-16 06:31:30 +00006 * methods of the given names, they operate on ASCII byte strings.
7 */
8extern PyObject* _Py_bytes_isspace(const char *cptr, Py_ssize_t len);
9extern PyObject* _Py_bytes_isalpha(const char *cptr, Py_ssize_t len);
10extern PyObject* _Py_bytes_isalnum(const char *cptr, Py_ssize_t len);
11extern PyObject* _Py_bytes_isdigit(const char *cptr, Py_ssize_t len);
12extern PyObject* _Py_bytes_islower(const char *cptr, Py_ssize_t len);
13extern PyObject* _Py_bytes_isupper(const char *cptr, Py_ssize_t len);
14extern PyObject* _Py_bytes_istitle(const char *cptr, Py_ssize_t len);
15
16/* These store their len sized answer in the given preallocated *result arg. */
17extern void _Py_bytes_lower(char *result, const char *cptr, Py_ssize_t len);
18extern void _Py_bytes_upper(char *result, const char *cptr, Py_ssize_t len);
19extern void _Py_bytes_title(char *result, char *s, Py_ssize_t len);
20extern void _Py_bytes_capitalize(char *result, char *s, Py_ssize_t len);
21extern void _Py_bytes_swapcase(char *result, char *s, Py_ssize_t len);
22
Georg Brandlabc38772009-04-12 15:51:51 +000023/* This one gets the raw argument list. */
24extern PyObject* _Py_bytes_maketrans(PyObject *args);
25
Gregory P. Smith60d241f2007-10-16 06:31:30 +000026/* Shared __doc__ strings. */
27extern const char _Py_isspace__doc__[];
28extern const char _Py_isalpha__doc__[];
29extern const char _Py_isalnum__doc__[];
30extern const char _Py_isdigit__doc__[];
31extern const char _Py_islower__doc__[];
32extern const char _Py_isupper__doc__[];
33extern const char _Py_istitle__doc__[];
34extern const char _Py_lower__doc__[];
35extern const char _Py_upper__doc__[];
36extern const char _Py_title__doc__[];
37extern const char _Py_capitalize__doc__[];
38extern const char _Py_swapcase__doc__[];
Georg Brandlabc38772009-04-12 15:51:51 +000039extern const char _Py_maketrans__doc__[];
Gregory P. Smith60d241f2007-10-16 06:31:30 +000040
Eric Smith6dc46f52009-04-27 20:39:49 +000041/* These are left in for backward compatibility and will be removed
42 in 2.8/3.2 */
43#define ISLOWER(c) Py_ISLOWER(c)
44#define ISUPPER(c) Py_ISUPPER(c)
45#define ISALPHA(c) Py_ISALPHA(c)
46#define ISDIGIT(c) Py_ISDIGIT(c)
47#define ISXDIGIT(c) Py_ISXDIGIT(c)
48#define ISALNUM(c) Py_ISALNUM(c)
49#define ISSPACE(c) Py_ISSPACE(c)
Gregory P. Smith60d241f2007-10-16 06:31:30 +000050
51#undef islower
52#define islower(c) undefined_islower(c)
53#undef isupper
54#define isupper(c) undefined_isupper(c)
55#undef isalpha
56#define isalpha(c) undefined_isalpha(c)
57#undef isdigit
58#define isdigit(c) undefined_isdigit(c)
59#undef isxdigit
60#define isxdigit(c) undefined_isxdigit(c)
61#undef isalnum
62#define isalnum(c) undefined_isalnum(c)
63#undef isspace
64#define isspace(c) undefined_isspace(c)
65
Eric Smith6dc46f52009-04-27 20:39:49 +000066/* These are left in for backward compatibility and will be removed
67 in 2.8/3.2 */
68#define TOLOWER(c) Py_TOLOWER(c)
69#define TOUPPER(c) Py_TOUPPER(c)
Gregory P. Smith60d241f2007-10-16 06:31:30 +000070
71#undef tolower
72#define tolower(c) undefined_tolower(c)
73#undef toupper
74#define toupper(c) undefined_toupper(c)
75
76/* this is needed because some docs are shared from the .o, not static */
77#define PyDoc_STRVAR_shared(name,str) const char name[] = PyDoc_STR(str)
78
79#endif /* !Py_BYTES_CTYPE_H */