Skip to content

Commit 2d2cf4f

Browse files
authored
Merge pull request #1179 from daltonmaag/fix-skip-instances
fix-font: add flag to skip rewriting fvar instances
2 parents e8af0f2 + 05e04f0 commit 2d2cf4f

3 files changed

Lines changed: 22 additions & 8 deletions

File tree

Lib/gftools/fix.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -878,11 +878,12 @@ def fix_no_varpsname(ttFont: TTFont) -> FixResult:
878878

879879

880880
def fix_font(
881-
font,
882-
include_source_fixes=False,
883-
new_family_name=None,
884-
fvar_instance_axis_dflts=None,
885-
):
881+
font: TTFont,
882+
include_source_fixes: bool = False,
883+
new_family_name: str | None = None,
884+
fvar_instance_axis_dflts: dict[str, float] | None = None,
885+
overwrite_fvar_instances: bool = True,
886+
) -> TTFont:
886887
fixed_font = deepcopy(font)
887888
if new_family_name:
888889
rename_font(fixed_font, new_family_name)
@@ -919,7 +920,8 @@ def fix_font(
919920
if messages:
920921
log.info("\n".join(messages))
921922

922-
fix_fvar_instances(fixed_font, fvar_instance_axis_dflts)
923+
if overwrite_fvar_instances:
924+
fix_fvar_instances(fixed_font, fvar_instance_axis_dflts)
923925
return fixed_font
924926

925927

Lib/gftools/scripts/fix_font.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ def main(args=None):
3939
"wdth=100 opsz=36"
4040
),
4141
)
42+
parser.add_argument(
43+
"--skip-fvar-instances",
44+
dest="overwrite_fvar_instances",
45+
action="store_false",
46+
help="don't re-write fvar instances",
47+
)
4248
args = parser.parse_args(args)
4349

4450
font = TTFont(args.font)
@@ -47,7 +53,13 @@ def main(args=None):
4753
axis_dflts = parse_axis_dflts(args.fvar_instance_axis_dflts)
4854
else:
4955
axis_dflts = None
50-
font = fix_font(font, args.include_source_fixes, args.rename_family, axis_dflts)
56+
font = fix_font(
57+
font,
58+
args.include_source_fixes,
59+
args.rename_family,
60+
axis_dflts,
61+
args.overwrite_fvar_instances,
62+
)
5163

5264
if args.out:
5365
font.save(args.out)

Lib/gftools/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@ def read_proto(fp, schema):
581581
return data
582582

583583

584-
def parse_axis_dflts(string):
584+
def parse_axis_dflts(string: str) -> dict[str, float]:
585585
axes = string.split()
586586
res = {}
587587
for axis in axes:

0 commit comments

Comments
 (0)