#!/usr/bin/perl # from the jamoglyphname.pl for the HCR fonts by Dohyun Kim 2010/02/25 # # modified version for OldGulim by wkpark@kldp.org 2010/03/04 # #$lbase=0x4e00; #$vbase=0x5100; #$tvase=0x5204; # # MS lvt order. from HanyangPUA to Jamo project http://cvs.ktug.or.kr/viewcvs/hypua2jamo/ # Please see also http://www.microsoft.com/typography/otfntdev/hangulot/appen.htm # my @LCON = ( 0x115F, 0x1100, 0x1101, 0x115A, 0x1102, 0x1113, 0x1114, 0x1115, 0x1116, 0x115B, 0x115C, 0x115D, 0x1103, 0x1117, 0x1104, 0x115E, 0xA960, 0xA961, 0xA962, 0xA963, 0x1105, 0xA964, 0xA965, 0x1118, 0xA966, 0xA967, 0x1119, 0xA968, 0xA969, 0xA96A, 0xA96B, 0xA96C, 0xA96D, 0xA96E, 0x111A, 0x111B, 0x1106, 0xA96F, 0xA970, 0x111C, 0xA971, 0x111D, 0x1107, 0x111E, 0x111F, 0x1120, 0x1108, 0x1121, 0x1122, 0x1123, 0x1124, 0x1125, 0x1126, 0xA972, 0x1127, 0x1128, 0xA973, 0x1129, 0x112A, 0xA974, 0x112B, 0x112C, 0x1109, 0x112D, 0x112E, 0x112F, 0x1130, 0x1131, 0x1132, 0x1133, 0x110A, 0xA975, 0x1134, 0x1135, 0x1136, 0x1137, 0x1138, 0x1139, 0x113A, 0x113B, 0x113C, 0x113D, 0x113E, 0x113F, 0x1140, 0x110B, 0x1141, 0x1142, 0xA976, 0x1143, 0x1144, 0x1145, 0x1146, 0x1147, 0x1148, 0x1149, 0x114A, 0x114B, 0xA977, 0x114C, 0x110C, 0x114D, 0x110D, 0xA978, 0x114E, 0x114F, 0x1150, 0x1151, 0x110E, 0x1152, 0x1153, 0x1154, 0x1155, 0x110F, 0x1110, 0xA979, 0x1111, 0x1156, 0xA97A, 0x1157, 0x1112, 0xA97B, 0x1158, 0x1159, 0xA97C); my @MVOW = ( 0x1160, 0x1161, 0x1176, 0x1177, 0x11A3, 0x1162, 0x1163, 0x1178, 0x1179, 0x11A4, 0x1164, 0x1165, 0x117A, 0x117B, 0x117C, 0x1166, 0x1167, 0x11A5, 0x117D, 0x117E, 0x1168, 0x1169, 0x116A, 0x116B, 0x11A6, 0x11A7, 0x117F, 0x1180, 0xD7B0, 0x1181, 0x1182, 0xD7B1, 0x1183, 0x116C, 0x116D, 0xD7B2, 0xD7B3, 0x1184, 0x1185, 0xD7B4, 0x1186, 0x1187, 0x1188, 0x116E, 0x1189, 0x118A, 0x116F, 0x118B, 0x1170, 0xD7B5, 0x118C, 0x118D, 0x1171, 0xD7B6, 0x1172, 0x118E, 0xD7B7, 0x118F, 0x1190, 0x1191, 0x1192, 0xD7B8, 0x1193, 0x1194, 0x1173, 0xD7B9, 0xD7BA, 0xD7BB, 0xD7BC, 0x1195, 0x1196, 0x1174, 0x1197, 0x1175, 0x1198, 0x1199, 0xD7BD, 0xD7BE, 0xD7BF, 0xD7C0, 0x119A, 0xD7C1, 0xD7C2, 0x119B, 0xD7C3, 0x119C, 0xD7C4, 0x119D, 0x119E, 0xD7C5, 0x119F, 0xD7C6, 0x11A0, 0x11A1, 0x11A2); my @TCON = ( 0x11A8, 0x11A9, 0x11FA, 0x11C3, 0x11FB, 0x11AA, 0x11C4, 0x11FC, 0x11FD, 0x11FE, 0x11AB, 0x11C5, 0x11FF, 0x11C6, 0xD7CB, 0x11C7, 0x11C8, 0x11AC, 0xD7CC, 0x11C9, 0x11AD, 0x11AE, 0x11CA, 0xD7CD, 0xD7CE, 0x11CB, 0xD7CF, 0xD7D0, 0xD7D1, 0xD7D2, 0xD7D3, 0xD7D4, 0x11AF, 0x11B0, 0xD7D5, 0x11CC, 0xD7D6, 0x11CD, 0x11CE, 0x11CF, 0x11D0, 0xD7D7, 0x11B1, 0x11D1, 0x11D2, 0xD7D8, 0x11B2, 0xD7D9, 0x11D3, 0xD7DA, 0x11D4, 0x11D5, 0x11B3, 0x11D6, 0x11D7, 0xD7DB, 0x11D8, 0x11B4, 0x11B5, 0x11B6, 0x11D9, 0xD7DC, 0xD7DD, 0x11B7, 0x11DA, 0xD7DE, 0xD7DF, 0x11DB, 0xD7E0, 0x11DC, 0xD7E1, 0x11DD, 0x11DE, 0x11DF, 0xD7E2, 0x11E0, 0x11E1, 0x11E2, 0x11B8, 0xD7E3, 0x11E3, 0xD7E4, 0xD7E5, 0xD7E6, 0x11B9, 0xD7E7, 0xD7E8, 0xD7E9, 0x11E4, 0x11E5, 0x11E6, 0x11BA, 0x11E7, 0x11E8, 0x11E9, 0xD7EA, 0x11EA, 0xD7EB, 0x11BB, 0xD7EC, 0xD7ED, 0xD7EE, 0xD7EF, 0xD7F0, 0xD7F1, 0xD7F2, 0x11EB, 0xD7F3, 0xD7F4, 0x11BC, 0x11EC, 0x11ED, 0xD7F5, 0x11F1, 0x11EE, 0x11EF, 0xD7F6, 0x11F0, # there are 4 duplicated similar glyph # 0x11EC, 0x11FA, # 0x11F1, 0x11FB, 0x11F2, # 0x11EF, 0x11FC, # 0xD7F6, 0x11FD, 0x11BD, 0xD7F7, 0xD7F8, 0xD7F9, 0x11BE, 0x11BF, 0x11C0, 0x11C1, 0x11F3, 0xD7FA, 0xD7FB, 0x11F4, 0x11C2, 0x11F5, 0x11F6, 0x11F7, 0x11F8, 0x11F9 ); my ($i,$j,$name,$prefix) = (0,0,'',''); my $SET = 0; while(<>) { if (/StartChar\:\s+uni4E00\s*$/) { $i = 0; $j = 0; @OLD = @LCON; $SET = 6; $prefix = 'ljmo'; } elsif (/StartChar\:\s+uni5100\s*$/) { $i = 0; $j = 0; @OLD = @MVOW; $SET = 2; $prefix = 'vjmo'; } elsif (/StartChar\:\s+uni5204\s*$/) { $i = 0; $j = 0; @OLD = @TCON; $SET = 4; $prefix = 'tjmo'; } if ($OLD[$i] and /StartChar\:/) { $name = sprintf ("uni%04X.%s%02d",$OLD[$i],$prefix,$j + 1); $_ = "StartChar: $name\n"; $j++; if($j >= $SET) { $i++; $j = 0; } } print; }