(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)
(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.*"
;; 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].*)"
(disjoin
(cond
- ;; LAM-AREF pattern. See the above comment.
+ ;; LAM-ALEF pattern. See the above comment.
("L(T*)A.*"
(cond
("(.)(T*)(A)(T*)([DLRA].*)"
(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)