summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/amiri/sources/contextuals.fea
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/fonts/amiri/sources/contextuals.fea')
-rw-r--r--Master/texmf-dist/doc/fonts/amiri/sources/contextuals.fea1357
1 files changed, 0 insertions, 1357 deletions
diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/contextuals.fea b/Master/texmf-dist/doc/fonts/amiri/sources/contextuals.fea
deleted file mode 100644
index 99b2e80263b..00000000000
--- a/Master/texmf-dist/doc/fonts/amiri/sources/contextuals.fea
+++ /dev/null
@@ -1,1357 +0,0 @@
-// replace tashkil following shadda by smaller alternates
-
-@ShaddaTashkil = [uni064E uni064B uni064C uni064F uni08F0 uni08F1 uni0657];
-@ShaddaTashkil.small = [uni064E.small uni064B.small uni064C.small uni064F.small uni08F0.small uni08F1.small uni0657.small];
-
-lookup SamallTashkil {
- sub @ShaddaTashkil by @ShaddaTashkil.small;
-} SamallTashkil;
-
-feature calt {
- sub [uni0651 uni06EC] @ShaddaTashkil' lookup SamallTashkil;
-} calt;
-
-#ifdef QURAN
-// a rather ugly hack for the brain dead Unicode canonical reordering of some
-// Arabic combining marks
-
-lookup TashkilShaddaHack {
- sub uni064E by uni06EC uni064E.small;
- sub uni064B by uni06EC uni064B.small;
- sub uni064C by uni06EC uni064C.small;
- sub uni064F by uni06EC uni064F.small;
- sub uni08F0 by uni06EC uni08F0.small;
- sub uni08F1 by uni06EC uni08F1.small;
- sub uni0657 by uni06EC uni0657.small;
-} TashkilShaddaHack;
-
-feature calt {
- sub @ShaddaTashkil [uni06EC]' by dummy1;
-} calt;
-
-feature calt {
- sub @ShaddaTashkil' lookup TashkilShaddaHack dummy1;
-} calt;
-
-// non-hack
-feature calt {
- sub [uni065C] [uni0650]' by [uni0650.small2];
-} calt;
-
-// hack
-feature calt {
- sub [uni0650] [uni065C]' by dummy2;
-} calt;
-
-lookup uni065cHack {
- sub uni0650 by uni065C uni0650.small2;
-} uni065cHack;
-
-feature calt {
- sub [uni0650]' lookup uni065cHack dummy2;
-} calt;
-
-#endif
-
-// replace tashkil following hamza by smaller alternates
-feature calt {
- sub @AlefHamzaAbove [uni064E uni064F uni0652]' by [uni064E.small2 uni064F.small uni0652.small2];
- sub @AlefHamzaBelow [uni0650]' by [uni0650.small2];
- sub [uni0655] [uni0650]' by [uni0650.small2];
-} calt;
-
-// replace hamza mark when following a final heh by a glyph that only have a
-// HamzaAbove mark so it will be positioned correctly
-feature calt {
- sub [uni0647 uni06D5 uni06C1 uni0647.fina uni06D5.fina uni06C1.fina] [uni0654]' by hamza.above;
-} calt;
-
-lookup BaaInitWide {
- sub @aBaa.init by @aBaa.init_Wide;
-} BaaInitWide;
-
-feature calt {
- sub @aBaa.init' lookup BaaInitWide @Tashkil.above' [@aGaf.medi @aGaf.fina]';
- sub @aBaa.init' lookup BaaInitWide @Tashkil.above' @Tashkil.above' [@aGaf.medi @aGaf.fina]';
- sub @aBaa.init' lookup BaaInitWide @Tashkil.above' @Tashkil.above' @Tashkil.above' [@aGaf.medi @aGaf.fina]';
-} calt;
-
-lookup AboveHaaInit {
- sub @aBaa.init by @aBaa.init_BaaHaaInit;
- sub @aHaa.medi by @aHaa.medi_SadHaaInit;
- sub @aHeh.init by @aHeh.init_HehHaaInit;
- sub @aMem.init by @aMem.init_MemHaaInit;
- sub @aSad.init by @aSad.init_SadHaaInit;
- sub @aSen.init by @aSen.init_SenHaaInit;
-} AboveHaaInit;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aBaa.init @aHeh.init @aMem.init @aSad.init @aSen.init]' lookup AboveHaaInit
- [@aHaa.medi]' lookup AboveHaaInit;
-} calt;
-
-lookup BaaRaaFina {
- sub @aBaa.medi by @aBaa.medi_BaaRaaFina;
- sub @aRaa.fina by @aRaa.fina_BaaRaaFina;
-} BaaRaaFina;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aBaa.medi]' lookup BaaRaaFina
- [@aRaa.fina]' lookup BaaRaaFina;
-} calt;
-
-lookup BaaNonFina {
- sub @aBaa.medi by @aBaa.medi_BaaNonFina;
- sub @aNon.fina by @aNon.fina_BaaNonFina;
-} BaaNonFina;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aBaa.medi]' lookup BaaNonFina
- [@aNon.fina]' lookup BaaNonFina;
-} calt;
-
-lookup BaaMemFina {
- sub @aBaa.medi by @aBaa.medi_BaaMemFina;
- sub @aMem.fina by @aMem.fina_BaaMemFina;
-} BaaMemFina;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aBaa.medi]' lookup BaaMemFina
- [@aMem.fina]' lookup BaaMemFina;
-} calt;
-
-lookup KafBaaAlfIsol {
- sub @aBaa.medi by @aBaa.medi_KafBaaInit;
- sub @aKaf.init by @aKaf.init_KafBaaInit;
-} KafBaaAlfIsol;
-
-lookup KafBaaAlfFina {
- sub @aBaa.medi by @aBaa.medi_KafBaaMedi;
- sub @aKaf.medi by @aKaf.medi_KafBaaMedi;
-} KafBaaAlfFina;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aKaf.init]' lookup KafBaaAlfIsol
- [@aBaa.medi]' lookup KafBaaAlfIsol
- [@aAlf.fina @aLam.medi @aLam.fina];
-
- sub [@aKaf.medi]' lookup KafBaaAlfFina
- [@aBaa.medi]' lookup KafBaaAlfFina
- [@aAlf.fina @aLam.medi @aLam.fina];
-} calt;
-
-lookup BaaBaa {
- sub @aBaa.medi by @aBaa.medi_BaaBaaInit;
- sub @aBaa.fina by @aBaa.fina_BaaBaaIsol;
- sub @aBaa.init by @aBaa.init_BaaBaaIsol;
-} BaaBaa;
-
-lookup HighBaa {
- sub @aBaa.init by @aBaa.init_High;
- sub @aBaa.medi by @aBaa.medi_High;
-} HighBaa;
-
-feature calt {
- lookupflag IgnoreMarks;
- // hack to prevent double high baa in سببس and likes
- sub [@aSen.init @aSen.medi]'
- [@aBaa.medi]'
- [@aBaa.medi]' lookup HighBaa
- [@aSen.medi @aSen.fina]';
-
- // جرينتش
- sub [@aBaa.init]' lookup BaaBaa
- [@aBaa.medi]' lookup BaaBaa
- [@aBaa.medi]' lookup HighBaa
- [@aSen.fina @aSen.medi @aSen.medi_PreYaa];
-
- sub [@aBaa.medi @aSad.init @aSad.medi @aSen.init @aSen.medi @aBaa.medi_BaaBaaInit]
- [@aBaa.medi]' lookup HighBaa
- [@aBaa.fina @aBaa.medi @aSen.fina @aBaa.medi_BaaHehMedi @aSen.medi @aSen.medi_PreYaa];
-
- sub [@aBaa.medi]' lookup HighBaa
- [@aSen.fina @aSen.medi @aSen.medi_PreYaa];
-
- sub [@aBaa.init]' lookup HighBaa
- [@aBaa.medi]' lookup HighBaa
- [@aBaa.medi @aBaa.fina @aSen.medi @aSen.fina];
-} calt;
-
-lookup BaaHeh {
- sub @aBaa.init by @aBaa.init_BaaHehInit;
- sub @aMem.init_dots by @aMem.init_MemHehInit;
- sub @aBaa.medi by @aBaa.medi_BaaHehMedi;
- sub @aHeh.medi by @aHeh.medi_BaaHehMedi;
-} BaaHeh;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aBaa.init @aBaa.medi @aMem.init_dots]' lookup BaaHeh
- [@aHeh.medi]' lookup BaaHeh;
-} calt;
-
-lookup BaaBaaHeh {
- sub @aBaa.init by @aBaa.init_BaaBaaHeh;
-} BaaBaaHeh;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub @aBaa.init' lookup BaaBaaHeh
- @aBaa.medi_BaaHehMedi;
-} calt;
-
-lookup LamAlfFina {
- sub @aAlf.fina by @aAlf.fina_LamAlfFina;
- sub @aLam.medi by @aLam.medi_LamAlfFina;
-} LamAlfFina;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aLam.medi]' lookup LamAlfFina
- [@aAlf.fina]' lookup LamAlfFina;
-} calt;
-
-lookup KafLamHeh {
- sub @aLam.medi by @aLam.medi_KafLamHehIsol;
-} KafLamHeh;
-
-lookup BaaSenAltInit {
- sub @aBaa.init by @aBaa.init_BaaSenAltInit;
- sub @aRaa.fina by @aRaa.fina_PostTooth;
- sub @aSen.medi by @aSen.medi_BaaSenAltInit;
- sub @aHeh.medi by @aHeh.medi_PostTooth;
- sub @aYaa.fina by @aYaa.fina_PostTooth;
- sub @aMem.fina by @aMem.fina_PostTooth;
-} BaaSenAltInit;
-
-lookup LamHaaHaaInit {
- sub @aHaa.medi by @aHaa.medi_1LamHaaHaaInit;
- sub @aLam.init by @aLam.init_LamHaaHaaInit;
-} LamHaaHaaInit;
-
-lookup LamHaaHaaInit2 {
- sub @aHaa.medi by @aHaa.medi_2LamHaaHaaInit;
-} LamHaaHaaInit2;
-
-lookup KafHeh {
- sub @aKaf.init by @aKaf.init_KafHeh;
- sub @aKaf.medi by @aKaf.medi_KafHeh;
- sub @aHeh.fina by @aHeh.fina_KafHeh;
- sub @aDal.fina by @aDal.fina_KafDal;
-} KafHeh;
-
-lookup LamMemFina {
- sub @aLam.medi by @aLam.medi_LamMemFina;
- sub @aMem.fina by @aMem.fina_LamMemFina;
-} LamMemFina;
-
-lookup SenMemInit {
- sub @aSen.init by @aSen.init_SenMemInit;
- sub @aSad.init by @aSad.init_SadMemInit;
- sub @aMem.init by @aMem.init_MemMemInit;
- sub @aMem.medi by @aMem.medi_SenMemInit;
-} SenMemInit;
-
-lookup AllYaaIsol {
- sub @aKaf.init by @aKaf.init_KafYaaIsol;
- sub @aBaa.init by @aBaa.init_BaaYaaIsol;
- sub @aFaa.init by @aFaa.init_FaaYaaIsol;
- sub @aLam.init by @aLam.init_LamYaaIsol;
- sub @aAyn.init by @aAyn.init_AynYaaIsol;
- sub @aHaa.init by @aHaa.init_HaaYaaIsol;
- sub @aHeh.init by @aHeh.init_HehYaaIsol;
- sub @aMem.init_dots by @aMem.init_MemYaaIsol;
- sub @aYaa.fina by @aYaa.fina_KafYaaIsol;
-} AllYaaIsol;
-
-lookup BaaRaaIsol {
- sub @aBaa.init by @aBaa.init_BaaRaaIsol;
- sub @aRaa.fina by @aRaa.fina_BaaRaaIsol;
-} BaaRaaIsol;
-
-lookup LamHehIsol {
- sub @aLam.init by @aLam.init_LamHeh;
- sub @aLam.medi by @aLam.medi_LamHeh;
- sub @aLam.medi_LamLamInit by @aLam.medi_LamLamHehIsol;
- sub @aHeh.fina by @aHeh.fina_LamHeh;
- sub @aDal.fina by @aDal.fina_LamDal;
-} LamHehIsol;
-
-lookup LamWawFina {
- sub @aLam.medi by @aLam.medi_LamWawFina;
- sub @aWaw.fina by @aWaw.fina_LamWawFina;
-} LamWawFina;
-
-lookup FaaYaaFina {
- sub @aFaa.medi by @aFaa.medi_FaaYaaFina;
- sub @aYaa.fina by @aYaa.fina_FaaYaaFina;
-} FaaYaaFina;
-
-lookup LamLamHaaInit {
- sub @aHaa.medi by @aHaa.medi_LamLamHaaInit;
- sub @aLam.init by @aLam.init_LamLamHaaInit;
- sub @aLam.medi by @aLam.medi_LamLamHaaInit;
-} LamLamHaaInit;
-
-lookup LamBaaMemInit {
- sub @aBaa.medi by @aBaa.medi_LamBaaMemInit;
- sub @aLam.init by @aLam.init_LamBaaMemInit;
- sub @aMem.medi by @aMem.medi_LamBaaMemInit;
-} LamBaaMemInit;
-
-lookup KafLamMemMedi {
- sub @aLam.medi by @aLam.medi_KafLamMemMedi;
-} KafLamMemMedi;
-
-lookup KafLamMemFina {
- sub @aLam.medi by @aLam.medi_KafLamMemFina;
- sub @aLam.medi_LamMemFina by @aLam.medi_KafLamMemFina;
-} KafLamMemFina;
-
-lookup BaaDalIsol {
- sub @aBaa.init by @aBaa.init_BaaDal;
- sub @aDal.fina by @aDal.fina_BaaDal;
-} BaaDalIsol;
-
-lookup BaaMemHaaInit {
- sub @aBaa.init by @aBaa.init_BaaMemHaaInit;
- sub @aHaa.medi by @aHaa.medi_BaaMemHaaInit;
- sub @aMem.medi by @aMem.medi_BaaMemHaaInit;
-} BaaMemHaaInit;
-
-lookup BaaBaaYaa {
- sub @aBaa.init by @aBaa.init_BaaBaaYaa;
- sub @aBaa.medi by @aBaa.medi_BaaBaaYaa;
- sub @aYaa.fina by @aYaa.fina_BaaBaaYaa;
-} BaaBaaYaa;
-
-@LamLamFoo = [@aLam.medi_LamMemMedi @aLam.medi_LamHeh @aLam.medi_LamYaaFina];
-
-lookup LamLamInit {
- sub @aLam.init by @aLam.init_LamLamInit;
- sub @aLam.medi by @aLam.medi_LamLamInit;
- sub @aLam.fina by @aLam.fina_LamLamIsol;
- sub @aKaf.fina by @aKaf.fina_LamKafIsol;
- sub @aGaf.alt.fina by @aGaf.fina_LamKafIsol;
- sub @aLam.medi_LamAlfFina by @aLam.medi_LamLamAlfIsol;
- sub @LamLamFoo by [@aLam.medi_LamLamMemInit @aLam.medi_LamLamHehIsol @aLam.medi_LamLamYaaIsol];
-} LamLamInit;
-
-lookup LamLamMedi {
- sub @aLam.medi by @aLam.medi_LamLamMedi2;
- sub @aLam.fina by @aLam.fina_LamLamFina;
- sub @aKaf.fina by @aKaf.fina_LamKafFina;
- sub @aGaf.alt.fina by @aGaf.fina_LamKafFina;
- sub @aLam.medi_LamAlfFina by @aLam.medi_LamLamAlefFina;
- sub @LamLamFoo by [@aLam.medi_LamLamMemMedi @aLam.medi_LamLamHehFina @aLam.medi_LamLamYaaFina];
-} LamLamMedi;
-
-lookup LamLamMedi2 {
- sub @aLam.medi by @aLam.medi_LamLamMedi;
-} LamLamMedi2;
-
-lookup LamYaaFina {
- sub @aLam.medi by @aLam.medi_LamYaaFina;
- sub @aYaa.fina by @aYaa.fina_LamYaaFina;
-} LamYaaFina;
-
-lookup LamMemHaaInit {
- sub @aHaa.medi by @aHaa.medi_LamMemHaaInit;
- sub @aLam.init by @aLam.init_LamMemHaaInit;
- sub @aMem.medi by @aMem.medi_LamMemHaaInit;
-} LamMemHaaInit;
-
-#ifndef QURAN
-lookup LamMemInit {
- sub @aLam.init by @aLam.init_LamMemInit;
- sub @aMem.medi by @aMem.medi_LamMemInit;
-} LamMemInit;
-#endif
-
-lookup LamAlfIsol {
- sub @aAlf.fina by @aAlf.fina_LamAlfIsol;
- sub @aLam.init by @aLam.init_LamAlfIsol;
-} LamAlfIsol;
-
-#ifndef QURAN
-lookup LamHaaMemInit {
- sub @aHaa.medi by @aHaa.medi_LamHaaMemInit;
- sub @aLam.init by @aLam.init_LamHaaMemInit;
- sub @aMem.medi by @aMem.medi_LamHaaMemInit;
-} LamHaaMemInit;
-#endif
-
-lookup BaaBaaMemInit {
- sub @aBaa.init by @aBaa.init_BaaBaaMemInit;
- sub @aBaa.medi by @aBaa.medi_BaaBaaMemInit;
- sub @aMem.medi by @aMem.medi_BaaBaaMemInit;
-} BaaBaaMemInit;
-
-lookup BaaBaaHaaInit {
- sub @aBaa.init by @aBaa.init_BaaBaaHaaInit;
- sub @aBaa.medi by @aBaa.medi_BaaBaaHaaInit;
- sub @aHaa.medi by @aHaa.medi_BaaBaaHaaInit;
-} BaaBaaHaaInit;
-
-lookup MemRaaIsol {
- sub @aMem.init by @aMem.init_MemRaaIsol;
- sub @aRaa.fina by @aRaa.fina_MemRaaIsol;
-} MemRaaIsol;
-
-lookup HaaHaaInit {
- sub @aHaa.init by @aHaa.init_HaaHaaInit;
- sub @aHaa.medi by @aHaa.medi_HaaHaaInit;
-} HaaHaaInit;
-
-lookup KafMemIsol {
- sub @aKaf.init by @aKaf.init_KafMemIsol;
- sub @aLam.init by @aLam.init_LamMemIsol;
- sub @aBaa.init by @aBaa.init_BaaMemIsol;
- sub @aMem.fina by @aMem.fina_KafMemIsol;
-} KafMemIsol;
-
-lookup LamQafFina {
- sub @aLam.medi by @aLam.medi_LamQafFina;
- sub @aQaf.fina by @aQaf.fina_LamQafFina;
-} LamQafFina;
-
-lookup MemHaaMemInit {
- sub @aHaa.medi by @aHaa.medi_MemHaaMemInit;
- sub @aMem.init by @aMem.init_MemHaaMemInit;
- sub @aMem.init_MemHaaInit by @aMem.init_MemHaaMemInit;
- sub @aHaa.medi_SadHaaInit by @aHaa.medi_MemHaaMemInit;
-} MemHaaMemInit;
-
-lookup BaaNonIsol {
- sub @aBaa.init by @aBaa.init_BaaNonIsol;
- sub @aNon.fina by @aNon.fina_BaaNonIsol;
-} BaaNonIsol;
-
-lookup KafMemFina {
- sub @aKaf.medi by @aKaf.medi_KafMemFina;
- sub @aMem.fina by @aMem.fina_KafMemFina;
-} KafMemFina;
-
-lookup KafLamAlf {
- sub @aLam.medi by @aLam.medi_KafLamAlf;
- sub @aLam.medi_LamAlfFina by @aLam.medi_KafLamAlf;
-} KafLamAlf;
-
-lookup BaaSenInit {
- sub @aBaa.init by @aBaa.init_BaaSenInit;
- sub @aSen.fina by @aSen.fina_BaaSen;
- sub @aSen.medi by @aSen.medi_BaaSenInit;
-} BaaSenInit;
-
-lookup KafRaaFina {
- sub @aKaf.medi by @aKaf.medi_KafRaaFina;
- sub @aRaa.fina by @aRaa.fina_KafRaaFina;
-} KafRaaFina;
-
-lookup LamHehInit {
- sub @aHeh.medi by @aHeh.medi_LamHehInit;
- sub @aLam.init by @aLam.init_LamHehInit;
-} LamHehInit;
-
-lookup BaaMemInit {
- sub @aBaa.init by @aBaa.init_BaaMemInit;
- sub @aMem.medi by @aMem.medi_BaaMemInit;
-} BaaMemInit;
-
-lookup KafLam {
- sub @aKaf.init by @aKaf.init_KafLam;
- sub @aKaf.medi by @aKaf.medi_KafLam;
- sub @aKaf.fina by @aKaf.fina_KafKafFina;
- sub @aGaf.alt.fina by @aGaf.fina_KafKafFina;
- sub @aLam.medi by @aLam.medi_KafLam;
- sub @aLam.fina by @aLam.fina_KafLam;
- sub @aAlf.fina by @aAlf.fina_KafAlf;
-} KafLam;
-
-lookup KafRaaIsol {
- sub @aKaf.init by @aKaf.init_KafRaaIsol;
- sub @aRaa.fina by @aRaa.fina_KafRaaIsol;
-} KafRaaIsol;
-
-lookup AynHaaInit {
- sub @aAyn.init by @aAyn.init_AynHaaInit;
- sub @aHaa.medi by @aHaa.medi_AynHaaInit;
-} AynHaaInit;
-
-lookup KafYaaFina {
- sub @aKaf.medi by @aKaf.medi_KafYaaFina;
- sub @aAyn.medi by @aAyn.medi_AynYaaFina;
- sub @aYaa.fina by @aYaa.fina_KafYaaFina;
-} KafYaaFina;
-
-lookup LamMemMedi {
- sub @aLam.medi by @aLam.medi_LamMemMedi;
- sub @aMem.medi_dots by @aMem.medi_LamMemMedi;
-} LamMemMedi;
-
-lookup SenBaaMemInit {
- sub @aSen.init by @aSen.init_SenBaaMemInit;
- sub @aSad.init by @aSad.init_SenBaaMemInit;
- sub @aBaa.medi by @aBaa.medi_SenBaaMemInit;
- sub @aMem.medi by @aMem.medi_SenBaaMemInit;
-} SenBaaMemInit;
-
-lookup HaaRaaIsol {
- sub @aHaa.init by @aHaa.init_HaaRaaIsol;
- sub @aRaa.fina by @aRaa.fina_HaaRaaIsol;
-} HaaRaaIsol;
-
-lookup LamRaaIsol {
- sub @aLam.init by @aLam.init_LamRaaIsol;
- sub @aRaa.fina by @aRaa.fina_LamRaaIsol;
-} LamRaaIsol;
-
-lookup KafMemAlf {
- sub @aKaf.medi by @aKaf.medi_KafMemAlf;
- sub @aKaf.init by @aKaf.init_KafMemAlf;
- sub @aMem.medi by @aMem.medi_KafMemAlf;
- sub @aAlf.fina by @aAlf.fina_KafMemAlf;
- sub @aLam.fina by @aLam.fina_KafMemLam;
- sub @aLam.medi by @aLam.medi_KafMemLam;
-} KafMemAlf;
-
-lookup BaaHaaMemInit {
- sub @aBaa.init by @aBaa.init_BaaHaaMemInit;
- sub @aHaa.medi by @aHaa.medi_BaaHaaMemInit;
- sub @aHaa.medi_SadHaaInit by @aHaa.medi_BaaHaaMemInit;
- sub @aBaa.init_BaaHaaInit by @aBaa.init_BaaHaaMemInit;
-} BaaHaaMemInit;
-
-lookup AboveHaaIsol {
- sub @aAyn.init by @aAyn.init_AboveHaa;
- sub @aBaa.init by @aBaa.init_AboveHaa;
- sub @aFaa.init by @aFaa.init_FaaHaaInit;
- sub @aHaa.init by @aHaa.init_AboveHaa;
- sub @aHeh.init by @aHeh.init_AboveHaa;
- sub @aKaf.init by @aKaf.init_AboveHaa;
- sub @aLam.init by @aLam.init_LamHaaInit;
- sub @aMem.init by @aMem.init_AboveHaa;
- sub @aSad.init by @aSad.init_AboveHaa;
- sub @aSen.init by @aSen.init_AboveHaa;
- sub @aHaa.fina by @aHaa.fina_AboveHaaIsol;
-} AboveHaaIsol;
-
-lookup AboveHaaIsol2 {
- sub @aHaa.fina by @aHaa.fina_AboveHaaIsol2;
- sub @aHaa.medi by @aHaa.medi_FaaHaaInit;
-} AboveHaaIsol2;
-
-lookup SenYaaFina {
- sub @aRaa.fina by @aRaa.fina_PostTooth;
- sub @aSad.init by @aSad.init_PreYaa;
- sub @aSad.medi by @aSad.medi_PreYaa;
- sub @aSen.init by @aSen.init_PreYaa;
- sub @aSen.medi by @aSen.medi_PreYaa;
- sub @aYaa.fina by @aYaa.fina_PostTooth;
-} SenYaaFina;
-
-lookup KafMemInit {
- sub @aKaf.init by @aKaf.init_KafMemInit;
- sub @aKaf.medi by @aKaf.medi_KafMemMedi;
- sub @aAyn.init by @aAyn.init_AynMemInit;
- sub @aFaa.init by @aFaa.init_FaaMemInit;
- sub @aHaa.init by @aHaa.init_HaaMemInit;
- sub @aHeh.init by @aHeh.init_HehMemInit;
- sub @aMem.medi by @aMem.medi_KafMemMedi;
-} KafMemInit;
-
-// the Lam.medi+Mem.fina is too narrow for tashkil, so we use a wider (extended)
-// meem when tashkil clash is anticipated.
-lookup LamMemFinaExtended {
- sub @aMem.fina by @aMem.fina_LamMemFinaExtended;
-} LamMemFinaExtended;
-
-feature calt {
- sub @aLam.medi' lookup LamMemFina
- @Tashkil.above'
- @aMem.fina' lookup LamMemFinaExtended
- @Tashkil.above';
- sub @aLam.medi' lookup LamMemFina
- @Tashkil.above' @Tashkil.above'
- @aMem.fina' lookup LamMemFinaExtended
- @Tashkil.above';
- sub @aLam.medi' lookup LamMemFina
- @Tashkil.above' @Tashkil.above'
- @aMem.fina' lookup LamMemFinaExtended
- @Tashkil.above' @Tashkil.above';
- sub @aLam.medi' lookup LamMemFina
- @Tashkil.above'
- @aMem.fina' lookup LamMemFinaExtended
- @Tashkil.above' @Tashkil.above';
- sub @aLam.medi' lookup LamMemFina
- @Tashkil.below' @Tashkil.above'
- @aMem.fina' lookup LamMemFinaExtended
- @Tashkil.above';
- sub @aLam.medi' lookup LamMemFina
- @Tashkil.above' @Tashkil.below'
- @aMem.fina' lookup LamMemFinaExtended
- @Tashkil.above';
- sub @aLam.medi' lookup LamMemFina
- @Tashkil.below'
- @aMem.fina' lookup LamMemFinaExtended
- @Tashkil.below';
-} calt;
-
-// ditto
-lookup MemExtended {
- sub @aMem.fina by @aMem.fina_KafMemIsolExtended;
-} MemExtended;
-
-feature calt {
- sub [@aLam.init @aKaf.init]' lookup KafMemIsol
- @Tashkil.above'
- @aMem.fina' lookup MemExtended
- @Tashkil.above';
- sub [@aLam.init @aKaf.init]' lookup KafMemIsol
- @Tashkil.above' @Tashkil.above'
- @aMem.fina' lookup MemExtended
- @Tashkil.above';
- sub [@aLam.init @aKaf.init]' lookup KafMemIsol
- @Tashkil.above' @Tashkil.above'
- @aMem.fina' lookup MemExtended
- @Tashkil.above' @Tashkil.above';
- sub [@aLam.init @aKaf.init]' lookup KafMemIsol
- @Tashkil.above'
- @aMem.fina' lookup MemExtended
- @Tashkil.above' @Tashkil.above';
- sub [@aLam.init @aKaf.init]' lookup KafMemIsol
- @Tashkil.below' @Tashkil.above'
- @aMem.fina' lookup MemExtended
- @Tashkil.above';
- sub [@aLam.init @aKaf.init]' lookup KafMemIsol
- @Tashkil.above' @Tashkil.below'
- @aMem.fina' lookup MemExtended
- @Tashkil.above';
- sub [@aLam.init @aKaf.init]' lookup KafMemIsol
- @Tashkil.below'
- @aMem.fina' lookup MemExtended
- @Tashkil.below';
-} calt;
-
-//ditto, but we don't have LamMemInit in Quran font
-#ifndef QURAN
-lookup LamMemInitTatweel {
- sub @aMem.medi by @aMem.medi_LamMemInitTatweel;
-} LamMemInitTatweel;
-
-feature calt {
- sub @aLam.init' lookup LamMemInit
- @Tashkil.above'
- @aMem.medi' lookup LamMemInitTatweel
- @Tashkil.above';
- sub @aLam.init' lookup LamMemInit
- @Tashkil.above' @Tashkil.above'
- @aMem.medi' lookup LamMemInitTatweel
- @Tashkil.above';
- sub @aLam.init' lookup LamMemInit
- @Tashkil.above' @Tashkil.above'
- @aMem.medi' lookup LamMemInitTatweel
- @Tashkil.above' @Tashkil.above';
- sub @aLam.init' lookup LamMemInit
- @Tashkil.above'
- @aMem.medi' lookup LamMemInitTatweel
- @Tashkil.above' @Tashkil.above';
- sub @aLam.init' lookup LamMemInit
- @Tashkil.below' @Tashkil.above'
- @aMem.medi' lookup LamMemInitTatweel
- @Tashkil.above';
- sub @aLam.init' lookup LamMemInit
- @Tashkil.above' @Tashkil.below'
- @aMem.medi' lookup LamMemInitTatweel
- @Tashkil.above';
- sub @aLam.init' lookup LamMemInit
- @Tashkil.below'
- @aMem.medi' lookup LamMemInitTatweel
- @Tashkil.below';
-} calt;
-#endif
-
-// ditto
-lookup KafMemFinaExtended {
- sub @aMem.fina by @aMem.fina_KafMemFinaExtended;
-} KafMemFinaExtended;
-
-feature calt {
- sub @aKaf.medi' lookup KafMemFina
- @Tashkil.above'
- @aMem.fina' lookup KafMemFinaExtended
- @Tashkil.above';
- sub @aKaf.medi' lookup KafMemFina
- @Tashkil.above' @Tashkil.above'
- @aMem.fina' lookup KafMemFinaExtended
- @Tashkil.above';
- sub @aKaf.medi' lookup KafMemFina
- @Tashkil.above' @Tashkil.above'
- @aMem.fina' lookup KafMemFinaExtended
- @Tashkil.above' @Tashkil.above';
- sub @aKaf.medi' lookup KafMemFina
- @Tashkil.above'
- @aMem.fina' lookup KafMemFinaExtended
- @Tashkil.above' @Tashkil.above';
- sub @aKaf.medi' lookup KafMemFina
- @Tashkil.below' @Tashkil.above'
- @aMem.fina' lookup KafMemFinaExtended
- @Tashkil.above;
- sub @aKaf.medi' lookup KafMemFina
- @Tashkil.above' @Tashkil.below'
- @aMem.fina' lookup KafMemFinaExtended
- @Tashkil.above';
- sub @aKaf.medi' lookup KafMemFina
- @Tashkil.below'
- @aMem.fina' lookup KafMemFinaExtended
- @Tashkil.below';
-} calt;
-
-// No IgnoreMarks here, to narrow to carry vowels
-feature calt {
- sub [@aBaa.init]' lookup BaaMemHaaInit
- [@aMem.medi]' lookup BaaMemHaaInit
- [@aHaa.medi]' lookup BaaMemHaaInit;
-} calt;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aKaf.init @aKaf.medi]' lookup KafLam
- [@aLam.medi]' lookup KafLamHeh
- [@aHeh.fina @aDal.fina]' lookup LamHehIsol;
-
- sub [@aKaf.init @aKaf.medi]' lookup KafMemAlf
- [@aMem.medi]' lookup KafMemAlf
- [@aLam.medi @aLam.fina @aAlf.fina]' lookup KafMemAlf;
-
- sub [@aBaa.init]' lookup BaaSenAltInit
- [@aSen.medi]' lookup BaaSenAltInit
- [@aHeh.medi @aRaa.fina @aYaa.fina @aMem.fina]' lookup BaaSenAltInit;
-
- sub [@aLam.init]' lookup LamHaaHaaInit
- [@aHaa.medi]' lookup LamHaaHaaInit
- [@aHaa.medi]' lookup LamHaaHaaInit2;
-
- sub [@aKaf.init @aKaf.medi]' lookup KafHeh
- [@aHeh.fina @aDal.fina]' lookup KafHeh;
-
- sub [@aLam.medi]' lookup LamMemFina
- [@aMem.fina]' lookup LamMemFina;
-
- sub [@aSen.init @aSad.init @aMem.init]' lookup SenMemInit
- [@aMem.medi]' lookup SenMemInit;
-
- sub [@aKaf.init @aBaa.init @aFaa.init @aLam.init @aAyn.init @aHaa.init @aHeh.init @aMem.init_dots]' lookup AllYaaIsol
- [@aYaa.fina]' lookup AllYaaIsol;
-
- sub [@aBaa.init]' lookup BaaRaaIsol
- [@aRaa.fina]' lookup BaaRaaIsol;
-
- sub [@aLam.init @aLam.medi @aLam.medi_LamLamInit]' lookup LamHehIsol
- [@aHeh.fina @aDal.fina]' lookup LamHehIsol;
-
- sub [@aLam.medi]' lookup LamWawFina
- [@aWaw.fina]' lookup LamWawFina;
-
- sub [@aFaa.medi]' lookup FaaYaaFina
- [@aYaa.fina]' lookup FaaYaaFina;
-
- sub [@aLam.init]' lookup LamLamHaaInit
- [@aLam.medi]' lookup LamLamHaaInit
- [@aHaa.medi]' lookup LamLamHaaInit;
-
- sub [@aLam.init]' lookup LamBaaMemInit
- [@aBaa.medi]' lookup LamBaaMemInit
- [@aMem.medi]' lookup LamBaaMemInit;
-
- sub [@aKaf.init @aKaf.medi]' lookup KafLam
- [@aLam.medi]' lookup KafLamMemMedi
- [@aMem.medi_dots]' lookup LamMemMedi;
-
- sub [@aKaf.init @aKaf.medi]' lookup KafLam
- [@aLam.medi @aLam.medi_LamMemFina]' lookup KafLamMemFina
- [@aMem.fina @aMem.fina_LamMemFinaExtended]' lookup LamMemFina;
-
- sub [@aBaa.init]' lookup BaaDalIsol
- [@aDal.fina]' lookup BaaDalIsol;
-
- sub [@aBaa.init]' lookup BaaBaaYaa
- [@aBaa.medi]' lookup BaaBaaYaa
- [@aYaa.fina]' lookup BaaBaaYaa;
-
- sub [@aLam.medi]' lookup LamYaaFina
- [@aYaa.fina]' lookup LamYaaFina;
-
- sub [@aLam.init]' lookup LamMemHaaInit
- [@aMem.medi]' lookup LamMemHaaInit
- [@aHaa.medi]' lookup LamMemHaaInit;
-
-#ifndef QURAN
- sub [@aLam.init]' lookup LamMemInit
- [@aMem.medi]' lookup LamMemInit;
-#endif
-
- sub [@aLam.init]' lookup LamAlfIsol
- [@aAlf.fina]' lookup LamAlfIsol;
-
-#ifndef QURAN
- sub [@aLam.init]' lookup LamHaaMemInit
- [@aHaa.medi]' lookup LamHaaMemInit
- [@aMem.medi]' lookup LamHaaMemInit;
-#endif
-
- sub [@aBaa.init]' lookup BaaBaaMemInit
- [@aBaa.medi]' lookup BaaBaaMemInit
- [@aMem.medi]' lookup BaaBaaMemInit;
-
- sub [@aBaa.init]' lookup BaaBaaHaaInit
- [@aBaa.medi]' lookup BaaBaaHaaInit
- [@aHaa.medi]' lookup BaaBaaHaaInit;
-
- sub [@aMem.init]' lookup MemRaaIsol
- [@aRaa.fina]' lookup MemRaaIsol;
-
- sub [@aAyn.init]'
- [@aRaa.fina]' lookup MemRaaIsol;
-
- sub [@aHaa.init]' lookup HaaHaaInit
- [@aHaa.medi]' lookup HaaHaaInit;
-
- sub [@aKaf.init @aLam.init @aBaa.init]' lookup KafMemIsol
- [@aMem.fina]' lookup KafMemIsol;
-
- sub [@aLam.medi]' lookup LamQafFina
- [@aQaf.fina]' lookup LamQafFina;
-
- sub [@aMem.init @aMem.init_MemHaaInit]' lookup MemHaaMemInit
- [@aHaa.medi @aHaa.medi_SadHaaInit]' lookup MemHaaMemInit
- [@aMem.medi]' lookup KafMemInit;
-
- sub [@aBaa.init]' lookup BaaNonIsol
- [@aNon.fina]' lookup BaaNonIsol;
-
- sub [@aKaf.medi]' lookup KafMemFina
- [@aMem.fina]' lookup KafMemFina;
-
- sub [@aKaf.init @aKaf.medi]' lookup KafLam
- [@aLam.medi @aLam.medi_LamAlfFina]' lookup KafLamAlf
- [@aAlf.fina @aAlf.fina_LamAlfFina];
-
- sub [@aKaf.init @aKaf.medi]' lookup KafLam
- [@aLam.medi @aLam.medi_LamAlfFina]' lookup KafLamAlf
- // see float hamza in quran.fea
- uni0621.float'
- [@aAlf.fina @aAlf.fina_LamAlfFina];
-
- sub [@aBaa.init]' lookup BaaSenInit
- [@aSen.medi]' lookup BaaSenInit;
-
- sub [@aBaa.init]' lookup BaaSenAltInit
- [@aSen.fina]' lookup BaaSenInit;
-
- sub [@aKaf.medi]' lookup KafRaaFina
- [@aRaa.fina]' lookup KafRaaFina;
-
- sub [@aLam.init]' lookup LamHehInit
- [@aHeh.medi]' lookup LamHehInit;
-
- sub [@aBaa.init]' lookup BaaMemInit
- [@aMem.medi]' lookup BaaMemInit;
-
- sub [@aKaf.init @aKaf.medi]' lookup KafLam
- [@aLam.medi @aLam.fina @aAlf.fina @aKaf.fina]' lookup KafLam;
-
- sub [@aKaf.init]' lookup KafRaaIsol
- [@aRaa.fina]' lookup KafRaaIsol;
-
- sub [@aAyn.init]' lookup AynHaaInit
- [@aHaa.medi]' lookup AynHaaInit;
-
- sub [@aKaf.medi @aAyn.medi]' lookup KafYaaFina
- [@aYaa.fina]' lookup KafYaaFina;
-
- sub [@aLam.medi]' lookup LamMemMedi
- [@aMem.medi_dots]' lookup LamMemMedi;
-
- sub [@aSen.init @aSad.init]' lookup SenBaaMemInit
- [@aBaa.medi]' lookup SenBaaMemInit
- [@aMem.medi]' lookup SenBaaMemInit;
-
- sub [@aBaa.init]' lookup BaaBaa
- [@aBaa.medi @aBaa.fina]' lookup BaaBaa;
-
- sub [@aHaa.init]' lookup HaaRaaIsol
- [@aRaa.fina]' lookup HaaRaaIsol;
-
- sub [@aLam.init]' lookup LamRaaIsol
- [@aRaa.fina]' lookup LamRaaIsol;
-
- sub [@aBaa.init @aBaa.init_BaaHaaInit]' lookup BaaHaaMemInit
- [@aHaa.medi @aHaa.medi_SadHaaInit]' lookup BaaHaaMemInit
- [@aMem.medi]' lookup KafMemInit;
-
- sub [@aAyn.init @aBaa.init @aHaa.init @aHeh.init @aMem.init @aSad.init @aSen.init]' lookup AboveHaaIsol
- [@aHaa.fina]' lookup AboveHaaIsol;
-
- sub [@aFaa.init @aLam.init @aKaf.init]' lookup AboveHaaIsol
- [@aHaa.medi @aHaa.fina]' lookup AboveHaaIsol2;
-
- sub [@aSen.init @aSad.init @aSen.medi @aSad.medi]' lookup SenYaaFina
- [@aYaa.fina @aRaa.fina]' lookup SenYaaFina;
-} calt;
-
-lookup ToothYaaBari {
- sub @aSen.init by @aSen.init_YaaBari;
- sub @aSad.init by @aSad.init_YaaBari;
- sub @aYaaBari.fina by @aYaaBari.fina_PostTooth;
-} ToothYaaBari;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aSen.init @aSad.init]' lookup ToothYaaBari
- [@aYaaBari.fina]' lookup ToothYaaBari;
-} calt;
-
-lookup ToothYaaBariFina {
- sub @aBaa.medi by @aBaa.medi_YaaBari;
- sub @aBaa.init_BaaBaaIsol by @aBaa.init_BaaBaaYaaBari;
- sub @aBaa.medi_BaaBaaInit by @aBaa.medi_YaaBari;
- sub @aHaa.init_DotBelow by @aHaa.init_BaaYaaBari;
- sub @aYaaBari.fina by @aYaaBari.fina_PostToothFina;
-} ToothYaaBariFina;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aHaa.init_DotBelow]' lookup ToothYaaBariFina
- [@aBaa.medi]' lookup ToothYaaBariFina
- [@aYaaBari.fina]' lookup ToothYaaBariFina;
-
- sub [@aBaa.medi]' lookup ToothYaaBariFina
- [@aYaaBari.fina]' lookup ToothYaaBariFina;
-
- sub [@aBaa.init_BaaBaaIsol]' lookup ToothYaaBariFina
- [@aBaa.medi_BaaBaaInit]' lookup ToothYaaBariFina
- [@aYaaBari.fina]' lookup ToothYaaBariFina;
-} calt;
-
-lookup AscenderYaaBari {
- sub @aBaa.init by @aBaa.init_YaaBari;
- sub @aFaa.init by @aFaa.init_YaaBari;
- sub @aLam.init by @aLam.init_YaaBari;
- sub @aKaf.init by @aKaf.init_YaaBari;
- sub @aYaaBari.fina by @aYaaBari.fina_PostAscender;
-} AscenderYaaBari;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aBaa.init @aFaa.init @aLam.init @aKaf.init]' lookup AscenderYaaBari
- [@aYaaBari.fina]' lookup AscenderYaaBari;
-} calt;
-
-lookup AynYaaBari {
- sub @aHaa.init by @aHaa.init_YaaBari;
- sub @aHeh.init by @aHeh.init_YaaBari;
- sub uni06BE.init by uni06BE.init_YaaBari;
- sub @aAyn.init by @aAyn.init_YaaBari;
- sub @aTaa.init by @aTaa.init_YaaBari;
- sub @aMem.init_dots by @aMem.init_YaaBari;
- sub @aYaaBari.fina by @aYaaBari.fina_PostAyn;
-} AynYaaBari;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aHaa.init @aHeh.init @aAyn.init @aTaa.init @aMem.init_dots uni06BE.init]' lookup AynYaaBari
- @aYaaBari.fina' lookup AynYaaBari;
-} calt;
-
-// default Faa.init+Mem.medi ligature is too narrow leading to mark clash of
-// both glyphs have marks above or both have marks bellow at the same time. So
-// we use an alternate wider Meem in such cases.
-// This covers فَمَا فَّمَا فَمَّا فَّمَّا فِّمَا فِمِا.
-lookup FaaMemTatweel {
- sub @aMem.medi by @aMem.medi_KafMemMediTatweel;
-} FaaMemTatweel;
-
-feature calt {
- sub @aFaa.init' lookup KafMemInit
- @Tashkil.above'
- @aMem.medi' lookup FaaMemTatweel
- @Tashkil.above';
- sub @aFaa.init' lookup KafMemInit
- @Tashkil.above' @Tashkil.above'
- @aMem.medi' lookup FaaMemTatweel
- @Tashkil.above';
- sub @aFaa.init' lookup KafMemInit
- @Tashkil.above' @Tashkil.above'
- @aMem.medi' lookup FaaMemTatweel
- @Tashkil.above' @Tashkil.above';
- sub @aFaa.init' lookup KafMemInit
- @Tashkil.above'
- @aMem.medi' lookup FaaMemTatweel
- @Tashkil.above' @Tashkil.above';
- sub @aFaa.init' lookup KafMemInit
- @Tashkil.below' @Tashkil.above'
- @aMem.medi' lookup FaaMemTatweel
- @Tashkil.above';
- sub @aFaa.init' lookup KafMemInit
- @Tashkil.above' @Tashkil.below'
- @aMem.medi' lookup FaaMemTatweel
- @Tashkil.above';
- sub @aFaa.init' lookup KafMemInit
- @Tashkil.below'
- @aMem.medi' lookup FaaMemTatweel
- @Tashkil.below';
-} calt;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aKaf.init @aKaf.medi @aAyn.init @aFaa.init @aHaa.init @aHeh.init]' lookup KafMemInit
- [@aMem.medi]' lookup KafMemInit;
-} calt;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aLam.init]' lookup LamLamInit
- [@LamLamFoo @aLam.medi @aKaf.fina @aLam.fina @aLam.medi_LamAlfFina]' lookup LamLamInit;
-
- sub [@aLam.medi]' lookup LamLamMedi2
- [@LamLamFoo @aLam.medi @aKaf.fina @aLam.fina @aLam.medi_LamAlfFina]' lookup LamLamMedi;
-} calt;
-
-lookup HehMediTooth {
- sub @aHeh.medi by @aHeh.medi_PostTooth;
- sub @aSad.init by @aSad.init_PreYaa;
- sub @aSad.medi by @aSad.medi_PreYaa;
- sub @aSen.init by @aSen.init_PreYaa;
- sub @aSen.medi by @aSen.medi_PreYaa;
-} HehMediTooth;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aSad.init @aSad.medi @aSen.init @aSen.medi]' lookup HehMediTooth
- [@aHeh.medi]' lookup HehMediTooth;
-} calt;
-
-// replace final alef followed by madda by a wider one
-feature calt {
- sub @Tashkil.above [uni0627.fina]' [uni0653 uni06E4] by [uni0627.fina_Wide];
-} calt;
-
-// Wider alef wasl and alef with hamza above after faa
-feature calt {
- lookupflag IgnoreMarks;
- sub @aFaa.init
- [uni0671.fina uni0623.fina]'
- by [uni0671.fina_Wide uni0623.fina_Wide];
-} calt;
-
-// If there are no marks, revert the above substitution
-feature calt {
- sub @aFaa.init
- [uni0671.fina_Wide uni0623.fina_Wide]'
- by [uni0671.fina uni0623.fina];
-} calt;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aAyn.init @aHaa.init @aHaa.medi]'
- [@aAlf.fina @aDal.fina @aHeh.fina @aLam.fina @aLam.medi @aLam.medi_LamMemFina
- @aLam.medi_LamWawFina @aLam.medi_LamHeh @aLam.medi_LamYaaFina @aKaf.fina
- @aLam.medi_LamQafFina @aBaa.medi_BaaRaaFina @aLam.medi_LamAlfFina
- @aLam.medi_LamMemMedi @aLam.medi_LamLamMedi @aBaa.medi_BaaNonFina @aBaa.medi_High
- @aKaf.medi @aKaf.medi_KafMemAlf @aKaf.medi_KafMemMedi @aKaf.medi_KafMemFina
- @aKaf.medi_KafLam @aKaf.medi_KafHeh @aKaf.medi_KafBaaMedi @aKaf.medi_KafRaaFina
- @aKaf.medi_KafYaaFina]
- by [@aAyn.init_Finjani @aHaa.init_Finjani @aHaa.medi_Finjani];
-} calt;
-
-lookup BaaYaaFina {
- sub @aBaa.medi by @aBaa.medi_BaaYaaFina;
- sub @aYaa.fina by @aYaa.fina_BaaYaaFina;
-} BaaYaaFina;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aBaa.medi]' lookup BaaYaaFina
- [@aYaa.fina]' lookup BaaYaaFina;
-} calt;
-
-lookup ToothMem {
- sub @aMem.fina by @aMem.fina_PostTooth;
- sub @aSad.init by @aSad.init_PreYaa;
- sub @aSad.medi by @aSad.medi_PreYaa;
- sub @aSen.init by @aSen.init_PreYaa;
- sub @aSen.medi by @aSen.medi_PreYaa;
-} ToothMem;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aSen.init @aSen.medi @aSad.init @aSad.medi]' lookup ToothMem
- [@aMem.fina]' lookup ToothMem;
-} calt;
-
-lookup KafLamYaa {
- sub @aLam.medi_KafLam by @aLam.medi_KafLamYaa;
-} KafLamYaa;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aLam.medi_KafLam]' lookup KafLamYaa
- [@aYaa.fina]' lookup LamYaaFina;
-} calt;
-
-lookup LamKafInit {
-// XXX: sync with classes.fea
-
- // @aLam.init
- sub uni06B5.init by uni06B5.init uni0640.1;
- sub uni06B7.init by uni06B7.init uni0640.1;
- sub uni0644.init by uni0644.init uni0640.1;
- sub uni06B8.init by uni06B8.init uni0640.1;
- sub uni06B6.init by uni06B6.init uni0640.1;
- sub uni076A.init by uni076A.init uni0640.1;
-
- // @aLam.medi by
- sub uni06B5.medi by uni06B5.medi uni0640.1;
- sub uni06B7.medi by uni06B7.medi uni0640.1;
- sub uni0644.medi by uni0644.medi uni0640.1;
- sub uni06B8.medi by uni06B8.medi uni0640.1;
- sub uni06B6.medi by uni06B6.medi uni0640.1;
- sub uni076A.medi by uni076A.medi uni0640.1;
-
- // @aLam.medi_KafLam
- sub uni06B5.medi_KafLam by uni06B5.medi_KafLam uni0640.1;
- sub uni06B7.medi_KafLam by uni06B7.medi_KafLam uni0640.1;
- sub uni0644.medi_KafLam by uni0644.medi_KafLam uni0640.1;
- sub uni06B8.medi_KafLam by uni06B8.medi_KafLam uni0640.1;
- sub uni06B6.medi_KafLam by uni06B6.medi_KafLam uni0640.1;
- sub uni076A.medi_KafLam by uni076A.medi_KafLam uni0640.1;
-
- // @aLam.medi_KafMemLam
- sub uni06B5.medi_KafMemLam by uni06B5.medi_KafMemLam uni0640.1;
- sub uni06B7.medi_KafMemLam by uni06B7.medi_KafMemLam uni0640.1;
- sub uni0644.medi_KafMemLam by uni0644.medi_KafMemLam uni0640.1;
- sub uni06B8.medi_KafMemLam by uni06B8.medi_KafMemLam uni0640.1;
- sub uni06B6.medi_KafMemLam by uni06B6.medi_KafMemLam uni0640.1;
- sub uni076A.medi_KafMemLam by uni076A.medi_KafMemLam uni0640.1;
-
- // @aLam.medi_LamLamInit
- sub uni06B5.medi_LamLamInit by uni06B5.medi_LamLamInit uni0640.1;
- sub uni06B7.medi_LamLamInit by uni06B7.medi_LamLamInit uni0640.1;
- sub uni0644.medi_LamLamInit by uni0644.medi_LamLamInit uni0640.1;
- sub uni06B8.medi_LamLamInit by uni06B8.medi_LamLamInit uni0640.1;
- sub uni06B6.medi_LamLamInit by uni06B6.medi_LamLamInit uni0640.1;
- sub uni076A.medi_LamLamInit by uni076A.medi_LamLamInit uni0640.1;
-
- sub @aMem.medi_LamMemInit by @aMem.medi_LamMemInitTatweel;
-} LamKafInit;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aLam.init @aLam.medi @aLam.medi_KafLam @aLam.medi_KafMemLam
- @aLam.medi_LamLamInit @aMem.medi_LamMemInit]' lookup LamKafInit
- [@aKaf.medi @aKaf.medi_KafHeh @aKaf.medi_KafMemFina @aKaf.medi_KafRaaFina
- @aKaf.medi_KafYaaFina @aKaf.medi_KafMemAlf @aGaf.fina];
-} calt;
-
-lookup LamAynTatweel {
-// XXX: sync with classes.fea
-
- // @aLam.init
- sub uni06B5.init by uni06B5.init uni0640.2;
- sub uni06B7.init by uni06B7.init uni0640.2;
- sub uni0644.init by uni0644.init uni0640.2;
- sub uni06B8.init by uni06B8.init uni0640.2;
- sub uni06B6.init by uni06B6.init uni0640.2;
- sub uni076A.init by uni076A.init uni0640.2;
-
- // @aLam.medi by
- sub uni06B5.medi by uni06B5.medi uni0640.2;
- sub uni06B7.medi by uni06B7.medi uni0640.2;
- sub uni0644.medi by uni0644.medi uni0640.2;
- sub uni06B8.medi by uni06B8.medi uni0640.2;
- sub uni06B6.medi by uni06B6.medi uni0640.2;
- sub uni076A.medi by uni076A.medi uni0640.2;
-
- // @aLam.medi_KafLam
- sub uni06B5.medi_KafLam by uni06B5.medi_KafLam uni0640.2;
- sub uni06B7.medi_KafLam by uni06B7.medi_KafLam uni0640.2;
- sub uni0644.medi_KafLam by uni0644.medi_KafLam uni0640.2;
- sub uni06B8.medi_KafLam by uni06B8.medi_KafLam uni0640.2;
- sub uni06B6.medi_KafLam by uni06B6.medi_KafLam uni0640.2;
- sub uni076A.medi_KafLam by uni076A.medi_KafLam uni0640.2;
-
- // @aLam.medi_KafMemLam
- sub uni06B5.medi_KafMemLam by uni06B5.medi_KafMemLam uni0640.2;
- sub uni06B7.medi_KafMemLam by uni06B7.medi_KafMemLam uni0640.2;
- sub uni0644.medi_KafMemLam by uni0644.medi_KafMemLam uni0640.2;
- sub uni06B8.medi_KafMemLam by uni06B8.medi_KafMemLam uni0640.2;
- sub uni06B6.medi_KafMemLam by uni06B6.medi_KafMemLam uni0640.2;
- sub uni076A.medi_KafMemLam by uni076A.medi_KafMemLam uni0640.2;
-
- // @aLam.medi_LamLamInit
- sub uni06B5.medi_LamLamInit by uni06B5.medi_LamLamInit uni0640.2;
- sub uni06B7.medi_LamLamInit by uni06B7.medi_LamLamInit uni0640.2;
- sub uni0644.medi_LamLamInit by uni0644.medi_LamLamInit uni0640.2;
- sub uni06B8.medi_LamLamInit by uni06B8.medi_LamLamInit uni0640.2;
- sub uni06B6.medi_LamLamInit by uni06B6.medi_LamLamInit uni0640.2;
- sub uni076A.medi_LamLamInit by uni076A.medi_LamLamInit uni0640.2;
-
- sub @aMem.medi_LamMemInit by @aMem.medi_LamMemInitTatweel;
-} LamAynTatweel;
-
-// lam [shadda] kasra ayn.fina
-feature calt {
- sub [@aLam.init @aLam.medi @aLam.medi_KafLam @aLam.medi_KafMemLam
- @aLam.medi_LamLamInit @aMem.medi_LamMemInit]' lookup LamAynTatweel
- [uni064D uni0650 uni065C]
- @aAyn.fina;
- sub [@aLam.init @aLam.medi @aLam.medi_KafLam @aLam.medi_KafMemLam
- @aLam.medi_LamLamInit @aMem.medi_LamMemInit]' lookup LamAynTatweel
- [uni0651]
- [uni064D uni0650 uni065C]
- @aAyn.fina;
-} calt;
-
-#ifdef QURAN
-// alef lam meem raa (with madda)
-// we don't get plain aLam.init aMem.fina except in Quran font
-feature calt {
- sub @aLam.init' lookup LamKafInit [uni0653 uni06E4]
- @aMem.medi [uni0653 uni06E4];
-} calt;
-#endif
-
-lookup HehYaaFina {
- sub @aHeh.medi_BaaHehMedi by @aHeh.medi_HehYaaFina;
- sub @aHeh.medi_PostTooth by @aHeh.medi_PostToothHehYaa;
-} HehYaaFina;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aHeh.medi_PostTooth @aHeh.medi_BaaHehMedi]' lookup HehYaaFina
- [@aYaa.fina]' lookup BaaYaaFina;
-} calt;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub @RaaWaw [uni0625 uni0673]' by @aAlf.isol_LowHamza;
-} calt;
-
-
-// insert tatweel between ح and ك in فحك[ملير]
-lookup FaaHaaKaf {
-// XXX: sync with classes.fea
-// sub @aHaa.medi_FaaHaaInit by @aHaa.medi_FaaHaaInit uni0640.1;
- sub uni062E.medi_FaaHaaInit by uni062E.medi_FaaHaaInit uni0640.1;
- sub uni062D.medi_FaaHaaInit by uni062D.medi_FaaHaaInit uni0640.1;
- sub uni0681.medi_FaaHaaInit by uni0681.medi_FaaHaaInit uni0640.1;
- sub uni0687.medi_FaaHaaInit by uni0687.medi_FaaHaaInit uni0640.1;
- sub uni0685.medi_FaaHaaInit by uni0685.medi_FaaHaaInit uni0640.1;
- sub uni062C.medi_FaaHaaInit by uni062C.medi_FaaHaaInit uni0640.1;
- sub uni0682.medi_FaaHaaInit by uni0682.medi_FaaHaaInit uni0640.1;
- sub uni0757.medi_FaaHaaInit by uni0757.medi_FaaHaaInit uni0640.1;
- sub uni0684.medi_FaaHaaInit by uni0684.medi_FaaHaaInit uni0640.1;
- sub uni076F.medi_FaaHaaInit by uni076F.medi_FaaHaaInit uni0640.1;
- sub uni076E.medi_FaaHaaInit by uni076E.medi_FaaHaaInit uni0640.1;
- sub uni0683.medi_FaaHaaInit by uni0683.medi_FaaHaaInit uni0640.1;
- sub uni06BF.medi_FaaHaaInit by uni06BF.medi_FaaHaaInit uni0640.1;
- sub uni077C.medi_FaaHaaInit by uni077C.medi_FaaHaaInit uni0640.1;
- sub uni0758.medi_FaaHaaInit by uni0758.medi_FaaHaaInit uni0640.1;
- sub uni0772.medi_FaaHaaInit by uni0772.medi_FaaHaaInit uni0640.1;
- sub uni0686.medi_FaaHaaInit by uni0686.medi_FaaHaaInit uni0640.1;
-} FaaHaaKaf;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub @aFaa.init_FaaHaaInit
- @aHaa.medi_FaaHaaInit' lookup FaaHaaKaf
- [@aKaf.medi_KafHeh @aKaf.medi_KafMemFina @aKaf.medi_KafRaaFina @aKaf.medi_KafYaaFina];
-} calt;
-
-// insert tatweel between ح and ت in [بمسصف]حت[رن]
-lookup AboveHaaTatweel {
-// XXX: sync with classes.fea
-//sub @aHaa.medi_FaaHaaInit by @aHaa.medi_FaaHaaInit uni0640.05;
- sub uni062E.medi_FaaHaaInit by uni062E.medi_FaaHaaInit uni0640.05;
- sub uni062D.medi_FaaHaaInit by uni062D.medi_FaaHaaInit uni0640.05;
- sub uni0681.medi_FaaHaaInit by uni0681.medi_FaaHaaInit uni0640.05;
- sub uni0687.medi_FaaHaaInit by uni0687.medi_FaaHaaInit uni0640.05;
- sub uni0685.medi_FaaHaaInit by uni0685.medi_FaaHaaInit uni0640.05;
- sub uni062C.medi_FaaHaaInit by uni062C.medi_FaaHaaInit uni0640.05;
- sub uni0682.medi_FaaHaaInit by uni0682.medi_FaaHaaInit uni0640.05;
- sub uni0757.medi_FaaHaaInit by uni0757.medi_FaaHaaInit uni0640.05;
- sub uni0684.medi_FaaHaaInit by uni0684.medi_FaaHaaInit uni0640.05;
- sub uni076F.medi_FaaHaaInit by uni076F.medi_FaaHaaInit uni0640.05;
- sub uni076E.medi_FaaHaaInit by uni076E.medi_FaaHaaInit uni0640.05;
- sub uni0683.medi_FaaHaaInit by uni0683.medi_FaaHaaInit uni0640.05;
- sub uni06BF.medi_FaaHaaInit by uni06BF.medi_FaaHaaInit uni0640.05;
- sub uni077C.medi_FaaHaaInit by uni077C.medi_FaaHaaInit uni0640.05;
- sub uni0758.medi_FaaHaaInit by uni0758.medi_FaaHaaInit uni0640.05;
- sub uni0772.medi_FaaHaaInit by uni0772.medi_FaaHaaInit uni0640.05;
- sub uni0686.medi_FaaHaaInit by uni0686.medi_FaaHaaInit uni0640.05;
-
-//sub @aHaa.medi_SadHaaInit by @aHaa.medi_SadHaaInit uni0640.05;
- sub uni062E.medi_SadHaaInit by uni062E.medi_SadHaaInit uni0640.05;
- sub uni062D.medi_SadHaaInit by uni062D.medi_SadHaaInit uni0640.05;
- sub uni0681.medi_SadHaaInit by uni0681.medi_SadHaaInit uni0640.05;
- sub uni0687.medi_SadHaaInit by uni0687.medi_SadHaaInit uni0640.05;
- sub uni0685.medi_SadHaaInit by uni0685.medi_SadHaaInit uni0640.05;
- sub uni062C.medi_SadHaaInit by uni062C.medi_SadHaaInit uni0640.05;
- sub uni0682.medi_SadHaaInit by uni0682.medi_SadHaaInit uni0640.05;
- sub uni0757.medi_SadHaaInit by uni0757.medi_SadHaaInit uni0640.05;
- sub uni0684.medi_SadHaaInit by uni0684.medi_SadHaaInit uni0640.05;
- sub uni076F.medi_SadHaaInit by uni076F.medi_SadHaaInit uni0640.05;
- sub uni076E.medi_SadHaaInit by uni076E.medi_SadHaaInit uni0640.05;
- sub uni0683.medi_SadHaaInit by uni0683.medi_SadHaaInit uni0640.05;
- sub uni06BF.medi_SadHaaInit by uni06BF.medi_SadHaaInit uni0640.05;
- sub uni077C.medi_SadHaaInit by uni077C.medi_SadHaaInit uni0640.05;
- sub uni0758.medi_SadHaaInit by uni0758.medi_SadHaaInit uni0640.05;
- sub uni0772.medi_SadHaaInit by uni0772.medi_SadHaaInit uni0640.05;
- sub uni0686.medi_SadHaaInit by uni0686.medi_SadHaaInit uni0640.05;
-} AboveHaaTatweel;
-
-feature calt {
- lookupflag IgnoreMarks;
- sub [@aHaa.medi_FaaHaaInit @aHaa.medi_SadHaaInit]' lookup AboveHaaTatweel
- [@aBaa.medi_BaaNonFina @aBaa.medi_BaaRaaFina];
-} calt;
-
-
-// When an initial Baa is followed by Alef, the dot clashes with the Hamza below
-// Alef, Also the marks above the Baa clash with the Alef, so we replace the Baa
-// with a wider variant.
-feature calt {
- lookupflag IgnoreMarks;
- sub @aBaa.init' lookup BaaInitWide @aAlf.fina;
-} calt;
-
-// If the Alef has no Hamza below, or there is no marks above the Baa, revert to
-// the original, non-wide form (notice there is no IgnoreMarks flag).
-feature calt {
- sub [@aBaa.init_Wide]'
- [uni0622.fina uni0623.fina uni0627.fina uni0671.fina uni0672.fina
- uni0675.fina uni0773.fina uni0774.fina]
- by [@aBaa.init];
-} calt;
-
-// Replace teh init following teh/them medi by a teh init with two vertical
-// dots
-// XXX: use a different glyph for PDF text extraction
-feature calt {
- lookupflag IgnoreMarks;
- script arab;
- language ARA;
- sub uni062A.init_BaaBaaIsol'
- [uni062A.medi_BaaBaaInit uni062B.medi_BaaBaaInit]
- by uni067A.init_BaaBaaIsol;
-
- sub uni062A.init_High'
- [uni062A.medi_High uni062B.medi_High]
- by uni067A.init_High;
-} calt;