[Python-checkins] python/dist/src/Modules unicodedata.c,2.24,2.25
loewis@users.sourceforge.net
loewis@users.sourceforge.net
Sat, 23 Nov 2002 14:10:31 -0800
Update of /cvsroot/python/python/dist/src/Modules
In directory sc8-pr-cvs1:/tmp/cvs-serv14419/Modules
Modified Files:
unicodedata.c
Log Message:
Verify that the code in CJK UNIFIED IDEOGRAPH- actually denotes an ideograph.
Index: unicodedata.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/unicodedata.c,v
retrieving revision 2.24
retrieving revision 2.25
diff -C2 -d -r2.24 -r2.25
*** unicodedata.c 23 Nov 2002 22:08:15 -0000 2.24
--- unicodedata.c 23 Nov 2002 22:10:29 -0000 2.25
***************
*** 582,585 ****
--- 582,594 ----
static int
+ is_unified_ideograph(Py_UCS4 code)
+ {
+ return (
+ (0x3400 <= code && code <= 0x4DB5) || /* CJK Ideograph Extension A */
+ (0x4E00 <= code && code <= 0x9FA5) || /* CJK Ideograph */
+ (0x20000 <= code && code <= 0x2A6D6));/* CJK Ideograph Extension B */
+ }
+
+ static int
_getucname(Py_UCS4 code, char* buffer, int buflen)
{
***************
*** 611,617 ****
}
! if ((0x3400 <= code && code <= 0x4DB5) || /* CJK Ideograph Extension A */
! (0x4E00 <= code && code <= 0x9FA5) || /* CJK Ideograph */
! (0x20000 <= code && code <= 0x2A6D6)) {/* CJK Ideograph Extension B */
if (buflen < 28)
/* Worst case: CJK UNIFIED IDEOGRAPH-20000 */
--- 620,624 ----
}
! if (is_unified_ideograph(code)) {
if (buflen < 28)
/* Worst case: CJK UNIFIED IDEOGRAPH-20000 */
***************
*** 744,747 ****
--- 751,756 ----
name++;
}
+ if (!is_unified_ideograph(v))
+ return 0;
*code = v;
return 1;