From 5d7b33c8c9a590d81aa414e5e45db53ff10c6417 Mon Sep 17 00:00:00 2001 From: ntakahas Date: Mon, 1 Mar 2010 12:46:44 +0000 Subject: [PATCH] Use font-facility to check U+25CC's availability. --- FLT/BNG2-OTF.flt | 32 ++++++++++++++++++++++++-------- FLT/DEV2-OTF.flt | 18 ++++++++++++++---- FLT/GJR2-OTF.flt | 18 ++++++++++++++---- FLT/GUR2-OTF.flt | 19 +++++++++++++++---- FLT/KND2-OTF.flt | 38 +++++++++++++++++++++++++++++++++----- FLT/MLM2-OTF.flt | 40 ++++++++++++++++++++++++++++++++-------- FLT/ORY2-OTF.flt | 36 ++++++++++++++++++++++++++++-------- FLT/TEL2-OTF.flt | 18 +++++++++++++++--- FLT/TML2-OTF.flt | 32 ++++++++++++++++++++++++-------- 9 files changed, 199 insertions(+), 52 deletions(-) diff --git a/FLT/BNG2-OTF.flt b/FLT/BNG2-OTF.flt index 62e1361..5fb3706 100644 --- a/FLT/BNG2-OTF.flt +++ b/FLT/BNG2-OTF.flt @@ -100,7 +100,7 @@ (cond ;; Syllables with an independent vowel ("(RH)?Vn?(J?H[CR])?m?b?p?n?a?A?" - < | (0 = *) | >) + < | = * | >) ;; KHANDA-TA combines only with reph. ("(RH)?(T)" @@ -108,15 +108,31 @@ ;; Consonant-based syllables ("([CR]n?J?HJ?)*[CR]n?(H[NJ]?|m?([NJ]?b)?p?n?)a?A?" - < | (0 = *) | >) + < | = * | >) + + ;; Two-part vowel signs + ((0x09C7 0x09BE) + (cond + ((font-facility 0x25CC) < 0x09C7 0x25CC 0x09BE >) + (".+" < 0x09CB >))) + ((0x09C7 0x09D7) + (cond + ((font-facility 0x25CC) < 0x09C7 0x25CC 0x09D7 >) + (".+" < 0x09CC >))) ;; Combining marks are displayed with a DOTTED CIRCLE. - ("n|H|b|p|a|A|JH[CR]" - < 0x25CC (0 :otf=bng2=blwf,pstf+) >) - - ;; Pre-base matra - ("(m)(p)?" - < (1 =) 0x25CC (2 =) >) + ("(m)" + (cond + ((font-facility 0x25CC) < = 0x25CC >) + ("." [ = ]))) + ("[nHbpaA]" + (cond + ((font-facility 0x25CC) < 0x25CC = >) + ("." [ = ]))) + ("JH[CR]" + (cond + ((font-facility 0x25CC) < 0x25CC :otf=bng2=blwf,pstf+ >) + (".+" [ :otf=bng2=blwf,pstf+ ]))) ("." =)) *)) diff --git a/FLT/DEV2-OTF.flt b/FLT/DEV2-OTF.flt index 01ba062..cda2083 100644 --- a/FLT/DEV2-OTF.flt +++ b/FLT/DEV2-OTF.flt @@ -108,15 +108,25 @@ (cond ;; Syllables with an independent vowel ("(RH)?Vn?(J?HR)?m?u?b?p?n?a?(Ss?|sS?)?A?" - < | (0 = *) | >) + < | = * | >) ;; Consonant-based syllables ("([CR]n?J?HJ?)*[CR]n?(H[NJ]?|m?u?b?p?n?)a?(Ss?|sS?)?A?" - < | (0 = *) | >) + < | = * | >) ;; Combining marks are displayed with a DOTTED CIRCLE. - ("(m)|(n|H|u|b|p|a|S|s|A|JHR)" - < (1 =) 0x25CC (2 :otf=dev2=blwf+) >) + ("m" + (cond + ((font-facility 0x25CC) < = 0x25CC >) + ("." [ = ]))) + ("[nHubpaSsA]" + (cond + ((font-facility 0x25CC) < 0x25CC = >) + ("." [ = ]))) + ("JHR" + (cond + ((font-facility 0x25CC) < 0x25CC :otf=dev2=blwf+ >) + (".+" [ :otf=dev2=blwf+ ]))) ("." =)) *)) diff --git a/FLT/GJR2-OTF.flt b/FLT/GJR2-OTF.flt index 422837a..c8327a1 100644 --- a/FLT/GJR2-OTF.flt +++ b/FLT/GJR2-OTF.flt @@ -56,15 +56,25 @@ (cond ;; Syllables with an independent vowel ("(RH)?Vn?(J?HR)?m?u?b?p?n?a?A?" - < | (0 = *) | >) + < | = * | >) ;; Consonant-based syllables ("([CR]n?J?HJ?)*[CR]n?(H[NJ]?|m?u?b?p?n?)a?A?" - < | (0 = *) | >) + < | = * | >) ;; Combining marks are displayed with a DOTTED CIRCLE. - ("(m)|(n|H|u|b|p|a|A|JHR)" - < | (1 =) 0x25CC (2 :otf=gjr2=blwf+) | >) + ("m" + (cond + ((font-facility 0x25CC) < = 0x25CC >) + ("." [ = ]))) + ("[nHubpaA]" + (cond + ((font-facility 0x25CC) < 0x25CC = >) + ("." [ = ]))) + ("JHR" + (cond + ((font-facility 0x25CC) < 0x25CC :otf=gjr2=blwf+ >) + (".+" [ :otf=gjr2=blwf+ ]))) ("." =)) *)) diff --git a/FLT/GUR2-OTF.flt b/FLT/GUR2-OTF.flt index 45eb9b3..28ed009 100644 --- a/FLT/GUR2-OTF.flt +++ b/FLT/GUR2-OTF.flt @@ -42,6 +42,7 @@ (generator (0 (cond + ;; Compose a consonant and a nukta ((0x0A32 0x0A3C) 0x0A33) ((0x0A38 0x0A3C) 0x0A36) ((0x0A16 0x0A3C) 0x0A59) @@ -58,15 +59,25 @@ (cond ;; Consonant-based syllables ("(Cn?J?HJ?)*Cn?(H[NJ]?|m?u?b?p?n?)a?A?" - < | (0 = *) | >) + < | = * | >) ;; Syllables with an independent vowel ("Vn?(J?HC)?m?u?b?p?n?a?A?" - < | (0 = *) | >) + < | = * | >) ;; Combining marks are displayed with a DOTTED CIRCLE. - ("(m)|(n|H|u|b|p|a|A|JHC)" - < (1 =) 0x25CC (2 :otf=gur2=blwf,pstf+) >) + ("m" + (cond + ((font-facility 0x25CC) < = 0x25CC >) + ("." [ = ]))) + ("[nHubpaA]" + (cond + ((font-facility 0x25CC) < 0x25CC = >) + ("." [ = ]))) + ("JHC" + (cond + ((font-facility 0x25CC) < 0x25CC :otf=gur2=blwf,pstf+ >) + (".+" [ :otf=gur2=blwf,pstf+ ]))) ("." =)) *)) diff --git a/FLT/KND2-OTF.flt b/FLT/KND2-OTF.flt index 9ca19d9..fca711c 100644 --- a/FLT/KND2-OTF.flt +++ b/FLT/KND2-OTF.flt @@ -62,7 +62,7 @@ (generator (0 (cond - ;; Decompose two-part and three-part vowel signs. + ;; Decompose multi-part vowel signs. ((0x0CC0) 0x0CBF 0x0CD5) ((0x0CC7) @@ -84,15 +84,43 @@ (cond ;; Syllables with an independent vowel ("(RH)?Vn?(J?H[CR])?b?b?a?A?" - < | (0 = *) | >) + < | = * | >) ;; Consonant-based syllables ("([CR]n?J?HJ?)*[CR]n?(H[NJ]?|b?b?a?n?)A?" - < | (0 = *) | >) + < | = * | >) + + ;; Multi-part vowel signs + ((0x0CBF 0x0CD5) + (cond + ((font-facility 0x25CC) < 0x25CC 0x0CBF 0x0CD5 >) + (".+" < 0x0CC0 >))) + ((0x0CC6 0x0CD5) + (cond + ((font-facility 0x25CC) < 0x25CC 0x0CC6 0x0CD5 >) + (".+" < 0x0CC7 >))) + ((0x0CC6 0x0CD6) + (cond + ((font-facility 0x25CC) < 0x25CC 0x0CC6 0x0CD6 >) + (".+" < 0x0CC8 >))) + ((0x0CC6 0x0CC2 0x0CD5) + (cond + ((font-facility 0x25CC) < 0x25CC 0x0CC6 0x0CC2 0x0CD5 >) + (".+" < 0x0CCB >))) + ((0x0CC6 0x0CC2) + (cond + ((font-facility 0x25CC) < 0x25CC 0x0CC6 0x0CC2 >) + (".+" < 0x0CCA >))) ;; Combining marks are displayed with a DOTTED CIRCLE. - ("n|H|bb?a?|a|A|JH[CR]" - < 0x25CC (0 :otf=knd2=blwf+) >) + ("[nHbaA]" + (cond + ((font-facility 0x25CC) < 0x25CC = >) + ("." [ = ]))) + ("JH[CR]" + (cond + ((font-facility 0x25CC) < 0x25CC :otf=knd2=blwf+ >) + (".+" [ :otf=knd2=blwf+ ]))) ("." =)) *)) diff --git a/FLT/MLM2-OTF.flt b/FLT/MLM2-OTF.flt index 7743880..f7432b1 100644 --- a/FLT/MLM2-OTF.flt +++ b/FLT/MLM2-OTF.flt @@ -85,19 +85,43 @@ (cond ;; Consonant-based syllables ("(CJ?HJ?)*C(H[NJ]?|m?b?p?)A?" - < | (0 = *) | >) + < | = * | >) ;; Syllables with an independent vowel ("V(J?HC)?m?b?p?A?" - < | (0 = *) | >) + < | = * | >) + + ;; Two-part vowel signs + ((0x0D46 0x0D3E) + (cond + ((font-facility 0x25CC) < 0x0D46 0x25CC 0x0D3E >) + (".+" < 0x0D4A >))) + ((0x0D47 0x0D3E) + (cond + ((font-facility 0x25CC) < 0x0D47 0x25CC 0x0D3E >) + (".+" < 0x0D4B >))) + ((0x0D46 0x0D57) + (cond + ((font-facility 0x25CC) < 0x0D46 0x25CC 0x0D57 >) + (".+" < 0x0D4C >))) ;; Combining marks are displayed with a DOTTED CIRCLE. - ("H|b|p|A|JHC" - < 0x25CC (0 :otf=mlm2=pref,blwf,pstf+) >) - - ;; Pre-base matra - ("(m)(p)?" - < (1 =) 0x25CC (2 =) >) + ("(m)" + (cond + ((font-facility 0x25CC) < = 0x25CC >) + ("." [ = ]))) + ("[HbpA]" + (cond + ((font-facility 0x25CC) < 0x25CC = >) + ("." [ = ]))) + ((0x200D 0x0D4D 0x0D30) + (cond + ((font-facility 0x25CC) < :otf=mlm2=pref+ 0x25CC >) + (".+" [ :otf=mlm2=pref+ ]))) + ("JHC" + (cond + ((font-facility 0x25CC) < 0x25CC :otf=mlm2=blwf,pstf+ >) + (".+" [ :otf=mlm2=blwf,pstf+ ]))) ("." =)) *)) diff --git a/FLT/ORY2-OTF.flt b/FLT/ORY2-OTF.flt index 30cf52f..3df404c 100644 --- a/FLT/ORY2-OTF.flt +++ b/FLT/ORY2-OTF.flt @@ -70,19 +70,39 @@ (cond ;; Syllables with an independent vowel ("(RH)?Vn?(J?H[CR])?m?u?b?p?n?a?A?" - < | (0 = *) | >) + < | = * | >) ;; Consonant-based syllables ("([CR]n?J?HJ?)*[CR]n?(H[NJ]?|m?u?b?p?n?)a?A?" - < | (0 = *) | >) + < | = * | >) + + ;; Two-part vowel signs + ((0x0B47 0x0B56) + (cond + ((font-facility 0x25CC) < 0x0B47 0x25CC 0x0B56 >) + (".+" < 0x0B48 >))) + ((0x0B47 0x0B3E) + (cond + ((font-facility 0x25CC) < 0x0B47 0x25CC 0x0B3E >) + (".+" < 0x0B4B >))) + ((0x0B47 0x0B57) + (cond + ((font-facility 0x25CC) < 0x0B47 0x25CC 0x0B57 >) + (".+" < 0x0B4C >))) ;; Combining marks are displayed with a DOTTED CIRCLE. - ("n|H|u|b|p|a|A|JH[CR]" - < 0x25CC (0 :otf=bng2=blwf,pstf+) >) - - ;; Pre-base matra - ("(m)([up])?" - < (1 =) 0x25CC (2 =) >) + ("m" + (cond + ((font-facility 0x25CC) < = 0x25CC >) + ("." [ = ]))) + ("[nHubpaA]" + (cond + ((font-facility 0x25CC) < 0x25CC = >) + ("." [ = ]))) + ("JH[CR]" + (cond + ((font-facility 0x25CC) < 0x25CC :otf=ory2=blwf,pstf+ >) + (".+" [ :otf=ory2=blwf,pstf+ ]))) ("." =)) *)) diff --git a/FLT/TEL2-OTF.flt b/FLT/TEL2-OTF.flt index 20b10b8..ff41512 100644 --- a/FLT/TEL2-OTF.flt +++ b/FLT/TEL2-OTF.flt @@ -48,7 +48,7 @@ (generator (0 (cond - ;; Decompose two-part vowels. + ;; Decompose two-part vowel signs. ((0x0C48) 0x0C46 0x0C56) @@ -70,9 +70,21 @@ ("(V)(J?HC)?(u?b?p?A?)" < | (1 =) (2 :otf=tel2=locl,blwf+) (3 = *) | >) + ;; Two-part vowel signs + ((0x0C46 0x0C56) + (cond + ((font-facility 0x25CC) < 0x25CC 0x0C46 0x0C56 >) + (".+" < 0x0C48 >))) + ;; Combining marks are displayed with a DOTTED CIRCLE. - ("H|ub?|b|p|A|JHC" - < 0x25CC (0 :otf=tel2=blwf+) >) + ("[HubpA]" + (cond + ((font-facility 0x25CC) < 0x25CC = >) + ("." [ = ]))) + ("JHC" + (cond + ((font-facility 0x25CC) < 0x25CC :otf=tel2=blwf+ >) + (".+" [ :otf=tel2=blwf+ ]))) ("." =)) *)) diff --git a/FLT/TML2-OTF.flt b/FLT/TML2-OTF.flt index e1c5e77..ebab27d 100644 --- a/FLT/TML2-OTF.flt +++ b/FLT/TML2-OTF.flt @@ -65,19 +65,35 @@ (cond ;; Consonant-based syllables ("(CJ?HJ?)*C(H[NJ]?|m?p?)a?" - < | (0 :otf=tml2=locl,akhn,half,cjct+) | >) + < | :otf=tml2=locl,akhn,half,cjct+ | >) ;; Syllables with an independent vowel ("Vm?p?a?" - < | (0 = *) | >) + < | = * | >) + + ;; Two-part vowel signs + ((0x0BC6 0x0BBE) + (cond + ((font-facility 0x25CC) < 0x0BC6 0x25CC 0x0BBE >) + (".+" < 0x0BCA >))) + ((0x0BC7 0x0BBE) + (cond + ((font-facility 0x25CC) < 0x0BC7 0x25CC 0x0BBE >) + (".+" < 0x0BCB >))) + ((0x0BC6 0x0BD7) + (cond + ((font-facility 0x25CC) < 0x0BC6 0x25CC 0x0BD7 >) + (".+" < 0x0BCC >))) ;; Combining marks are displayed with a DOTTED CIRCLE. - ("H|p|a" - < 0x25CC (0 =) >) - - ;; Pre-base matra - ("(m)(p)?" - < (1 =) 0x25CC (2 =) >) + ("m" + (cond + ((font-facility 0x25CC) < = 0x25CC >) + ("." [ = ]))) + ("[Hpa]" + (cond + ((font-facility 0x25CC) < 0x25CC = >) + ("." [ = ]))) ("." =)) *)) -- 1.7.10.4