diff --git a/Get-the-fix-we-want.patch b/Get-the-fix-we-want.patch new file mode 100644 index 0000000000000000000000000000000000000000..f908fb919b326cab458669be1ce6f7ef9db0d4be --- /dev/null +++ b/Get-the-fix-we-want.patch @@ -0,0 +1,434 @@ +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 @@ + + +