diff options
author | Georg Brandl <georg@python.org> | 2008-07-04 15:55:02 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2008-07-04 15:55:02 (GMT) |
commit | d52429fb4957e0acdf36540705bd9ea859070fc5 (patch) | |
tree | ee88a6e46bf98c7cea73c8268d063e5a0d80b008 /Objects | |
parent | 6e7196fb933f24abc915e9c20b9fa676a04b82c5 (diff) | |
download | cpython-d52429fb4957e0acdf36540705bd9ea859070fc5.zip cpython-d52429fb4957e0acdf36540705bd9ea859070fc5.tar.gz cpython-d52429fb4957e0acdf36540705bd9ea859070fc5.tar.bz2 |
Issue #3282: str.isprintable() should return False for undefined Unicode characters.
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/unicodectype.c | 4 | ||||
-rw-r--r-- | Objects/unicodetype_db.h | 289 |
2 files changed, 145 insertions, 148 deletions
diff --git a/Objects/unicodectype.c b/Objects/unicodectype.c index 1a2bb69..82ef886 100644 --- a/Objects/unicodectype.c +++ b/Objects/unicodectype.c @@ -21,7 +21,7 @@ #define UPPER_MASK 0x80 #define XID_START_MASK 0x100 #define XID_CONTINUE_MASK 0x200 -#define NONPRINTABLE_MASK 0x400 +#define PRINTABLE_MASK 0x400 typedef struct { const Py_UNICODE upper; @@ -693,7 +693,7 @@ int _PyUnicode_IsPrintable(Py_UNICODE ch) { const _PyUnicode_TypeRecord *ctype = gettyperecord(ch); - return (ctype->flags & NONPRINTABLE_MASK) == 0; + return (ctype->flags & PRINTABLE_MASK) != 0; } #ifndef WANT_WCTYPE_FUNCTIONS diff --git a/Objects/unicodetype_db.h b/Objects/unicodetype_db.h index bccb9ab..20c5784 100644 --- a/Objects/unicodetype_db.h +++ b/Objects/unicodetype_db.h @@ -3,150 +3,150 @@ /* a list of unique character type descriptors */ const _PyUnicode_TypeRecord _PyUnicode_TypeRecords[] = { {0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 1024}, - {0, 0, 0, 0, 0, 1056}, - {0, 0, 0, 0, 0, 1072}, {0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 518}, - {0, 0, 0, 1, 1, 518}, - {0, 0, 0, 2, 2, 518}, - {0, 0, 0, 3, 3, 518}, - {0, 0, 0, 4, 4, 518}, - {0, 0, 0, 5, 5, 518}, - {0, 0, 0, 6, 6, 518}, - {0, 0, 0, 7, 7, 518}, - {0, 0, 0, 8, 8, 518}, - {0, 0, 0, 9, 9, 518}, - {0, 32, 0, 0, 0, 897}, - {0, 0, 0, 0, 0, 512}, - {65504, 0, 65504, 0, 0, 777}, - {0, 0, 0, 0, 0, 777}, - {0, 0, 0, 0, 2, 4}, - {0, 0, 0, 0, 3, 4}, - {743, 0, 743, 0, 0, 777}, - {0, 0, 0, 0, 1, 4}, - {121, 0, 121, 0, 0, 777}, - {0, 1, 0, 0, 0, 897}, - {65535, 0, 65535, 0, 0, 777}, - {0, 65337, 0, 0, 0, 897}, - {65304, 0, 65304, 0, 0, 777}, - {0, 65415, 0, 0, 0, 897}, - {65236, 0, 65236, 0, 0, 777}, - {0, 210, 0, 0, 0, 897}, - {0, 206, 0, 0, 0, 897}, - {0, 205, 0, 0, 0, 897}, - {0, 79, 0, 0, 0, 897}, - {0, 202, 0, 0, 0, 897}, - {0, 203, 0, 0, 0, 897}, - {0, 207, 0, 0, 0, 897}, - {97, 0, 97, 0, 0, 777}, - {0, 211, 0, 0, 0, 897}, - {0, 209, 0, 0, 0, 897}, - {163, 0, 163, 0, 0, 777}, - {0, 213, 0, 0, 0, 897}, - {130, 0, 130, 0, 0, 777}, - {0, 214, 0, 0, 0, 897}, - {0, 218, 0, 0, 0, 897}, - {0, 217, 0, 0, 0, 897}, - {0, 219, 0, 0, 0, 897}, - {0, 0, 0, 0, 0, 769}, - {56, 0, 56, 0, 0, 777}, - {0, 2, 1, 0, 0, 897}, - {65535, 1, 0, 0, 0, 833}, - {65534, 0, 65535, 0, 0, 777}, - {65457, 0, 65457, 0, 0, 777}, - {0, 65439, 0, 0, 0, 897}, - {0, 65480, 0, 0, 0, 897}, - {0, 65406, 0, 0, 0, 897}, - {0, 0, 0, 0, 0, 897}, - {0, 65373, 0, 0, 0, 897}, - {0, 83, 0, 0, 0, 897}, - {65326, 0, 65326, 0, 0, 777}, - {65330, 0, 65330, 0, 0, 777}, - {65331, 0, 65331, 0, 0, 777}, - {65334, 0, 65334, 0, 0, 777}, - {65333, 0, 65333, 0, 0, 777}, - {65329, 0, 65329, 0, 0, 777}, - {65327, 0, 65327, 0, 0, 777}, - {65325, 0, 65325, 0, 0, 777}, - {65323, 0, 65323, 0, 0, 777}, - {65322, 0, 65322, 0, 0, 777}, - {65318, 0, 65318, 0, 0, 777}, - {65319, 0, 65319, 0, 0, 777}, - {65317, 0, 65317, 0, 0, 777}, - {65453, 0, 65453, 0, 0, 777}, - {84, 0, 84, 0, 0, 512}, - {0, 0, 0, 0, 0, 1}, - {0, 38, 0, 0, 0, 897}, - {0, 37, 0, 0, 0, 897}, - {0, 64, 0, 0, 0, 897}, - {0, 63, 0, 0, 0, 897}, - {65498, 0, 65498, 0, 0, 777}, - {65499, 0, 65499, 0, 0, 777}, - {65505, 0, 65505, 0, 0, 777}, - {65472, 0, 65472, 0, 0, 777}, - {65473, 0, 65473, 0, 0, 777}, - {65474, 0, 65474, 0, 0, 777}, - {65479, 0, 65479, 0, 0, 777}, - {65489, 0, 65489, 0, 0, 777}, - {65482, 0, 65482, 0, 0, 777}, - {65450, 0, 65450, 0, 0, 777}, - {65456, 0, 65456, 0, 0, 777}, - {7, 0, 7, 0, 0, 777}, - {0, 65476, 0, 0, 0, 897}, - {65440, 0, 65440, 0, 0, 777}, - {0, 65529, 0, 0, 0, 897}, - {0, 80, 0, 0, 0, 897}, - {0, 48, 0, 0, 0, 897}, - {65488, 0, 65488, 0, 0, 777}, - {0, 0, 0, 0, 0, 513}, - {0, 7264, 0, 0, 0, 897}, - {0, 0, 0, 0, 1, 516}, - {0, 0, 0, 0, 2, 516}, - {0, 0, 0, 0, 3, 516}, - {0, 0, 0, 0, 4, 516}, - {0, 0, 0, 0, 5, 516}, - {0, 0, 0, 0, 6, 516}, - {0, 0, 0, 0, 7, 516}, - {0, 0, 0, 0, 8, 516}, - {0, 0, 0, 0, 9, 516}, - {0, 0, 0, 0, 0, 768}, - {65477, 0, 65477, 0, 0, 777}, - {8, 0, 8, 0, 0, 777}, - {0, 65528, 0, 0, 0, 897}, - {74, 0, 74, 0, 0, 777}, - {86, 0, 86, 0, 0, 777}, - {100, 0, 100, 0, 0, 777}, - {128, 0, 128, 0, 0, 777}, - {112, 0, 112, 0, 0, 777}, - {126, 0, 126, 0, 0, 777}, - {0, 65528, 0, 0, 0, 833}, - {9, 0, 9, 0, 0, 777}, - {0, 65462, 0, 0, 0, 897}, - {0, 65527, 0, 0, 0, 833}, - {58331, 0, 58331, 0, 0, 777}, - {0, 65450, 0, 0, 0, 897}, - {0, 65436, 0, 0, 0, 897}, - {0, 65424, 0, 0, 0, 897}, - {0, 65408, 0, 0, 0, 897}, - {0, 65410, 0, 0, 0, 897}, - {0, 0, 0, 0, 0, 4}, - {0, 0, 0, 0, 4, 4}, - {0, 0, 0, 0, 5, 4}, - {0, 0, 0, 0, 6, 4}, - {0, 0, 0, 0, 7, 4}, - {0, 0, 0, 0, 8, 4}, - {0, 0, 0, 0, 9, 4}, - {0, 58019, 0, 0, 0, 897}, - {0, 57153, 0, 0, 0, 897}, - {0, 57274, 0, 0, 0, 897}, - {0, 16, 0, 0, 0, 768}, - {65520, 0, 65520, 0, 0, 768}, - {0, 26, 0, 0, 0, 0}, - {65510, 0, 65510, 0, 0, 0}, - {58272, 0, 58272, 0, 0, 777}, - {0, 40, 0, 0, 0, 897}, - {65496, 0, 65496, 0, 0, 777}, + {0, 0, 0, 0, 0, 32}, + {0, 0, 0, 0, 0, 48}, + {0, 0, 0, 0, 0, 1024}, + {0, 0, 0, 0, 0, 1542}, + {0, 0, 0, 1, 1, 1542}, + {0, 0, 0, 2, 2, 1542}, + {0, 0, 0, 3, 3, 1542}, + {0, 0, 0, 4, 4, 1542}, + {0, 0, 0, 5, 5, 1542}, + {0, 0, 0, 6, 6, 1542}, + {0, 0, 0, 7, 7, 1542}, + {0, 0, 0, 8, 8, 1542}, + {0, 0, 0, 9, 9, 1542}, + {0, 32, 0, 0, 0, 1921}, + {0, 0, 0, 0, 0, 1536}, + {65504, 0, 65504, 0, 0, 1801}, + {0, 0, 0, 0, 0, 1801}, + {0, 0, 0, 0, 2, 1028}, + {0, 0, 0, 0, 3, 1028}, + {743, 0, 743, 0, 0, 1801}, + {0, 0, 0, 0, 1, 1028}, + {121, 0, 121, 0, 0, 1801}, + {0, 1, 0, 0, 0, 1921}, + {65535, 0, 65535, 0, 0, 1801}, + {0, 65337, 0, 0, 0, 1921}, + {65304, 0, 65304, 0, 0, 1801}, + {0, 65415, 0, 0, 0, 1921}, + {65236, 0, 65236, 0, 0, 1801}, + {0, 210, 0, 0, 0, 1921}, + {0, 206, 0, 0, 0, 1921}, + {0, 205, 0, 0, 0, 1921}, + {0, 79, 0, 0, 0, 1921}, + {0, 202, 0, 0, 0, 1921}, + {0, 203, 0, 0, 0, 1921}, + {0, 207, 0, 0, 0, 1921}, + {97, 0, 97, 0, 0, 1801}, + {0, 211, 0, 0, 0, 1921}, + {0, 209, 0, 0, 0, 1921}, + {163, 0, 163, 0, 0, 1801}, + {0, 213, 0, 0, 0, 1921}, + {130, 0, 130, 0, 0, 1801}, + {0, 214, 0, 0, 0, 1921}, + {0, 218, 0, 0, 0, 1921}, + {0, 217, 0, 0, 0, 1921}, + {0, 219, 0, 0, 0, 1921}, + {0, 0, 0, 0, 0, 1793}, + {56, 0, 56, 0, 0, 1801}, + {0, 2, 1, 0, 0, 1921}, + {65535, 1, 0, 0, 0, 1857}, + {65534, 0, 65535, 0, 0, 1801}, + {65457, 0, 65457, 0, 0, 1801}, + {0, 65439, 0, 0, 0, 1921}, + {0, 65480, 0, 0, 0, 1921}, + {0, 65406, 0, 0, 0, 1921}, + {0, 0, 0, 0, 0, 1921}, + {0, 65373, 0, 0, 0, 1921}, + {0, 83, 0, 0, 0, 1921}, + {65326, 0, 65326, 0, 0, 1801}, + {65330, 0, 65330, 0, 0, 1801}, + {65331, 0, 65331, 0, 0, 1801}, + {65334, 0, 65334, 0, 0, 1801}, + {65333, 0, 65333, 0, 0, 1801}, + {65329, 0, 65329, 0, 0, 1801}, + {65327, 0, 65327, 0, 0, 1801}, + {65325, 0, 65325, 0, 0, 1801}, + {65323, 0, 65323, 0, 0, 1801}, + {65322, 0, 65322, 0, 0, 1801}, + {65318, 0, 65318, 0, 0, 1801}, + {65319, 0, 65319, 0, 0, 1801}, + {65317, 0, 65317, 0, 0, 1801}, + {65453, 0, 65453, 0, 0, 1801}, + {84, 0, 84, 0, 0, 1536}, + {0, 0, 0, 0, 0, 1025}, + {0, 38, 0, 0, 0, 1921}, + {0, 37, 0, 0, 0, 1921}, + {0, 64, 0, 0, 0, 1921}, + {0, 63, 0, 0, 0, 1921}, + {65498, 0, 65498, 0, 0, 1801}, + {65499, 0, 65499, 0, 0, 1801}, + {65505, 0, 65505, 0, 0, 1801}, + {65472, 0, 65472, 0, 0, 1801}, + {65473, 0, 65473, 0, 0, 1801}, + {65474, 0, 65474, 0, 0, 1801}, + {65479, 0, 65479, 0, 0, 1801}, + {65489, 0, 65489, 0, 0, 1801}, + {65482, 0, 65482, 0, 0, 1801}, + {65450, 0, 65450, 0, 0, 1801}, + {65456, 0, 65456, 0, 0, 1801}, + {7, 0, 7, 0, 0, 1801}, + {0, 65476, 0, 0, 0, 1921}, + {65440, 0, 65440, 0, 0, 1801}, + {0, 65529, 0, 0, 0, 1921}, + {0, 80, 0, 0, 0, 1921}, + {0, 48, 0, 0, 0, 1921}, + {65488, 0, 65488, 0, 0, 1801}, + {0, 0, 0, 0, 0, 1537}, + {0, 7264, 0, 0, 0, 1921}, + {0, 0, 0, 0, 1, 1540}, + {0, 0, 0, 0, 2, 1540}, + {0, 0, 0, 0, 3, 1540}, + {0, 0, 0, 0, 4, 1540}, + {0, 0, 0, 0, 5, 1540}, + {0, 0, 0, 0, 6, 1540}, + {0, 0, 0, 0, 7, 1540}, + {0, 0, 0, 0, 8, 1540}, + {0, 0, 0, 0, 9, 1540}, + {0, 0, 0, 0, 0, 1792}, + {65477, 0, 65477, 0, 0, 1801}, + {8, 0, 8, 0, 0, 1801}, + {0, 65528, 0, 0, 0, 1921}, + {74, 0, 74, 0, 0, 1801}, + {86, 0, 86, 0, 0, 1801}, + {100, 0, 100, 0, 0, 1801}, + {128, 0, 128, 0, 0, 1801}, + {112, 0, 112, 0, 0, 1801}, + {126, 0, 126, 0, 0, 1801}, + {0, 65528, 0, 0, 0, 1857}, + {9, 0, 9, 0, 0, 1801}, + {0, 65462, 0, 0, 0, 1921}, + {0, 65527, 0, 0, 0, 1857}, + {58331, 0, 58331, 0, 0, 1801}, + {0, 65450, 0, 0, 0, 1921}, + {0, 65436, 0, 0, 0, 1921}, + {0, 65424, 0, 0, 0, 1921}, + {0, 65408, 0, 0, 0, 1921}, + {0, 65410, 0, 0, 0, 1921}, + {0, 0, 0, 0, 0, 1028}, + {0, 0, 0, 0, 4, 1028}, + {0, 0, 0, 0, 5, 1028}, + {0, 0, 0, 0, 6, 1028}, + {0, 0, 0, 0, 7, 1028}, + {0, 0, 0, 0, 8, 1028}, + {0, 0, 0, 0, 9, 1028}, + {0, 58019, 0, 0, 0, 1921}, + {0, 57153, 0, 0, 0, 1921}, + {0, 57274, 0, 0, 0, 1921}, + {0, 16, 0, 0, 0, 1792}, + {65520, 0, 65520, 0, 0, 1792}, + {0, 26, 0, 0, 0, 1024}, + {65510, 0, 65510, 0, 0, 1024}, + {58272, 0, 58272, 0, 0, 1801}, + {0, 40, 0, 0, 0, 1921}, + {65496, 0, 65496, 0, 0, 1801}, }; /* type indexes */ @@ -1323,6 +1323,3 @@ static unsigned char index2[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, }; - - - |