From 59a4e934ee2ef01fd36c5673d87bfa3319f3e10e Mon Sep 17 00:00:00 2001 From: Martin Hosken Date: Fri, 7 Sep 2018 15:37:33 +0700 Subject: [PATCH] Get the fix we want --- Lib/fontTools/feaLib/builder.py | 2 +- Tests/feaLib/builder_test.py | 2 +- Tests/feaLib/data/bug1307.fea | 65 ++++++ Tests/feaLib/data/bug1307.ttx | 215 ++++++++++++++++++ Tests/feaLib/data/multiple_feature_blocks.ttx | 2 +- Tests/feaLib/data/spec4h1.ttx | 12 +- Tests/feaLib/data/spec4h2.ttx | 25 +- 7 files changed, 308 insertions(+), 15 deletions(-) create mode 100644 Tests/feaLib/data/bug1307.fea create mode 100644 Tests/feaLib/data/bug1307.ttx diff --git a/Lib/fontTools/feaLib/builder.py b/Lib/fontTools/feaLib/builder.py index 28f03bded..f6fac1c07 100644 --- a/Lib/fontTools/feaLib/builder.py +++ b/Lib/fontTools/feaLib/builder.py @@ -706,7 +706,7 @@ class Builder(object): key = (self.script_, language, self.cur_feature_name_) lookups = self.features_.get((key[0], 'dflt', key[2])) - if language != 'dflt' and include_default and lookups: + if (language == 'dflt' or include_default) and lookups: self.features_[key] = lookups[:] else: self.features_[key] = [] diff --git a/Tests/feaLib/builder_test.py b/Tests/feaLib/builder_test.py index 5108b7dc4..d72a9c936 100644 --- a/Tests/feaLib/builder_test.py +++ b/Tests/feaLib/builder_test.py @@ -65,7 +65,7 @@ class BuilderTest(unittest.TestCase): spec9a spec9b spec9c1 spec9c2 spec9c3 spec9d spec9e spec9f spec9g spec10 bug453 bug457 bug463 bug501 bug502 bug504 bug505 bug506 bug509 - bug512 bug514 bug568 bug633 + bug512 bug514 bug568 bug633 bug1307 name size size2 multiple_feature_blocks omitted_GlyphClassDef ZeroValue_SinglePos_horizontal ZeroValue_SinglePos_vertical ZeroValue_PairPos_horizontal ZeroValue_PairPos_vertical diff --git a/Tests/feaLib/data/bug1307.fea b/Tests/feaLib/data/bug1307.fea new file mode 100644 index 000000000..dbc4ae365 --- /dev/null +++ b/Tests/feaLib/data/bug1307.fea @@ -0,0 +1,65 @@ +# Test of features and languagesystems + +lookup a { + sub a by A; +} a; + +lookup b { + sub b by B; +} b; + +lookup c { + sub c by C; +} c; + +lookup d { + sub d by D; +} d; + +lookup e { + sub e by E; +} e; + +lookup f { + sub f by F; +} f; + +lookup g { + sub g by G; +} g; + +lookup h { + sub h by H; +} h; + +lookup i { + sub i by I; +} i; + +languagesystem DFLT dflt; +languagesystem DFLT FRE; +languagesystem DFLT ABC; +languagesystem latn dflt; +languagesystem latn ABC; + +feature smcp { + lookup a; +} smcp; + +feature liga { + lookup b; + script DFLT; + lookup c; + language dflt; + lookup d; + language FRE; + lookup e; + script latn; + lookup f; + language dflt; + lookup g; + language FRE; + lookup h; + language DEF exclude_dflt; + lookup i; +} liga; diff --git a/Tests/feaLib/data/bug1307.ttx b/Tests/feaLib/data/bug1307.ttx new file mode 100644 index 000000000..1ecbf03ff --- /dev/null +++ b/Tests/feaLib/data/bug1307.ttx @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/feaLib/data/multiple_feature_blocks.ttx b/Tests/feaLib/data/multiple_feature_blocks.ttx index 73380c8ad..4f9a38960 100644 --- a/Tests/feaLib/data/multiple_feature_blocks.ttx +++ b/Tests/feaLib/data/multiple_feature_blocks.ttx @@ -22,7 +22,7 @@ - + diff --git a/Tests/feaLib/data/spec4h1.ttx b/Tests/feaLib/data/spec4h1.ttx index 4d3931cc9..0e42fc56e 100644 --- a/Tests/feaLib/data/spec4h1.ttx +++ b/Tests/feaLib/data/spec4h1.ttx @@ -65,16 +65,18 @@ - - - + + + + - - + + + diff --git a/Tests/feaLib/data/spec4h2.ttx b/Tests/feaLib/data/spec4h2.ttx index 8005c2f69..266c4870d 100644 --- a/Tests/feaLib/data/spec4h2.ttx +++ b/Tests/feaLib/data/spec4h2.ttx @@ -19,6 +19,11 @@