From 1ee785e787ce3dbcd1e99b24d4b37c5d0aeae5fa Mon Sep 17 00:00:00 2001 From: handa Date: Wed, 1 Feb 2006 02:45:51 +0000 Subject: [PATCH] Fix glyph substitutions for U+1014 and U+101B. Adjust position of wide subconsonants. --- MYMR-MYAZEDI.flt | 99 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 74 insertions(+), 25 deletions(-) diff --git a/MYMR-MYAZEDI.flt b/MYMR-MYAZEDI.flt index 35cab64..f802cde 100644 --- a/MYMR-MYAZEDI.flt +++ b/MYMR-MYAZEDI.flt @@ -65,8 +65,8 @@ ;; described in Table 10-3 of the Unicode Standard 4.0 except for ;; Kinzi which is encoded by the sequence "U+1004 U+1039 U+200D". ;; - ;;<-1-> <---------2--------><--4--><--6---> <7-> - ;; <---3---> <5-> + ;;<-1-><---------2--------><--4--><--6---> <7-> + ;; <---3---> <5-> ("(KHJ)([CcnKMr](H[CcnK])?)((HM)*)(V*A?H?)N?(S*)" | < (1 0xE390) (2 consonant) (4 remove-halant *) (6 = *) (7 = *) > |) @@ -217,6 +217,7 @@ (0xE1A1 0xE1B0 ?b) (0xE1B1 0xE1BA ?B) (0xE1D1 0xE1F1 ?B) + (0xE20D ?b) (0xE390 ?K) ; Kinzi ) @@ -253,26 +254,27 @@ (1 (cond ;; Consonant substituion. - ((0x1009 0x1039) 0xE009 0x1039) + ((0x1009 0x1039) 0x1025 0x1039) ((0x1009 0xE005) 0xE109 Br>5Bl 0xE005) - ((0x101B 0x102F) 0xE01B 0x102F) - ((0x101B 0x1030) 0xE01B 0x1030) - ((0x1014 0x102F) 0xE140 0x102F) - ((0x1014 0x1030) 0xE140 0x1030) - - ;; Sign substituion. ; - ((0x102F 0x1037) 0x102F 0xE137) - ((0x1030 0x1037) 0x1030 0xE137) - ((0xE01D 0x1037) 0xE01D 0xE137) - ((0xE1A1 0x1036 0x1037) 0xE1A1 0x1036 0xE137) - ((0xE1A1 0x1032 0x1037) 0xE1A1 0x1032 0xE137) - ((0xE01D 0x1032 0x1037) 0xE01D 0x1032 0xE137) - ((0xE01D 0x1036 0x1037) 0xE01D 0x1036 0xE137) - - ;; Vowel substituion. ; +;; ((0x101B 0x102F) 0xE01B 0x102F) +;; ((0x101B 0x1030) 0xE01B 0x1030) +;; ((0x1014 0x102F) 0xE140 0x102F) +;; ((0x1014 0x1030) 0xE140 0x1030) + +;; ;; Sign substituion. +;; ((0x102F 0x1037) 0x102F 0xE137) +;; ((0x1030 0x1037) 0x1030 0xE137) +;; ((0xE01D 0x1037) 0xE01D 0xE137) +;; ((0xE1A1 0x1036 0x1037) 0xE1A1 0x1036 0xE137) +;; ((0xE1A1 0x1032 0x1037) 0xE1A1 0x1032 0xE137) +;; ((0xE01D 0x1032 0x1037) 0xE01D 0x1032 0xE137) +;; ((0xE01D 0x1036 0x1037) 0xE01D 0x1036 0xE137) + + ;; Vowel substituion. ((0xE1F1 0x102F) 0xE1F2) ((0xE1F1 0x102D 0x102F) 0xE1F2 0x102D) ((0xE1F1 0x102E 0x102F) 0xE1F2 0x102E) + ((0xE1F1 0x1032 0x102F) 0xE1F2 0x1032) ("BcK?A" = = = =) ("cAH" = 0xE02D) ("cA" = 0xE02C) @@ -287,38 +289,85 @@ ("." =)) *) |) - ((0x200C) 0x4E tc.cc 0x48) ("." =)) *)) +;; 5th stage +;; Adjust below characters (U+102F, U+1037, etc) + (category (0x1000 0x107F ?O) + (0x200C 0x200D ?O) (0xE000 0xE3FF ?O) - (0x1014 ?T) ; Tall consonant + (0x1014 ?T) ; tall consonant (substituted) (0x101B ?T) - (0x102F ?B) ; Below position + (0x102F 0x1030 ?B) ; below position (substitute tall one) + (0x1037 ?b) ; shift to right (0xE01D ?B) (0xE1A1 ?B) (0xE1D1 ?B) + (0xE1B1 0xE1BA ?L) (0xE1F1 0xE1F2 ?B) + (0xE2F1 0xE2F2 ?L) ; has lower part ) (generator (0 (cond (" ([^ ]*) " + | (1 (cond - ("(T)(B)" + ("(T)(B)([OL])?(b)?" (1 (cond ((0x1014) 0xE140) ((0x101B) 0xE01B))) - (2 =)) + (2 =) + (3 = *) + (4 0xE137)) + ("([TBL])(O*)?(b)" + (1 =) (2 = *) (3 0xE137)) ("." =)) - *)) + *) + |) + ("OO*" = *) ("." =)) *)) +;; 6th stage +;; Adjust conbination of normal consonant and wide subconsonant. + +(category + (0x1000 0x107F ?O) + (0x200C 0x200D ?O) + (0xE000 0xE3FF ?O) + (0x1001 0x1002 ?n) + (0x1004 0x1005 ?n) + (0x1007 ?n) + (0x100E ?n) + (0x1012 0x1013 ?n) + (0x1015 0x1017 ?n) + (0x1019 ?n) + (0x101D ?n) + (0xE000 ?w) + (0xE003 ?w) + (0xE006 ?w) + (0xE00C ?w) + (0xE00F ?w) + (0xE010 0xE011 ?w) + (0xE018 ?w)) + +(generator + (0 + (cond + (" (n)(w)([^ ]*) " + \[ (1 =) (2 Br>17Bl =) (3 = *)) + (" ([^ ]*) " + (1 = *)) + ("." + =)) + *)) + ;; Local Variables: -;; mode: lisp +;; mode: emacs-lisp ;; coding: utf-8 ;; End: -- 1.7.10.4