From e648ef3f89acf016744c40da4a6ef837c11d7373 Mon Sep 17 00:00:00 2001 From: Cosimo Lupo Date: Tue, 31 Oct 2017 18:23:21 +0000 Subject: [PATCH] ufo: must scale max_err_em list by UPEM When the 'max_err_em' argument is a float, we multiply it by the font.info.unitsPerEm. However we were not doing it when the argument is a list of floats... --- Lib/cu2qu/ufo.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Lib/cu2qu/ufo.py b/Lib/cu2qu/ufo.py index 00da90db9..0f9aa3729 100644 --- a/Lib/cu2qu/ufo.py +++ b/Lib/cu2qu/ufo.py @@ -233,14 +233,17 @@ def fonts_to_quadratic( max_err_em = DEFAULT_MAX_ERR if isinstance(max_err, (list, tuple)): + assert len(max_err) == len(fonts) max_errors = max_err - elif isinstance(max_err_em, (list, tuple)): - max_errors = max_err_em elif max_err: max_errors = [max_err] * len(fonts) - else: + + if isinstance(max_err_em, (list, tuple)): + assert len(fonts) == len(max_err_em) + max_errors = [f.info.unitsPerEm * e + for f, e in zip(fonts, max_err_em)] + elif max_err_em: max_errors = [f.info.unitsPerEm * max_err_em for f in fonts] - assert len(max_errors) == len(fonts) modified = False for name in set().union(*(f.keys() for f in fonts)):