From 6809d252625db157971fb78c567f15732801d323 Mon Sep 17 00:00:00 2001 From: handa Date: Fri, 17 Sep 2010 11:40:54 +0000 Subject: [PATCH] Fix for the case of failed LAM-ALEF ligature. Handle positioning of multiple diacritcs. Fix typo. --- FLT/ARAB-OTF-NO-GPOS.flt | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/FLT/ARAB-OTF-NO-GPOS.flt b/FLT/ARAB-OTF-NO-GPOS.flt index 84a7ca3..83b4365 100644 --- a/FLT/ARAB-OTF-NO-GPOS.flt +++ b/FLT/ARAB-OTF-NO-GPOS.flt @@ -59,8 +59,8 @@ (category ;; D: Dual-joining (beh, teh, etc. & zwj) except for LAMs ;; L: LAMs - ;; R: Right-joining (alef, dal, thal, reh, zain) except for AREFs - ;; A: AREFs + ;; R: Right-joining (alef, dal, thal, reh, zain) except for ALEFs + ;; A: ALEFs ;; U: Non-joining (Hamza, etc. & zwnj) ;; T: Transparent (combining marks) (0x060B 0x060F ?U) @@ -129,7 +129,7 @@ (cond (".*X.*" (cond ("[DLRAUX]T*" < = * >) ("." =)) *) - ;; LAM-AREF pattern. Move diacritcs on LAM after AREF. This is to + ;; LAM-ALEF pattern. Move diacritcs on LAM after ALEF. This is to ;; avoid loosing surrounding separators by OTF's liga or rlig ;; features in the next step. ("L(T*)A.*" @@ -165,14 +165,14 @@ ;; Incorrect leading diacritcs. ("(T+)(.*)" - (1 (cond ((font-facilty 0x25CC) + (1 (cond ((font-facility 0x25CC) (cond ("." 0x25CC | = |)) *) ("." 0xE800 | = |)) *) (2 disjoin)))) (join (cond - ;; LAM-AREF pattern. See the above comment. + ;; LAM-ALEF pattern. See the above comment. ("L(T*)A.*" (cond ("(.)(T*)(A)(T*)([DLRA].*)" @@ -206,7 +206,7 @@ (disjoin (cond - ;; LAM-AREF pattern. See the above comment. + ;; LAM-ALEF pattern. See the above comment. ("L(T*)A.*" (cond ("(.)(T*)(A)(T*)([DLRA].*)" @@ -251,15 +251,24 @@ (cond ("C ([^ ]) " ; dummy dotted-circle [ (1 =) ]) - ("([^ ]) ([^ ]+)? ([^ ]+)? " ; LAM-AREF ligature - < (1 =) (2 Br.Br = *) (3 Bl.Bl = *) >) + ("([^ ]) ([^ ]+)? ([^ ]+)? " ; LAM-ALEF ligature + < (1 =) (2 right-combining) (3 left-combining) >) ("([^ ]) ([^ ]+)? " - < (1 =) (2 Bc.Bc = *) >) - ("([^ ])([^ ]) ([^ ]+)? ([^ ]+)? " ; failed LAM-AREF ligature - (1 < =) (3 Br.Br = *) > (2 < = ) (4 Bl.Bl = *) >) + < (1 =) (2 center-combining) >) + ("([^ ])([^ ]) ([^ ]+)? ([^ ]+)? " ; failed LAM-ALEF ligature + (1 < =) (3 right-combining = *) > (2 < = ) (4 left-combining = *) >) ("[^ ]" =) (" ")) - *)) + *) + + (right-combining + (cond ("." Br.Br =)) *) + + (left-combining + (cond ("." Bl.Bl =)) *) + + (center-combining + (cond ("." Bc.Bc =)) *)) ;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 ;; National Institute of Advanced Industrial Science and Technology (AIST) -- 1.7.10.4