Sascha Brawer 7574260bed [feaLib] Reverse lookup order for chained alternate substitutions
For this construct, makeotf throws an error: "Contextual alternate
rule not yet supported". If it had been implemented, we speculate
that the ordering would likely be the same as with other contextual
substitutions (the chain comes before, not after, the dependent lookup).

https://github.com/behdad/fonttools/issues/507
2016-02-04 14:34:45 +01:00

275 lines
8.7 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<ttFont>
<GSUB>
<Version value="1.0"/>
<ScriptList>
<!-- ScriptCount=1 -->
<ScriptRecord index="0">
<ScriptTag value="DFLT"/>
<Script>
<DefaultLangSys>
<ReqFeatureIndex value="65535"/>
<!-- FeatureCount=1 -->
<FeatureIndex index="0" value="0"/>
</DefaultLangSys>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
</ScriptList>
<FeatureList>
<!-- FeatureCount=1 -->
<FeatureRecord index="0">
<FeatureTag value="test"/>
<Feature>
<!-- LookupCount=5 -->
<LookupListIndex index="0" value="1"/>
<LookupListIndex index="1" value="4"/>
<LookupListIndex index="2" value="5"/>
<LookupListIndex index="3" value="7"/>
<LookupListIndex index="4" value="9"/>
</Feature>
</FeatureRecord>
</FeatureList>
<LookupList>
<!-- LookupCount=10 -->
<Lookup index="0">
<!-- LookupType=1 -->
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<SingleSubst index="0">
<Substitution in="A" out="A.sc"/>
</SingleSubst>
</Lookup>
<Lookup index="1">
<!-- LookupType=6 -->
<LookupFlag value="0"/>
<!-- SubTableCount=2 -->
<ChainContextSubst index="0" Format="3">
<!-- BacktrackGlyphCount=2 -->
<BacktrackCoverage index="0">
<Glyph value="three"/>
</BacktrackCoverage>
<BacktrackCoverage index="1">
<Glyph value="one"/>
<Glyph value="two"/>
</BacktrackCoverage>
<!-- InputGlyphCount=1 -->
<InputCoverage index="0">
<Glyph value="A"/>
</InputCoverage>
<!-- LookAheadGlyphCount=0 -->
<!-- SubstCount=1 -->
<SubstLookupRecord index="0">
<SequenceIndex value="0"/>
<LookupListIndex value="0"/>
</SubstLookupRecord>
</ChainContextSubst>
<ChainContextSubst index="1" Format="3">
<!-- BacktrackGlyphCount=0 -->
<!-- InputGlyphCount=1 -->
<InputCoverage index="0">
<Glyph value="B"/>
<Glyph value="C"/>
<Glyph value="D"/>
</InputCoverage>
<!-- LookAheadGlyphCount=2 -->
<LookAheadCoverage index="0">
<Glyph value="seven"/>
</LookAheadCoverage>
<LookAheadCoverage index="1">
<Glyph value="eight"/>
<Glyph value="nine"/>
</LookAheadCoverage>
<!-- SubstCount=1 -->
<SubstLookupRecord index="0">
<SequenceIndex value="0"/>
<LookupListIndex value="2"/>
</SubstLookupRecord>
</ChainContextSubst>
</Lookup>
<Lookup index="2">
<!-- LookupType=1 -->
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<SingleSubst index="0">
<Substitution in="B" out="B.sc"/>
<Substitution in="C" out="C.sc"/>
<Substitution in="D" out="D.sc"/>
</SingleSubst>
</Lookup>
<Lookup index="3">
<!-- LookupType=2 -->
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MultipleSubst index="0">
<Substitution in="c_t" out="c,t"/>
</MultipleSubst>
</Lookup>
<Lookup index="4">
<!-- LookupType=6 -->
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<ChainContextSubst index="0" Format="3">
<!-- BacktrackGlyphCount=3 -->
<BacktrackCoverage index="0">
<Glyph value="E"/>
</BacktrackCoverage>
<BacktrackCoverage index="1">
<Glyph value="D"/>
<Glyph value="d"/>
</BacktrackCoverage>
<BacktrackCoverage index="2">
<Glyph value="A"/>
<Glyph value="B"/>
<Glyph value="C"/>
<Glyph value="a"/>
<Glyph value="b"/>
<Glyph value="c"/>
</BacktrackCoverage>
<!-- InputGlyphCount=1 -->
<InputCoverage index="0">
<Glyph value="c_t"/>
</InputCoverage>
<!-- LookAheadGlyphCount=3 -->
<LookAheadCoverage index="0">
<Glyph value="V"/>
</LookAheadCoverage>
<LookAheadCoverage index="1">
<Glyph value="W"/>
<Glyph value="w"/>
</LookAheadCoverage>
<LookAheadCoverage index="2">
<Glyph value="X"/>
<Glyph value="Y"/>
<Glyph value="Z"/>
<Glyph value="x"/>
<Glyph value="y"/>
<Glyph value="z"/>
</LookAheadCoverage>
<!-- SubstCount=1 -->
<SubstLookupRecord index="0">
<SequenceIndex value="0"/>
<LookupListIndex value="3"/>
</SubstLookupRecord>
</ChainContextSubst>
</Lookup>
<Lookup index="5">
<!-- LookupType=6 -->
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<ChainContextSubst index="0" Format="3">
<!-- BacktrackGlyphCount=1 -->
<BacktrackCoverage index="0">
<Glyph value="space"/>
<Glyph value="semicolon"/>
<Glyph value="comma"/>
</BacktrackCoverage>
<!-- InputGlyphCount=1 -->
<InputCoverage index="0">
<Glyph value="e"/>
</InputCoverage>
<!-- LookAheadGlyphCount=0 -->
<!-- SubstCount=1 -->
<SubstLookupRecord index="0">
<SequenceIndex value="0"/>
<LookupListIndex value="6"/>
</SubstLookupRecord>
</ChainContextSubst>
</Lookup>
<Lookup index="6">
<!-- LookupType=3 -->
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<AlternateSubst index="0">
<AlternateSet glyph="e">
<Alternate glyph="e"/>
<Alternate glyph="e.begin"/>
</AlternateSet>
</AlternateSubst>
</Lookup>
<Lookup index="7">
<!-- LookupType=6 -->
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<ChainContextSubst index="0" Format="3">
<!-- BacktrackGlyphCount=1 -->
<BacktrackCoverage index="0">
<Glyph value="A"/>
</BacktrackCoverage>
<!-- InputGlyphCount=2 -->
<InputCoverage index="0">
<Glyph value="C"/>
<Glyph value="c"/>
</InputCoverage>
<InputCoverage index="1">
<Glyph value="T"/>
<Glyph value="t"/>
</InputCoverage>
<!-- LookAheadGlyphCount=1 -->
<LookAheadCoverage index="0">
<Glyph value="Z"/>
</LookAheadCoverage>
<!-- SubstCount=1 -->
<SubstLookupRecord index="0">
<SequenceIndex value="0"/>
<LookupListIndex value="8"/>
</SubstLookupRecord>
</ChainContextSubst>
</Lookup>
<Lookup index="8">
<!-- LookupType=4 -->
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<LigatureSubst index="0">
<LigatureSet glyph="C">
<Ligature components="T" glyph="c_t"/>
<Ligature components="t" glyph="c_t"/>
</LigatureSet>
<LigatureSet glyph="c">
<Ligature components="T" glyph="c_t"/>
<Ligature components="t" glyph="c_t"/>
</LigatureSet>
</LigatureSubst>
</Lookup>
<Lookup index="9">
<!-- LookupType=6 -->
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<ChainContextSubst index="0" Format="3">
<!-- BacktrackGlyphCount=3 -->
<BacktrackCoverage index="0">
<Glyph value="E"/>
</BacktrackCoverage>
<BacktrackCoverage index="1">
<Glyph value="D"/>
</BacktrackCoverage>
<BacktrackCoverage index="2">
<Glyph value="A"/>
</BacktrackCoverage>
<!-- InputGlyphCount=1 -->
<InputCoverage index="0">
<Glyph value="c_t"/>
</InputCoverage>
<!-- LookAheadGlyphCount=3 -->
<LookAheadCoverage index="0">
<Glyph value="V"/>
</LookAheadCoverage>
<LookAheadCoverage index="1">
<Glyph value="W"/>
</LookAheadCoverage>
<LookAheadCoverage index="2">
<Glyph value="X"/>
</LookAheadCoverage>
<!-- SubstCount=1 -->
<SubstLookupRecord index="0">
<SequenceIndex value="0"/>
<LookupListIndex value="4"/>
</SubstLookupRecord>
</ChainContextSubst>
</Lookup>
</LookupList>
</GSUB>
</ttFont>