Skip to content

Commit 2247559

Browse files
committed
bpo-40243: Use numeric_changed for UCD.numeric
This was causing `ucd_3_2_0.numeric()` to pick up only decimal changes between Unicode 3.2.0 and the current version.
1 parent 5cd2803 commit 2247559

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

Lib/test/test_unicodedata.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,12 @@ def test_issue29456(self):
205205
self.assertEqual(self.db.normalize('NFC', u11a7_str_a), u11a7_str_b)
206206
self.assertEqual(self.db.normalize('NFC', u11c3_str_a), u11c3_str_b)
207207

208+
def test_issue40243(self):
209+
# BENGALI CURRENCY NUMERATOR FOUR
210+
u09f7 = '\u09f7'
211+
self.assertEqual(self.db.numeric(u09f7), 0.25)
212+
self.assertEqual(self.db.ucd_3_2_0.numeric(u09f7), 4.0)
213+
208214
def test_east_asian_width(self):
209215
eaw = self.db.east_asian_width
210216
self.assertRaises(TypeError, eaw, b'a')

Modules/unicodedata.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,9 +230,9 @@ unicodedata_UCD_numeric_impl(PyObject *self, int chr,
230230
have_old = 1;
231231
rc = -1.0;
232232
}
233-
else if (old->decimal_changed != 0xFF) {
233+
else if (old->numeric_changed != 0.0) {
234234
have_old = 1;
235-
rc = old->decimal_changed;
235+
rc = old->numeric_changed;
236236
}
237237
}
238238

0 commit comments

Comments
 (0)