Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 99ac328

Browse files
committed
Verify that lower-higher case delta are 16-bit.
1 parent d8eeeae commit 99ac328

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

Tools/unicode/makeunicodedata.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -223,15 +223,21 @@ def makeunicodetype(unicode, trace):
223223
flags |= UPPER_MASK
224224
# use delta predictor for upper/lower/title
225225
if record[12]:
226-
upper = (int(record[12], 16) - char) & 0xffff
226+
upper = int(record[12], 16) - char
227+
assert -32768 <= upper <= 32767
228+
upper = upper & 0xffff
227229
else:
228230
upper = 0
229231
if record[13]:
230-
lower = (int(record[13], 16) - char) & 0xffff
232+
lower = int(record[13], 16) - char
233+
assert -32768 <= lower <= 32767
234+
lower = lower & 0xffff
231235
else:
232236
lower = 0
233237
if record[14]:
234-
title = (int(record[14], 16) - char) & 0xffff
238+
title = int(record[14], 16) - char
239+
assert -32768 <= lower <= 32767
240+
title = title & 0xffff
235241
else:
236242
title = 0
237243
# decimal digit, integer digit
@@ -322,6 +328,8 @@ def makeunicodename(unicode, trace):
322328
wordlist = words.items()
323329

324330
# sort on falling frequency
331+
# XXX: different Python versions produce a different order
332+
# for words with equal frequency
325333
wordlist.sort(lambda a, b: len(b[1])-len(a[1]))
326334

327335
# figure out how many phrasebook escapes we need

0 commit comments

Comments
 (0)