diff options
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-src/src/gen-use-table.py')
-rwxr-xr-x | Build/source/libs/harfbuzz/harfbuzz-src/src/gen-use-table.py | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-use-table.py b/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-use-table.py index 4ded54230e1..5391f27eb3e 100755 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-use-table.py +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-use-table.py @@ -297,6 +297,9 @@ def map_to_use(data): if U == 0x17DD: UISC = Vowel_Dependent if 0x1CE2 <= U <= 0x1CE8: UISC = Cantillation_Mark + # TODO: https://github.com/harfbuzz/harfbuzz/pull/627 + if 0x1BF2 <= U <= 0x1BF3: UISC = Nukta; UIPC = Bottom + # TODO: U+1CED should only be allowed after some of # the nasalization marks, maybe only for U+1CE9..U+1CF1. if U == 0x1CED: UISC = Tone_Mark @@ -349,12 +352,6 @@ def map_to_use(data): defaults = ('O', 'No_Block') data = map_to_use(data) -# Remove the outliers -singles = {} -for u in [0x034F, 0x25CC, 0x1107F]: - singles[u] = data[u] - del data[u] - print "/* == Start of generated table == */" print "/*" print " * The following table is generated by running:" @@ -456,16 +453,13 @@ print "hb_use_get_categories (hb_codepoint_t u)" print "{" print " switch (u >> %d)" % page_bits print " {" -pages = set([u>>page_bits for u in starts+ends+singles.keys()]) +pages = set([u>>page_bits for u in starts+ends]) for p in sorted(pages): print " case 0x%0Xu:" % p for (start,end) in zip (starts, ends): if p not in [start>>page_bits, end>>page_bits]: continue offset = "use_offset_0x%04xu" % start print " if (hb_in_range<hb_codepoint_t> (u, 0x%04Xu, 0x%04Xu)) return use_table[u - 0x%04Xu + %s];" % (start, end-1, start, offset) - for u,d in singles.items (): - if p != u>>page_bits: continue - print " if (unlikely (u == 0x%04Xu)) return %s;" % (u, d[0]) print " break;" print "" print " default:" |