Home | History | Annotate | Download | only in Include
      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  */
      8 extern PyObject* _Py_bytes_isspace(const char *cptr, Py_ssize_t len);
      9 extern PyObject* _Py_bytes_isalpha(const char *cptr, Py_ssize_t len);
     10 extern PyObject* _Py_bytes_isalnum(const char *cptr, Py_ssize_t len);
     11 extern PyObject* _Py_bytes_isdigit(const char *cptr, Py_ssize_t len);
     12 extern PyObject* _Py_bytes_islower(const char *cptr, Py_ssize_t len);
     13 extern PyObject* _Py_bytes_isupper(const char *cptr, Py_ssize_t len);
     14 extern 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. */
     17 extern void _Py_bytes_lower(char *result, const char *cptr, Py_ssize_t len);
     18 extern void _Py_bytes_upper(char *result, const char *cptr, Py_ssize_t len);
     19 extern void _Py_bytes_title(char *result, char *s, Py_ssize_t len);
     20 extern void _Py_bytes_capitalize(char *result, char *s, Py_ssize_t len);
     21 extern void _Py_bytes_swapcase(char *result, char *s, Py_ssize_t len);
     22 
     23 /* Shared __doc__ strings. */
     24 extern const char _Py_isspace__doc__[];
     25 extern const char _Py_isalpha__doc__[];
     26 extern const char _Py_isalnum__doc__[];
     27 extern const char _Py_isdigit__doc__[];
     28 extern const char _Py_islower__doc__[];
     29 extern const char _Py_isupper__doc__[];
     30 extern const char _Py_istitle__doc__[];
     31 extern const char _Py_lower__doc__[];
     32 extern const char _Py_upper__doc__[];
     33 extern const char _Py_title__doc__[];
     34 extern const char _Py_capitalize__doc__[];
     35 extern const char _Py_swapcase__doc__[];
     36 
     37 /* These are left in for backward compatibility and will be removed
     38    in 2.8/3.2 */
     39 #define ISLOWER(c)  Py_ISLOWER(c)
     40 #define ISUPPER(c)  Py_ISUPPER(c)
     41 #define ISALPHA(c)  Py_ISALPHA(c)
     42 #define ISDIGIT(c)  Py_ISDIGIT(c)
     43 #define ISXDIGIT(c) Py_ISXDIGIT(c)
     44 #define ISALNUM(c)  Py_ISALNUM(c)
     45 #define ISSPACE(c)  Py_ISSPACE(c)
     46 
     47 #undef islower
     48 #define islower(c) undefined_islower(c)
     49 #undef isupper
     50 #define isupper(c) undefined_isupper(c)
     51 #undef isalpha
     52 #define isalpha(c) undefined_isalpha(c)
     53 #undef isdigit
     54 #define isdigit(c) undefined_isdigit(c)
     55 #undef isxdigit
     56 #define isxdigit(c) undefined_isxdigit(c)
     57 #undef isalnum
     58 #define isalnum(c) undefined_isalnum(c)
     59 #undef isspace
     60 #define isspace(c) undefined_isspace(c)
     61 
     62 /* These are left in for backward compatibility and will be removed
     63    in 2.8/3.2 */
     64 #define TOLOWER(c) Py_TOLOWER(c)
     65 #define TOUPPER(c) Py_TOUPPER(c)
     66 
     67 #undef tolower
     68 #define tolower(c) undefined_tolower(c)
     69 #undef toupper
     70 #define toupper(c) undefined_toupper(c)
     71 
     72 /* this is needed because some docs are shared from the .o, not static */
     73 #define PyDoc_STRVAR_shared(name,str) const char name[] = PyDoc_STR(str)
     74 
     75 #endif /* !Py_BYTES_CTYPE_H */
     76