Merge pull request #1815 from khaledhosny/fealib-flag-fix

[feaLib] Don’t reset lookupflag in nested lookups
This commit is contained in:
Khaled Hosny 2020-01-30 13:06:42 +02:00 committed by GitHub
commit 014991d710
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 151 additions and 6 deletions

View File

@ -679,15 +679,17 @@ class Builder(object):
self.cur_lookup_name_ = name
self.named_lookups_[name] = None
self.cur_lookup_ = None
self.lookupflag_ = 0
self.lookupflag_markFilterSet_ = None
if self.cur_feature_name_ is None:
self.lookupflag_ = 0
self.lookupflag_markFilterSet_ = None
def end_lookup_block(self):
assert self.cur_lookup_name_ is not None
self.cur_lookup_name_ = None
self.cur_lookup_ = None
self.lookupflag_ = 0
self.lookupflag_markFilterSet_ = None
if self.cur_feature_name_ is None:
self.lookupflag_ = 0
self.lookupflag_markFilterSet_ = None
def add_lookup_call(self, lookup_name):
assert lookup_name in self.named_lookups_, lookup_name

View File

@ -95,3 +95,42 @@ feature test {
lookup M;
lookup N;
} test;
feature test {
lookupflag IgnoreMarks;
lookup O {
pos one 1;
} O;
lookup P {
pos one 1;
} P;
} test;
feature test {
lookup Q {
pos one 1;
} Q;
lookup R {
pos one 1;
} R;
} test;
feature test {
lookup S {
lookupflag IgnoreMarks;
pos one 1;
} S;
lookup T {
pos one 1;
} T;
} test;
feature test {
lookup U {
pos one 1;
} U;
lookup V {
lookupflag IgnoreMarks;
pos one 1;
} V;
} test;

View File

@ -61,7 +61,7 @@
<FeatureRecord index="0">
<FeatureTag value="test"/>
<Feature>
<!-- LookupCount=14 -->
<!-- LookupCount=22 -->
<LookupListIndex index="0" value="0"/>
<LookupListIndex index="1" value="1"/>
<LookupListIndex index="2" value="2"/>
@ -76,11 +76,19 @@
<LookupListIndex index="11" value="11"/>
<LookupListIndex index="12" value="12"/>
<LookupListIndex index="13" value="13"/>
<LookupListIndex index="14" value="14"/>
<LookupListIndex index="15" value="15"/>
<LookupListIndex index="16" value="16"/>
<LookupListIndex index="17" value="17"/>
<LookupListIndex index="18" value="18"/>
<LookupListIndex index="19" value="19"/>
<LookupListIndex index="20" value="20"/>
<LookupListIndex index="21" value="21"/>
</Feature>
</FeatureRecord>
</FeatureList>
<LookupList>
<!-- LookupCount=14 -->
<!-- LookupCount=22 -->
<Lookup index="0">
<LookupType value="1"/>
<LookupFlag value="1"/>
@ -253,6 +261,102 @@
<Value XAdvance="1"/>
</SinglePos>
</Lookup>
<Lookup index="14">
<LookupType value="1"/>
<LookupFlag value="8"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
<Coverage>
<Glyph value="one"/>
</Coverage>
<ValueFormat value="4"/>
<Value XAdvance="1"/>
</SinglePos>
</Lookup>
<Lookup index="15">
<LookupType value="1"/>
<LookupFlag value="8"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
<Coverage>
<Glyph value="one"/>
</Coverage>
<ValueFormat value="4"/>
<Value XAdvance="1"/>
</SinglePos>
</Lookup>
<Lookup index="16">
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
<Coverage>
<Glyph value="one"/>
</Coverage>
<ValueFormat value="4"/>
<Value XAdvance="1"/>
</SinglePos>
</Lookup>
<Lookup index="17">
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
<Coverage>
<Glyph value="one"/>
</Coverage>
<ValueFormat value="4"/>
<Value XAdvance="1"/>
</SinglePos>
</Lookup>
<Lookup index="18">
<LookupType value="1"/>
<LookupFlag value="8"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
<Coverage>
<Glyph value="one"/>
</Coverage>
<ValueFormat value="4"/>
<Value XAdvance="1"/>
</SinglePos>
</Lookup>
<Lookup index="19">
<LookupType value="1"/>
<LookupFlag value="8"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
<Coverage>
<Glyph value="one"/>
</Coverage>
<ValueFormat value="4"/>
<Value XAdvance="1"/>
</SinglePos>
</Lookup>
<Lookup index="20">
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
<Coverage>
<Glyph value="one"/>
</Coverage>
<ValueFormat value="4"/>
<Value XAdvance="1"/>
</SinglePos>
</Lookup>
<Lookup index="21">
<LookupType value="1"/>
<LookupFlag value="8"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
<Coverage>
<Glyph value="one"/>
</Coverage>
<ValueFormat value="4"/>
<Value XAdvance="1"/>
</SinglePos>
</Lookup>
</LookupList>
</GPOS>