1  #ifndef STRINGLIB_UNICODEDEFS_H
2  #define STRINGLIB_UNICODEDEFS_H
3  
4  /* this is sort of a hack.  there's at least one place (formatting
5     floats) where some stringlib code takes a different path if it's
6     compiled as unicode. */
7  #define STRINGLIB_IS_UNICODE     1
8  
9  #define STRINGLIB_OBJECT         PyUnicodeObject
10  #define STRINGLIB_CHAR           Py_UNICODE
11  #define STRINGLIB_TYPE_NAME      "unicode"
12  #define STRINGLIB_PARSE_CODE     "U"
13  #define STRINGLIB_EMPTY          unicode_empty
14  #define STRINGLIB_ISSPACE        Py_UNICODE_ISSPACE
15  #define STRINGLIB_ISLINEBREAK    BLOOM_LINEBREAK
16  #define STRINGLIB_ISDECIMAL      Py_UNICODE_ISDECIMAL
17  #define STRINGLIB_TODECIMAL      Py_UNICODE_TODECIMAL
18  #define STRINGLIB_TOUPPER        Py_UNICODE_TOUPPER
19  #define STRINGLIB_TOLOWER        Py_UNICODE_TOLOWER
20  #define STRINGLIB_FILL           Py_UNICODE_FILL
21  #define STRINGLIB_STR            PyUnicode_AS_UNICODE
22  #define STRINGLIB_LEN            PyUnicode_GET_SIZE
23  #define STRINGLIB_NEW            PyUnicode_FromUnicode
24  #define STRINGLIB_RESIZE         PyUnicode_Resize
25  #define STRINGLIB_CHECK          PyUnicode_Check
26  #define STRINGLIB_CHECK_EXACT    PyUnicode_CheckExact
27  #define STRINGLIB_GROUPING       _PyUnicode_InsertThousandsGrouping
28  
29  #if PY_VERSION_HEX < 0x03000000
30  #define STRINGLIB_TOSTR          PyObject_Unicode
31  #else
32  #define STRINGLIB_TOSTR          PyObject_Str
33  #endif
34  
35  #define STRINGLIB_WANT_CONTAINS_OBJ 1
36  
37  #endif /* !STRINGLIB_UNICODEDEFS_H */
38