diff --git a/Lib/fontTools/feaLib/lexer.py b/Lib/fontTools/feaLib/lexer.py index 0c29ce895..287181a4e 100644 --- a/Lib/fontTools/feaLib/lexer.py +++ b/Lib/fontTools/feaLib/lexer.py @@ -188,6 +188,7 @@ class Lexer(object): class IncludingLexer(object): def __init__(self, featurefile): self.lexers_ = [self.make_lexer_(featurefile)] + self.featurefilepath = self.lexers_[0].filename_ def __iter__(self): return self @@ -210,7 +211,7 @@ class IncludingLexer(object): #semi_type, semi_token, semi_location = lexer.next() #if semi_type is not Lexer.SYMBOL or semi_token != ";": # raise FeatureLibError("Expected ';'", semi_location) - curpath = os.path.dirname(lexer.filename_) + curpath = os.path.dirname(self.featurefilepath) path = os.path.join(curpath, fname_token) if len(self.lexers_) >= 5: raise FeatureLibError("Too many recursive includes", diff --git a/Tests/feaLib/data/include2.fea b/Tests/feaLib/data/inc/include2.fea similarity index 100% rename from Tests/feaLib/data/include2.fea rename to Tests/feaLib/data/inc/include2.fea diff --git a/Tests/feaLib/data/include1.fea b/Tests/feaLib/data/include1.fea index 26d9e3aa0..b88d1f56a 100644 --- a/Tests/feaLib/data/include1.fea +++ b/Tests/feaLib/data/include1.fea @@ -1,3 +1,3 @@ I1a -include(include0.fea) +include(../include0.fea) I1b diff --git a/Tests/feaLib/data/include3.fea b/Tests/feaLib/data/include3.fea index 5f92f1977..45b00fd71 100644 --- a/Tests/feaLib/data/include3.fea +++ b/Tests/feaLib/data/include3.fea @@ -1,4 +1,4 @@ I3a -include(include2.fea); +include(inc/include2.fea); I3b diff --git a/Tests/feaLib/data/include0.fea b/Tests/feaLib/include0.fea similarity index 100% rename from Tests/feaLib/data/include0.fea rename to Tests/feaLib/include0.fea