diff options
author | Roozbeh Pournader <roozbeh@google.com> | 2014-07-22 12:50:26 -0700 |
---|---|---|
committer | Roozbeh Pournader <roozbeh@google.com> | 2014-07-22 12:50:26 -0700 |
commit | 97bb2636965b92cce7deb79eb96bb79af97bd73c (patch) | |
tree | 361fb66d9bc9540ba1943baecfb0daa6311d5899 /scripts/touchup_for_glass.py | |
parent | 2b5dca5d77e7394df66fa8f2e8a827b1c6fec441 (diff) |
Added a hack to add cmap mapping for proportional digit one.
Diffstat (limited to 'scripts/touchup_for_glass.py')
-rwxr-xr-x | scripts/touchup_for_glass.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/scripts/touchup_for_glass.py b/scripts/touchup_for_glass.py new file mode 100755 index 0000000..1374e32 --- /dev/null +++ b/scripts/touchup_for_glass.py @@ -0,0 +1,52 @@ +#!/usr/bin/python +"""Post-build changes for Glass.""" + +import os +from os import path +import sys + +from fontTools import ttLib +from nototools import font_data + + +def apply_glass_hacks(font): + """Apply glass-specific hacks.""" + # Really ugly hack, expecting the proportional digit one to be at + # glyph01965. + font_data.add_to_cmap(font, {0xEE00: 'glyph01965'}) + + # Fix version number from buildnumber.txt + from datetime import date + + build_number_txt = path.join( + path.dirname(__file__), os.pardir, 'res', 'buildnumber.txt') + build_number = open(build_number_txt).read().strip() + + version_record = 'Version 2.0%s; %d; Glass' % ( + build_number, date.today().year) + + for record in font['name'].names: + if record.nameID == 5: + if record.platformID == 1 and record.platEncID == 0: # MacRoman + record.string = version_record + elif record.platformID == 3 and record.platEncID == 1: + # Windows UCS-2 + record.string = version_record.encode('UTF-16BE') + else: + assert False + + +def correct_font(source_font_name, target_font_name): + """Corrects metrics and other meta information.""" + font = ttLib.TTFont(source_font_name) + apply_glass_hacks(font) + font.save(target_font_name) + + +def main(argv): + """Correct the font specified in the command line.""" + correct_font(argv[1], argv[2]) + + +if __name__ == "__main__": + main(sys.argv) |