Fix glyph substitutions for U+1014 and
authorhanda <handa>
Wed, 1 Feb 2006 02:45:51 +0000 (02:45 +0000)
committerhanda <handa>
Wed, 1 Feb 2006 02:45:51 +0000 (02:45 +0000)
U+101B.  Adjust position of wide subconsonants.

MYMR-MYAZEDI.flt

index 35cab64..f802cde 100644 (file)
@@ -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 = *) > |)
 
  (0xE1A1 0xE1B0 ?b)
  (0xE1B1 0xE1BA ?B)
  (0xE1D1 0xE1F1 ?B)
+ (0xE20D       ?b)
  (0xE390       ?K)                     ; Kinzi
  )
 
     (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)
       ("." =))
      *)
     |)
-   ((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: