From fcb08dbdeee43f133f3f524f4cc142e41a181f19 Mon Sep 17 00:00:00 2001 From: Fredrik Roubert Date: Thu, 13 Apr 2017 20:06:05 +0200 Subject: [PATCH] =?UTF-8?q?Let=20mk=5Fhyb=5Ffile.py=20replace=20=C3=9FSS?= =?UTF-8?q?=20in=20.chr.txt=20files=20with=20=C3=9F=E1=BA=9E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Here these mappings are used to convert from uppercase to lowercase, and mk_hyb_file.py doesn't handle multi-character uppercase sequences. Therefore, in case the sequence ßSS is encountered in a .chr.txt, replace it internally with ßẞ. Test: make -j Change-Id: I8f678aad9298784f70645c453ec07da5bf43cb66 --- engine/src/flutter/tools/mk_hyb_file.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/engine/src/flutter/tools/mk_hyb_file.py b/engine/src/flutter/tools/mk_hyb_file.py index a9b8932c95..545e9b7b93 100755 --- a/engine/src/flutter/tools/mk_hyb_file.py +++ b/engine/src/flutter/tools/mk_hyb_file.py @@ -35,6 +35,10 @@ import getopt VERBOSE = False +# U+00DF is LATIN SMALL LETTER SHARP S +# U+1E9E is LATIN CAPITAL LETTER SHARP S +SHARP_S_TO_DOUBLE = u'\u00dfSS' +SHARP_S_TO_CAPITAL = u'\u00df\u1e9e' if sys.version_info[0] >= 3: def unichr(x): @@ -283,8 +287,12 @@ def load_chr(fn): for i, l in enumerate(f): l = l.strip() if len(l) > 2: - # lowercase maps to multi-character uppercase sequence, ignore uppercase for now - l = l[:1] + if l == SHARP_S_TO_DOUBLE: + # replace with lowercasing from capital letter sharp s + l = SHARP_S_TO_CAPITAL + else: + # lowercase maps to multi-character uppercase sequence, ignore uppercase for now + l = l[:1] else: assert len(l) == 2, 'expected 2 chars in chr' for c in l: @@ -419,6 +427,9 @@ def verify_file_sorted(lines, fn): file_lines = [l.strip() for l in io.open(fn, encoding='UTF-8')] line_set = set(lines) file_set = set(file_lines) + if SHARP_S_TO_DOUBLE in file_set: + # ignore difference of double capital letter s and capital letter sharp s + file_set.symmetric_difference_update([SHARP_S_TO_DOUBLE, SHARP_S_TO_CAPITAL]) if line_set == file_set: return True for line in line_set - file_set: