PageRenderTime 23ms CodeModel.GetById 2ms app.highlight 15ms RepoModel.GetById 2ms app.codeStats 0ms

/Include/bytes_methods.h

http://unladen-swallow.googlecode.com/
C++ Header | 84 lines | 65 code | 12 blank | 7 comment | 0 complexity | 78af81393aa1da38e850d03b3a677cd3 MD5 | raw file
 1#ifndef Py_BYTES_CTYPE_H
 2#define Py_BYTES_CTYPE_H
 3
 4/*
 5 * The internal implementation behind PyString (bytes) and PyBytes (buffer)
 6 * 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
23/* Shared __doc__ strings. */
24extern const char _Py_isspace__doc__[];
25extern const char _Py_isalpha__doc__[];
26extern const char _Py_isalnum__doc__[];
27extern const char _Py_isdigit__doc__[];
28extern const char _Py_islower__doc__[];
29extern const char _Py_isupper__doc__[];
30extern const char _Py_istitle__doc__[];
31extern const char _Py_lower__doc__[];
32extern const char _Py_upper__doc__[];
33extern const char _Py_title__doc__[];
34extern const char _Py_capitalize__doc__[];
35extern const char _Py_swapcase__doc__[];
36
37#define FLAG_LOWER  0x01
38#define FLAG_UPPER  0x02
39#define FLAG_ALPHA  (FLAG_LOWER|FLAG_UPPER)
40#define FLAG_DIGIT  0x04
41#define FLAG_ALNUM  (FLAG_ALPHA|FLAG_DIGIT)
42#define FLAG_SPACE  0x08
43#define FLAG_XDIGIT 0x10
44
45extern const unsigned int _Py_ctype_table[256];
46
47#define ISLOWER(c) (_Py_ctype_table[Py_CHARMASK(c)] & FLAG_LOWER)
48#define ISUPPER(c) (_Py_ctype_table[Py_CHARMASK(c)] & FLAG_UPPER)
49#define ISALPHA(c) (_Py_ctype_table[Py_CHARMASK(c)] & FLAG_ALPHA)
50#define ISDIGIT(c) (_Py_ctype_table[Py_CHARMASK(c)] & FLAG_DIGIT)
51#define ISXDIGIT(c) (_Py_ctype_table[Py_CHARMASK(c)] & FLAG_XDIGIT)
52#define ISALNUM(c) (_Py_ctype_table[Py_CHARMASK(c)] & FLAG_ALNUM)
53#define ISSPACE(c) (_Py_ctype_table[Py_CHARMASK(c)] & FLAG_SPACE)
54
55#undef islower
56#define islower(c) undefined_islower(c)
57#undef isupper
58#define isupper(c) undefined_isupper(c)
59#undef isalpha
60#define isalpha(c) undefined_isalpha(c)
61#undef isdigit
62#define isdigit(c) undefined_isdigit(c)
63#undef isxdigit
64#define isxdigit(c) undefined_isxdigit(c)
65#undef isalnum
66#define isalnum(c) undefined_isalnum(c)
67#undef isspace
68#define isspace(c) undefined_isspace(c)
69
70extern const unsigned char _Py_ctype_tolower[256];
71extern const unsigned char _Py_ctype_toupper[256];
72
73#define TOLOWER(c) (_Py_ctype_tolower[Py_CHARMASK(c)])
74#define TOUPPER(c) (_Py_ctype_toupper[Py_CHARMASK(c)])
75
76#undef tolower
77#define tolower(c) undefined_tolower(c)
78#undef toupper
79#define toupper(c) undefined_toupper(c)
80
81/* this is needed because some docs are shared from the .o, not static */
82#define PyDoc_STRVAR_shared(name,str) const char name[] = PyDoc_STR(str)
83
84#endif /* !Py_BYTES_CTYPE_H */