SF #989185: Drop unicode.iswide() and unicode.width() and add

unicodedata.east_asian_width().  You can still implement your own
simple width() function using it like this:
    def width(u):
        w = 0
        for c in unicodedata.normalize('NFC', u):
            cwidth = unicodedata.east_asian_width(c)
            if cwidth in ('W', 'F'): w += 2
            else: w += 1
        return w
This commit is contained in:
Hye-Shik Chang 2004-08-04 07:38:35 +00:00
parent b5047fd019
commit e9ddfbb412
15 changed files with 1641 additions and 1617 deletions

View file

@ -19,7 +19,6 @@
#define SPACE_MASK 0x20
#define TITLE_MASK 0x40
#define UPPER_MASK 0x80
#define WIDE_MASK 0x100
typedef struct {
const Py_UNICODE upper;
@ -323,15 +322,6 @@ int _PyUnicode_IsNumeric(Py_UNICODE ch)
return 1;
}
/* Returns 1 for Unicode characters having Full or Wide width, 0 otherwise */
int _PyUnicode_IsWide(Py_UNICODE ch)
{
const _PyUnicode_TypeRecord *ctype = gettyperecord(ch);
return (ctype->flags & WIDE_MASK) != 0;
}
#ifndef WANT_WCTYPE_FUNCTIONS
/* Returns 1 for Unicode characters having the bidirectional type