-0020 037A FC5E FC5F FC60 FC61 FC62 FC63 FE70 FE72 FE74 FE76 FE78 FE7A FE7C FE7E
0041 00C0 00C1 00C2 00C3 00C4 00C5 0100 0102 0104 01CD 0200 0202 0226 1E00 1EA0 1EA2 FF21
-0042 1E02 1E04 1E06 212C FF22
-0043 00C7 0106 0108 010A 010C 2102 212D FF23
-0044 010E 01C4 01C5 01F1 01F2 1E0A 1E0C 1E0E 1E10 1E12 FF24
+0042 0181 0182 1E02 1E04 1E06 212C FF22
+0043 00C7 0106 0108 010A 010C 0187 2102 212D FF23
+0044 010E 0110 018A 018B 01C4 01C5 01F1 01F2 1E0A 1E0C 1E0E 1E10 1E12 FF24
0045 00C8 00C9 00CA 00CB 0112 0114 0116 0118 011A 0204 0206 0228 1E18 1E1A 1EB8 1EBA 1EBC 2130 FF25
-0046 1E1E 2131 FF26
-0047 011C 011E 0120 0122 01E6 01F4 1E20 FF27
-0048 0124 021E 1E22 1E24 1E26 1E28 1E2A 210B 210C 210D FF28
-0049 00CC 00CD 00CE 00CF 0128 012A 012C 012E 0130 0132 01CF 0208 020A 1E2C 1EC8 1ECA 2110 2111 FF29
+0046 0191 1E1E 2131 FF26
+0047 011C 011E 0120 0122 0193 01E4 01E6 01F4 1E20 FF27
+0048 0124 0126 021E 1E22 1E24 1E26 1E28 1E2A 210B 210C 210D FF28
+0049 00CC 00CD 00CE 00CF 0128 012A 012C 012E 0130 0132 0197 01CF 0208 020A 1E2C 1EC8 1ECA 2110 2111 FF29
004A 0134 FF2A
-004B 0136 01E8 1E30 1E32 1E34 212A FF2B
-004C 0139 013B 013D 013F 01C7 01C8 1E36 1E3A 1E3C 2112 FF2C
+004B 0136 0198 01E8 1E30 1E32 1E34 212A FF2B
+004C 0139 013B 013D 013F 0141 01C7 01C8 1E36 1E3A 1E3C 2112 FF2C
004D 1E3E 1E40 1E42 2133 FF2D
-004E 00D1 0143 0145 0147 01CA 01CB 01F8 1E44 1E46 1E48 1E4A 2115 FF2E
-004F 00D2 00D3 00D4 00D5 00D6 014C 014E 0150 01A0 01D1 01EA 020C 020E 022E 1ECC 1ECE FF2F
-0050 1E54 1E56 2119 FF30
+004E 00D1 0143 0145 0147 019D 01CA 01CB 01F8 1E44 1E46 1E48 1E4A 2115 FF2E
+004F 00D2 00D3 00D4 00D5 00D6 00D8 014C 014E 0150 019F 01A0 01D1 01EA 020C 020E 022E 1ECC 1ECE FF2F
+0050 01A4 1E54 1E56 2119 FF30
0051 211A FF31
0052 0154 0156 0158 0210 0212 1E58 1E5A 1E5E 211B 211C 211D FF32
0053 015A 015C 015E 0160 0218 1E60 1E62 FF33
-0054 0162 0164 021A 1E6A 1E6C 1E6E 1E70 FF34
+0054 0162 0164 0166 01AC 01AE 021A 1E6A 1E6C 1E6E 1E70 FF34
0055 00D9 00DA 00DB 00DC 0168 016A 016C 016E 0170 0172 01AF 01D3 0214 0216 1E72 1E74 1E76 1EE4 1EE6 FF35
-0056 1E7C 1E7E FF36
+0056 01B2 1E7C 1E7E FF36
0057 0174 1E80 1E82 1E84 1E86 1E88 FF37
0058 1E8A 1E8C FF38
-0059 00DD 0176 0178 0232 1E8E 1EF2 1EF4 1EF6 1EF8 FF39
-005A 0179 017B 017D 1E90 1E92 1E94 2124 2128 FF3A
+0059 00DD 0176 0178 01B3 0232 1E8E 1EF2 1EF4 1EF6 1EF8 FF39
+005A 0179 017B 017D 01B5 0224 1E90 1E92 1E94 2124 2128 FF3A
0061 00AA 00E0 00E1 00E2 00E3 00E4 00E5 0101 0103 0105 01CE 0201 0203 0227 1E01 1E9A 1EA1 1EA3 FF41
-0062 1E03 1E05 1E07 FF42
-0063 00E7 0107 0109 010B 010D FF43
-0064 010F 01C6 01F3 1E0B 1E0D 1E0F 1E11 1E13 FF44
+0062 0180 0183 0253 1E03 1E05 1E07 FF42
+0063 00E7 0107 0109 010B 010D 0188 0255 FF43
+0064 010F 0111 018C 01C6 01F3 0256 0257 1E0B 1E0D 1E0F 1E11 1E13 FF44
0065 00E8 00E9 00EA 00EB 0113 0115 0117 0119 011B 0205 0207 0229 1E19 1E1B 1EB9 1EBB 1EBD 212F FF45
-0066 1E1F FB00 FB01 FB02 FB03 FB04 FF46
-0067 011D 011F 0121 0123 01E7 01F5 1E21 210A FF47
-0068 0125 021F 02B0 1E23 1E25 1E27 1E29 1E2B 1E96 210E FF48
-0069 00EC 00ED 00EE 00EF 0129 012B 012D 012F 0133 01D0 0209 020B 1E2D 1EC9 1ECB 2139 FF49
-006A 0135 01F0 02B2 FF4A
-006B 0137 01E9 1E31 1E33 1E35 FF4B
-006C 013A 013C 013E 0140 01C9 02E1 1E37 1E3B 1E3D 2113 FF4C
-006D 1E3F 1E41 1E43 FF4D
-006E 00F1 0144 0146 0148 01CC 01F9 1E45 1E47 1E49 1E4B 207F FF4E
-006F 00BA 00F2 00F3 00F4 00F5 00F6 014D 014F 0151 01A1 01D2 01EB 020D 020F 022F 1ECD 1ECF 2134 FF4F
-0070 1E55 1E57 FF50
-0071 FF51
-0072 0155 0157 0159 0211 0213 02B3 1E59 1E5B 1E5F FF52
-0073 015B 015D 015F 0161 017F 0219 02E2 1E61 1E63 FB06 FF53
-0074 0163 0165 021B 1E6B 1E6D 1E6F 1E71 1E97 FF54
+0066 0192 1E1F FB00 FB01 FB02 FB03 FB04 FF46
+0067 011D 011F 0121 0123 01E5 01E7 01F5 0260 1E21 210A FF47
+0068 0125 0127 021F 0266 02B0 1E23 1E25 1E27 1E29 1E2B 1E96 210E FF48
+0069 00EC 00ED 00EE 00EF 0129 012B 012D 012F 0133 01D0 0209 020B 0268 1E2D 1EC9 1ECB 2139 FF49
+006A 0135 01F0 029D 02B2 FF4A
+006B 0137 0199 01E9 1E31 1E33 1E35 FF4B
+006C 013A 013C 013E 0140 0142 019A 01C9 026B 026C 026D 02E1 1E37 1E3B 1E3D 2113 FF4C
+006D 0271 1E3F 1E41 1E43 FF4D
+006E 00F1 0144 0146 0148 019E 01CC 01F9 0272 0273 1E45 1E47 1E49 1E4B 207F FF4E
+006F 00BA 00F2 00F3 00F4 00F5 00F6 00F8 014D 014F 0151 01A1 01D2 01EB 020D 020F 022F 1ECD 1ECF 2134 FF4F
+0070 01A5 1E55 1E57 FF50
+0071 02A0 FF51
+0072 0155 0157 0159 0211 0213 027C 027D 027E 02B3 1E59 1E5B 1E5F FF52
+0073 015B 015D 015F 0161 017F 0219 0282 02E2 1E61 1E63 FB06 FF53
+0074 0163 0165 0167 01AB 01AD 021B 0288 1E6B 1E6D 1E6F 1E71 1E97 FF54
0075 00F9 00FA 00FB 00FC 0169 016B 016D 016F 0171 0173 01B0 01D4 0215 0217 1E73 1E75 1E77 1EE5 1EE7 FF55
-0076 1E7D 1E7F FF56
+0076 028B 1E7D 1E7F FF56
0077 0175 02B7 1E81 1E83 1E85 1E87 1E89 1E98 FF57
0078 02E3 1E8B 1E8D FF58
-0079 00FD 00FF 0177 0233 02B8 1E8F 1E99 1EF3 1EF5 1EF7 1EF9 FF59
-007A 017A 017C 017E 1E91 1E93 1E95 FF5A
+0079 00FD 00FF 0177 01B4 0233 02B8 1E8F 1E99 1EF3 1EF5 1EF7 1EF9 FF59
+007A 017A 017C 017E 01B6 0225 0290 0291 1E91 1E93 1E95 FF5A
00C2 1EA4 1EA6 1EA8 1EAA
00C4 01DE
00C5 01FA 212B
0229 1E1D
022E 0230
022F 0231
+0259 025A
+025C 025D
+0262 029B
0263 02E0
0266 02B1
-0279 02B4
+026F 0270
+0279 027A 027B 02B4
027B 02B5
0281 02B6
-0292 01EF
+0283 0286
+0292 01BA 01EF 0293
+0294 02A1
0295 02E4
+0296 01BE
+02A3 02A5
02BC 0149
0386 1FBB
0388 1FC9
03D2 03D3 03D4
0406 0407
0410 04D0 04D2
-0413 0403
+0413 0403 0490 0492 0494
0415 0400 0401 04D6
-0416 04C1 04DC
-0417 04DE
+0416 0496 04C1 04DC
+0417 0498 04DE
0418 040D 0419 04E2 04E4
-041A 040C
+041A 040C 049A 049C 049E 04C3
+041D 04A2 04C7
041E 04E6
+041F 04A6
+0420 048E
+0421 04AA
+0422 04AC
0423 040E 04EE 04F0 04F2
-0427 04F4
+0425 04B2
+0427 04B6 04B8 04F4
042B 04F8
042D 04EC
0430 04D1 04D3
-0433 0453
+0433 0453 0491 0493 0495
0435 0450 0451 04D7
-0436 04C2 04DD
-0437 04DF
+0436 0497 04C2 04DD
+0437 0499 04DF
0438 0439 045D 04E3 04E5
-043A 045C
+043A 045C 049B 049D 049F 04C4
+043D 04A3 04C8
043E 04E7
+043F 04A7
+0440 048F
+0441 04AB
+0442 04AD
0443 045E 04EF 04F1 04F3
-0447 04F5
+0445 04B3
+0447 04B7 04B9 04F5
044B 04F9
044D 04ED
0456 0457
+0460 047C
+0461 047D
0474 0476
0475 0477
+04AE 04B0
+04AF 04B1
+04BC 04BE
+04BD 04BF
04D8 04DA
04D9 04DB
04E8 04EA
0624 FE85 FE86
0625 FE87 FE88
0626 FBEA FBEB FBEC FBED FBEE FBEF FBF0 FBF1 FBF2 FBF3 FBF4 FBF5 FBF6 FBF7 FBF8 FBF9 FBFA FBFB FC00 FC01 FC02 FC03 FC04 FC64 FC65 FC66 FC67 FC68 FC69 FC97 FC98 FC99 FC9A FC9B FCDF FCE0 FE89 FE8A FE8B FE8C
-0627 0622 0623 0625 0675 FD3C FD3D FDF2 FDF3 FE8D FE8E
+0627 0622 0623 0625 0672 0673 0675 FD3C FD3D FDF2 FDF3 FE8D FE8E
0628 FC05 FC06 FC07 FC08 FC09 FC0A FC6A FC6B FC6C FC6D FC6E FC6F FC9C FC9D FC9E FC9F FCA0 FCE1 FCE2 FD9E FDC2 FE8F FE90 FE91 FE92
0629 FE93 FE94
-062A FC0B FC0C FC0D FC0E FC0F FC10 FC70 FC71 FC72 FC73 FC74 FC75 FCA1 FCA2 FCA3 FCA4 FCA5 FCE3 FCE4 FD50 FD51 FD52 FD53 FD54 FD55 FD56 FD57 FD9F FDA0 FDA1 FDA2 FDA3 FDA4 FE95 FE96 FE97 FE98
+062A 067C 067D FC0B FC0C FC0D FC0E FC0F FC10 FC70 FC71 FC72 FC73 FC74 FC75 FCA1 FCA2 FCA3 FCA4 FCA5 FCE3 FCE4 FD50 FD51 FD52 FD53 FD54 FD55 FD56 FD57 FD9F FDA0 FDA1 FDA2 FDA3 FDA4 FE95 FE96 FE97 FE98
062B FC11 FC12 FC13 FC14 FC76 FC77 FC78 FC79 FC7A FC7B FCA6 FCE5 FCE6 FE99 FE9A FE9B FE9C
062C FC15 FC16 FCA7 FCA8 FD01 FD02 FD1D FD1E FD58 FD59 FDA5 FDA6 FDA7 FDBE FDFB FE9D FE9E FE9F FEA0
-062D FC17 FC18 FCA9 FCAA FCFF FD00 FD1B FD1C FD5A FD5B FDBF FEA1 FEA2 FEA3 FEA4
+062D 0681 0682 0685 FC17 FC18 FCA9 FCAA FCFF FD00 FD1B FD1C FD5A FD5B FDBF FEA1 FEA2 FEA3 FEA4
062E FC19 FC1A FC1B FCAB FCAC FD03 FD04 FD1F FD20 FEA5 FEA6 FEA7 FEA8
-062F FEA9 FEAA
+062F 0689 068A 068B 068F 0690 FEA9 FEAA
0630 FC5B FEAB FEAC
-0631 FC5C FDF6 FEAD FEAE
+0631 0692 0693 0694 0695 0696 0697 0699 FC5C FDF6 FEAD FEAE
0632 FEAF FEB0
-0633 FC1C FC1D FC1E FC1F FCAD FCAE FCAF FCB0 FCE7 FCE8 FCFB FCFC FD0E FD17 FD18 FD2A FD31 FD34 FD35 FD36 FD5C FD5D FD5E FD5F FD60 FD61 FD62 FD63 FDA8 FDC6 FEB1 FEB2 FEB3 FEB4
-0634 FCE9 FCEA FCFD FCFE FD09 FD0A FD0B FD0C FD0D FD19 FD1A FD25 FD26 FD27 FD28 FD29 FD2D FD2E FD2F FD30 FD32 FD37 FD38 FD39 FD67 FD68 FD69 FD6A FD6B FD6C FD6D FDAA FEB5 FEB6 FEB7 FEB8
-0635 FC20 FC21 FCB1 FCB2 FCB3 FD05 FD06 FD0F FD21 FD22 FD2B FD64 FD65 FD66 FDA9 FDC5 FDF0 FDF5 FDF9 FDFA FEB9 FEBA FEBB FEBC
-0636 FC22 FC23 FC24 FC25 FCB4 FCB5 FCB6 FCB7 FD07 FD08 FD10 FD23 FD24 FD2C FD6E FD6F FD70 FDAB FEBD FEBE FEBF FEC0
-0637 FC26 FC27 FCB8 FCF5 FCF6 FD11 FD12 FD33 FD3A FD71 FD72 FD73 FD74 FEC1 FEC2 FEC3 FEC4
+0633 069A 069B 069C FC1C FC1D FC1E FC1F FCAD FCAE FCAF FCB0 FCE7 FCE8 FCFB FCFC FD0E FD17 FD18 FD2A FD31 FD34 FD35 FD36 FD5C FD5D FD5E FD5F FD60 FD61 FD62 FD63 FDA8 FDC6 FEB1 FEB2 FEB3 FEB4
+0634 06FA FCE9 FCEA FCFD FCFE FD09 FD0A FD0B FD0C FD0D FD19 FD1A FD25 FD26 FD27 FD28 FD29 FD2D FD2E FD2F FD30 FD32 FD37 FD38 FD39 FD67 FD68 FD69 FD6A FD6B FD6C FD6D FDAA FEB5 FEB6 FEB7 FEB8
+0635 069D 069E FC20 FC21 FCB1 FCB2 FCB3 FD05 FD06 FD0F FD21 FD22 FD2B FD64 FD65 FD66 FDA9 FDC5 FDF0 FDF5 FDF9 FDFA FEB9 FEBA FEBB FEBC
+0636 06FB FC22 FC23 FC24 FC25 FCB4 FCB5 FCB6 FCB7 FD07 FD08 FD10 FD23 FD24 FD2C FD6E FD6F FD70 FDAB FEBD FEBE FEBF FEC0
+0637 069F FC26 FC27 FCB8 FCF5 FCF6 FD11 FD12 FD33 FD3A FD71 FD72 FD73 FD74 FEC1 FEC2 FEC3 FEC4
0638 FC28 FCB9 FD3B FEC5 FEC6 FEC7 FEC8
-0639 FC29 FC2A FCBA FCBB FCF7 FCF8 FD13 FD14 FD75 FD76 FD77 FD78 FDB6 FDC4 FDF7 FEC9 FECA FECB FECC
-063A FC2B FC2C FCBC FCBD FCF9 FCFA FD15 FD16 FD79 FD7A FD7B FECD FECE FECF FED0
+0639 06A0 FC29 FC2A FCBA FCBB FCF7 FCF8 FD13 FD14 FD75 FD76 FD77 FD78 FDB6 FDC4 FDF7 FEC9 FECA FECB FECC
+063A 06FC FC2B FC2C FCBC FCBD FCF9 FCFA FD15 FD16 FD79 FD7A FD7B FECD FECE FECF FED0
0640 FCF2 FCF3 FCF4 FE71 FE77 FE79 FE7B FE7D FE7F
-0641 FC2D FC2E FC2F FC30 FC31 FC32 FC7C FC7D FCBE FCBF FCC0 FCC1 FD7C FD7D FDC1 FED1 FED2 FED3 FED4
-0642 FC33 FC34 FC35 FC36 FC7E FC7F FCC2 FCC3 FD7E FD7F FDB2 FDB4 FDF1 FED5 FED6 FED7 FED8
-0643 FC37 FC38 FC39 FC3A FC3B FC3C FC3D FC3E FC80 FC81 FC82 FC83 FC84 FCC4 FCC5 FCC6 FCC7 FCC8 FCEB FCEC FDB7 FDBB FDC3 FED9 FEDA FEDB FEDC
-0644 FC3F FC40 FC41 FC42 FC43 FC44 FC85 FC86 FC87 FCC9 FCCA FCCB FCCC FCCD FCED FD80 FD81 FD82 FD83 FD84 FD85 FD86 FD87 FD88 FDAC FDAD FDB5 FDBA FDBC FEDD FEDE FEDF FEE0 FEF5 FEF6 FEF7 FEF8 FEF9 FEFA FEFB FEFC
+0641 06A2 06A3 06A5 FC2D FC2E FC2F FC30 FC31 FC32 FC7C FC7D FCBE FCBF FCC0 FCC1 FD7C FD7D FDC1 FED1 FED2 FED3 FED4
+0642 06A7 06A8 FC33 FC34 FC35 FC36 FC7E FC7F FCC2 FCC3 FD7E FD7F FDB2 FDB4 FDF1 FED5 FED6 FED7 FED8
+0643 06AB 06AC 06AE FC37 FC38 FC39 FC3A FC3B FC3C FC3D FC3E FC80 FC81 FC82 FC83 FC84 FCC4 FCC5 FCC6 FCC7 FCC8 FCEB FCEC FDB7 FDBB FDC3 FED9 FEDA FEDB FEDC
+0644 06B5 06B6 06B7 06B8 FC3F FC40 FC41 FC42 FC43 FC44 FC85 FC86 FC87 FCC9 FCCA FCCB FCCC FCCD FCED FD80 FD81 FD82 FD83 FD84 FD85 FD86 FD87 FD88 FDAC FDAD FDB5 FDBA FDBC FEDD FEDE FEDF FEE0 FEF5 FEF6 FEF7 FEF8 FEF9 FEFA FEFB FEFC
0645 FC45 FC46 FC47 FC48 FC49 FC4A FC88 FC89 FCCE FCCF FCD0 FCD1 FD89 FD8A FD8B FD8C FD8D FD8E FD8F FD92 FDB1 FDB9 FDC0 FDF4 FEE1 FEE2 FEE3 FEE4
-0646 FC4B FC4C FC4D FC4E FC4F FC50 FC8A FC8B FC8C FC8D FC8E FC8F FCD2 FCD3 FCD4 FCD5 FCD6 FCEE FCEF FD95 FD96 FD97 FD98 FD99 FD9A FD9B FDB3 FDB8 FDBD FDC7 FEE5 FEE6 FEE7 FEE8
+0646 06B9 06BC 06BD FC4B FC4C FC4D FC4E FC4F FC50 FC8A FC8B FC8C FC8D FC8E FC8F FCD2 FCD3 FCD4 FCD5 FCD6 FCEE FCEF FD95 FD96 FD97 FD98 FD99 FD9A FD9B FDB3 FDB8 FDBD FDC7 FEE5 FEE6 FEE7 FEE8
0647 FC51 FC52 FC53 FC54 FCD7 FCD8 FCD9 FD93 FD94 FEE9 FEEA FEEB FEEC
-0648 0624 0676 FDF8 FEED FEEE
+0648 0624 0676 06C4 06CA 06CF FDF8 FEED FEEE
0649 FBE8 FBE9 FC5D FC90 FEEF FEF0
-064A 0626 0678 FC55 FC56 FC57 FC58 FC59 FC5A FC91 FC92 FC93 FC94 FC95 FC96 FCDA FCDB FCDC FCDD FCDE FCF0 FCF1 FD9C FD9D FDAE FDAF FDB0 FEF1 FEF2 FEF3 FEF4
+064A 0626 0678 06CD 06CE 06D1 FC55 FC56 FC57 FC58 FC59 FC5A FC91 FC92 FC93 FC94 FC95 FC96 FCDA FCDB FCDC FCDD FCDE FCF0 FCF1 FD9C FD9D FDAE FDAF FDB0 FEF1 FEF2 FEF3 FEF4
0671 FB50 FB51
0677 FBDD
0679 FB66 FB67 FB68 FB69
0680 FB5A FB5B FB5C FB5D
0683 FB76 FB77 FB78 FB79
0684 FB72 FB73 FB74 FB75
-0686 FB7A FB7B FB7C FB7D
+0686 06BF FB7A FB7B FB7C FB7D
0687 FB7E FB7F FB80 FB81
0688 FB88 FB89
068C FB84 FB85
06A6 FB6E FB6F FB70 FB71
06A9 FB8E FB8F FB90 FB91
06AD FBD3 FBD4 FBD5 FBD6
-06AF FB92 FB93 FB94 FB95
+06AF 06B0 06B2 06B4 FB92 FB93 FB94 FB95
06B1 FB9A FB9B FB9C FB9D
06B3 FB96 FB97 FB98 FB99
06BA FB9E FB9F
09A1 09DC
09A2 09DD
09AF 09DF
+09B0 09F0 09F1
0A16 0A59
0A17 0A5A
0A1C 0A5B
0B21 0B5C
0B22 0B5D
0B92 0B94
-0E4D 0E33
0EAB 0EDC 0EDD
-0ECD 0EB3
0F40 0F69
0F42 0F43
0F4C 0F4D
3075 3076 3077
3078 3079 307A
307B 307C 307D
-3099 FF9E
-309A FF9F
309D 309E
30A1 FF67
30A2 FF71
$code{$name} = $code;
$name{$code} = $name;
+ $category{$code} = $category;
+
+ next unless $category =~ /^L/;
+
+ # The definition of "equivalence" is twofold.
+ if ($decomposition ne '') {
+ # (1) If there's an official Unicode decomposition
+ # and the base is a Unicode letter.
+ $decomposition =~ s/^<\w+> //;
+ @decomposition = split(' ', $decomposition);
+ # Some Arabic ligatures like
+ # FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;...
+ # are problematic because their decomposition begins with
+ # a space (0020) -- which could be just skipped -- but then
+ # their base glyph is not a letter, for example
+ # the above decomposes as <isolated> 0020 064C 0651,
+ # but 064C is 064C;ARABIC DAMMATAN;Mn;...
+ # (the 0651 being ARABIC SHADDA;Mn)
+ ($basecode) = shift @decomposition;
+ push @base, [ $code, $basecode ];
+ } elsif ($name =~ /^(.+?) WITH /) {
+ # (2) If there's a "FOO WITH ..." Unicode name and FOO
+ # happens to be valid Unicode letter. This is
+ # a debatable definition and all fault is by me (jhi).
+ # For example this definition adds
+ # LATIN SMALL LETTER O WITH STROKE
+ # as a derivative of
+ # LATIN SMALL LETTER O
+ # which some might rightfully contest, especially
+ # the speakers of languages who have the former
+ # phonetically as very distinct from the latter.
+ push @with, [ $code, $1 ];
+ }
+}
- next unless $category =~ /^L/ && $decomposition ne '';
- $decomposition =~ s/^<\w+> //;
- @decomposition = split(' ', $decomposition);
-
- push @base, [ $code, $decomposition[0] ];
+foreach my $w (@with) {
+ ($code, $basename) = @$w;
+ next if not exists $code{$basename} or
+ not $category{$code{$basename}} =~ /^L/;
+ push @base, [ $code, $code{$basename} ];
}
+@base = sort { $a->[0] cmp $b->[0] } @base;
+
foreach my $b (@base) {
($code, $basecode) = @$b;
- $base = $name{$basecode};
- next unless exists $code{$base};
- push @{$unicode{$code{$base}}}, $code;
-# print "$code: $name{$code} -> $base\n",
+ $basename = $name{$basecode};
+ next if not defined $basename or
+ not exists $code{$basename} or
+ not $category{$code{$basename}} =~ /^L/;
+ push @{$unicode{$code{$basename}}}, $code;
+# print "$code: $name{$code} -> $basename\n",
}
@unicode = sort keys %unicode;
if (open(EQ_LATIN1, ">Eq/Latin1")) {
foreach my $c (@unicode) {
last if hex($c) > 255;
- my @c = grep { hex($_) <= 255 } @{$unicode{$c}};
+ my @c = grep { hex($_) < 256 } @{$unicode{$c}};
next unless @c;
print EQ_LATIN1 "$c @c\n";
}
}
# eof
-