symbian-qemu-0.9.1-12/python-2.6.1/Objects/stringlib/unicodedefs.h
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     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_ISDECIMAL      Py_UNICODE_ISDECIMAL
       
    15 #define STRINGLIB_TODECIMAL      Py_UNICODE_TODECIMAL
       
    16 #define STRINGLIB_TOUPPER        Py_UNICODE_TOUPPER
       
    17 #define STRINGLIB_TOLOWER        Py_UNICODE_TOLOWER
       
    18 #define STRINGLIB_FILL           Py_UNICODE_FILL
       
    19 #define STRINGLIB_STR            PyUnicode_AS_UNICODE
       
    20 #define STRINGLIB_LEN            PyUnicode_GET_SIZE
       
    21 #define STRINGLIB_NEW            PyUnicode_FromUnicode
       
    22 #define STRINGLIB_RESIZE         PyUnicode_Resize
       
    23 #define STRINGLIB_CHECK          PyUnicode_Check
       
    24 #define STRINGLIB_GROUPING       _PyUnicode_InsertThousandsGrouping
       
    25 
       
    26 #if PY_VERSION_HEX < 0x03000000
       
    27 #define STRINGLIB_TOSTR          PyObject_Unicode
       
    28 #else
       
    29 #define STRINGLIB_TOSTR          PyObject_Str
       
    30 #endif
       
    31 
       
    32 #define STRINGLIB_WANT_CONTAINS_OBJ 1
       
    33 
       
    34 /* STRINGLIB_CMP was defined as:
       
    35 
       
    36 Py_LOCAL_INLINE(int)
       
    37 STRINGLIB_CMP(const Py_UNICODE* str, const Py_UNICODE* other, Py_ssize_t len)
       
    38 {
       
    39     if (str[0] != other[0])
       
    40         return 1;
       
    41     return memcmp((void*) str, (void*) other, len * sizeof(Py_UNICODE));
       
    42 }
       
    43 
       
    44 but unfortunately that gives a error if the function isn't used in a file that
       
    45 includes this file.  So, reluctantly convert it to a macro instead. */
       
    46 
       
    47 #define STRINGLIB_CMP(str, other, len) \
       
    48     (((str)[0] != (other)[0]) ? \
       
    49      1 : \
       
    50      memcmp((void*) (str), (void*) (other), (len) * sizeof(Py_UNICODE)))
       
    51 
       
    52 
       
    53 #endif /* !STRINGLIB_UNICODEDEFS_H */