Mercurial > cpython-lru_cache-weakref
diff Include/unicodeobject.h @ 32197:3a84e23b042f legacy-trunk
- SF #962502: Add two more methods for unicode type; width() and
iswide() for east asian width manipulation. (Inspired by David
Goodger, Reviewed by Martin v. Loewis)
- Move _PyUnicode_TypeRecord.flags to the end of the struct so that
no padding is added for UCS-4 builds. (Suggested by Martin v. Loewis)
| author | Hye-Shik Chang <hyeshik@gmail.com> |
|---|---|
| date | Wed, 02 Jun 2004 16:49:17 +0000 |
| parents | 504943c89193 |
| children | f46d49e2e0f0 |
line wrap: on
line diff
--- a/Include/unicodeobject.h Wed Jun 02 15:37:04 2004 +0000 +++ b/Include/unicodeobject.h Wed Jun 02 16:49:17 2004 +0000 @@ -180,6 +180,7 @@ # define PyUnicode_GetDefaultEncoding PyUnicodeUCS2_GetDefaultEncoding # define PyUnicode_GetMax PyUnicodeUCS2_GetMax # define PyUnicode_GetSize PyUnicodeUCS2_GetSize +# define PyUnicode_GetWidth PyUnicodeUCS2_GetWidth # define PyUnicode_Join PyUnicodeUCS2_Join # define PyUnicode_Replace PyUnicodeUCS2_Replace # define PyUnicode_Resize PyUnicodeUCS2_Resize @@ -199,6 +200,7 @@ # define _PyUnicode_IsLinebreak _PyUnicodeUCS2_IsLinebreak # define _PyUnicode_IsLowercase _PyUnicodeUCS2_IsLowercase # define _PyUnicode_IsNumeric _PyUnicodeUCS2_IsNumeric +# define _PyUnicode_IsWide _PyUnicodeUCS2_IsWide # define _PyUnicode_IsTitlecase _PyUnicodeUCS2_IsTitlecase # define _PyUnicode_IsUppercase _PyUnicodeUCS2_IsUppercase # define _PyUnicode_IsWhitespace _PyUnicodeUCS2_IsWhitespace @@ -252,6 +254,7 @@ # define PyUnicode_GetDefaultEncoding PyUnicodeUCS4_GetDefaultEncoding # define PyUnicode_GetMax PyUnicodeUCS4_GetMax # define PyUnicode_GetSize PyUnicodeUCS4_GetSize +# define PyUnicode_GetWidth PyUnicodeUCS4_GetWidth # define PyUnicode_Join PyUnicodeUCS4_Join # define PyUnicode_Replace PyUnicodeUCS4_Replace # define PyUnicode_Resize PyUnicodeUCS4_Resize @@ -270,6 +273,7 @@ # define _PyUnicode_IsLinebreak _PyUnicodeUCS4_IsLinebreak # define _PyUnicode_IsLowercase _PyUnicodeUCS4_IsLowercase # define _PyUnicode_IsNumeric _PyUnicodeUCS4_IsNumeric +# define _PyUnicode_IsWide _PyUnicodeUCS4_IsWide # define _PyUnicode_IsTitlecase _PyUnicodeUCS4_IsTitlecase # define _PyUnicode_IsUppercase _PyUnicodeUCS4_IsUppercase # define _PyUnicode_IsWhitespace _PyUnicodeUCS4_IsWhitespace @@ -315,6 +319,8 @@ #define Py_UNICODE_ISALPHA(ch) iswalpha(ch) +#define Py_UNICODE_ISWIDE(ch) _PyUnicode_IsWide(ch) + #else #define Py_UNICODE_ISSPACE(ch) _PyUnicode_IsWhitespace(ch) @@ -338,6 +344,8 @@ #define Py_UNICODE_ISALPHA(ch) _PyUnicode_IsAlpha(ch) +#define Py_UNICODE_ISWIDE(ch) _PyUnicode_IsWide(ch) + #endif #define Py_UNICODE_ISALNUM(ch) \ @@ -430,6 +438,12 @@ PyObject *unicode /* Unicode object */ ); +/* Get the fixed-width representation length of the Unicode object */ + +PyAPI_FUNC(int) PyUnicode_GetWidth( + PyObject *unicode /* Unicode object */ + ); + /* Get the maximum ordinal for a Unicode character. */ PyAPI_FUNC(Py_UNICODE) PyUnicode_GetMax(void); @@ -1151,6 +1165,10 @@ Py_UNICODE ch /* Unicode character */ ); +PyAPI_FUNC(int) _PyUnicode_IsWide( + Py_UNICODE ch /* Unicode character */ + ); + #ifdef __cplusplus } #endif
