Merge "Rename the font file with PostScript name based file name" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-02-24 20:00:16 +00:00
committed by Android (Google) Code Review
3 changed files with 303 additions and 248 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -33,7 +33,7 @@ namespace {
constexpr char kRobotoVariable[] = "/system/fonts/Roboto-Regular.ttf";
constexpr char kRegularFont[] = "/system/fonts/NotoSerif-Regular.ttf";
constexpr char kRegularFont[] = "/system/fonts/NotoSerif.ttf";
constexpr char kBoldFont[] = "/system/fonts/NotoSerif-Bold.ttf";
constexpr char kItalicFont[] = "/system/fonts/NotoSerif-Italic.ttf";
constexpr char kBoldItalicFont[] = "/system/fonts/NotoSerif-BoldItalic.ttf";

View File

@@ -11,6 +11,12 @@ from fontTools import ttLib
EMOJI_VS = 0xFE0F
#TODO(179952916): Rename CutiveMono and DancingScript
CANONICAL_NAME_EXCEPTION_LIST = [
'CutiveMono.ttf',
'DancingScript-Regular.ttf',
]
LANG_TO_SCRIPT = {
'as': 'Beng',
'be': 'Cyrl',
@@ -665,6 +671,53 @@ def check_cjk_punctuation():
assert_font_supports_none_of_chars(record.font, cjk_punctuation, name)
def getPostScriptName(font):
ttf = open_font(font)
nameTable = ttf['name']
for name in nameTable.names:
if name.nameID == 6 and name.platformID == 3 and name.platEncID == 1 and name.langID == 0x0409:
return str(name)
def getSuffix(font):
file_path, index = font
with open(path.join(_fonts_dir, file_path), 'rb') as f:
tag = f.read(4)
isCollection = tag == b'ttcf'
ttf = open_font(font)
isType1 = ('CFF ' in ttf or 'CFF2' in ttf)
if isType1:
if isCollection:
return '.otc'
else:
return '.otf'
else:
if isCollection:
return '.ttc'
else:
return '.ttf'
def check_canonical_name():
for record in _all_fonts:
file_name, index = record.font
if file_name in CANONICAL_NAME_EXCEPTION_LIST:
continue
if index and index != 0:
continue
psName = getPostScriptName(record.font)
assert psName, 'PostScript must be defined'
suffix = getSuffix(record.font)
canonicalName = '%s%s' % (psName, suffix)
assert file_name == canonicalName, (
'%s is not a canonical name. Must be %s' % (file_name, canonicalName))
def main():
global _fonts_dir
target_out = sys.argv[1]
@@ -682,6 +735,8 @@ def main():
check_cjk_punctuation()
check_canonical_name()
check_emoji = sys.argv[2]
if check_emoji == 'true':
ucd_path = sys.argv[3]