Skip to content

Commit 82bbba3

Browse files
committed
Handle lower-case hex digits in CJK ideograph escapes
1 parent abd39e4 commit 82bbba3

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

Lib/test/test_ucn.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ def test_issue16335(self, size):
238238

239239
def test_issue80667(self):
240240
self.assertEqual(str(b'\\N{cjK UniFIeD idEogRAph-732B}', "unicode-escape"), '猫')
241+
self.assertEqual(str(b'\\N{cjK UniFIeD idEogRAph-732b}', "unicode-escape"), '猫')
241242
self.assertEqual(str(b'\\N{haNGul SYllABle WAe}', "unicode-escape"), '왜')
242243

243244

Modules/unicodedata.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1246,10 +1246,11 @@ _getcode(PyObject* self,
12461246
return 0;
12471247
while (namelen--) {
12481248
v *= 16;
1249-
if (*name >= '0' && *name <= '9')
1250-
v += *name - '0';
1251-
else if (*name >= 'A' && *name <= 'F')
1252-
v += *name - 'A' + 10;
1249+
Py_UCS1 c = Py_TOUPPER(*name);
1250+
if (c >= '0' && c <= '9')
1251+
v += c - '0';
1252+
else if (c >= 'A' && c <= 'F')
1253+
v += c - 'A' + 10;
12531254
else
12541255
return 0;
12551256
name++;

0 commit comments

Comments
 (0)