From 6ab0c4fbcfcbef2afd1ad57d077ee3ca4d22d3fb Mon Sep 17 00:00:00 2001 From: Choe Hwanjin Date: Sat, 25 Feb 2006 22:27:06 +0900 Subject: [PATCH] =?utf8?q?HangulInputContext=EC=9D=98=20=EC=8B=A4=EC=A0=9C?= =?utf8?q?=20=EA=B5=AC=ED=98=84=EC=9D=84=20hangulinputcontext.c=EB=A1=9C?= =?utf8?q?=20=EC=88=A8=EA=B9=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@61 8f00fcd2-89fc-0310-932e-b01be5b65e01 --- hangul/hangul.h | 28 ---- hangul/hangulinputcontext.c | 31 +++- hangul/hangulkeyboard.h | 376 ++++++++++++++++++++++---------------------- 3 files changed, 217 insertions(+), 218 deletions(-) diff --git a/hangul/hangul.h b/hangul/hangul.h index dc04b39..a92e821 100644 --- a/hangul/hangul.h +++ b/hangul/hangul.h @@ -83,34 +83,6 @@ enum { HANGUL_INPUT_FILTER_JASO }; -struct _HangulJamoCombination { - uint32_t key; - ucschar code; -}; - -struct _HangulBuffer { - ucschar choseong; - ucschar jungseong; - ucschar jongseong; - - ucschar stack[12]; - int index; -}; - -struct _HangulInputContext { - int type; - const ucschar *keyboard_table; - const HangulJamoCombination *combination_table; - int combination_table_size; - HangulBuffer buffer; - HangulICFilter filter; - void *filter_data; - int output_mode; - - ucschar preedit_string[64]; - ucschar commit_string[64]; -}; - HangulInputContext* hangul_ic_new(HangulKeyboardType keyboard); void hangul_ic_delete(HangulInputContext *hic); bool hangul_ic_process(HangulInputContext *hic, int ascii); diff --git a/hangul/hangulinputcontext.c b/hangul/hangulinputcontext.c index ea304b0..a8bdcf3 100644 --- a/hangul/hangulinputcontext.c +++ b/hangul/hangulinputcontext.c @@ -24,10 +24,39 @@ #include #include "hangul.h" -#include "hangulkeyboard.h" #define N_ELEMENTS(array) (sizeof(array) / sizeof(array[0])) +struct _HangulJamoCombination { + uint32_t key; + ucschar code; +}; + +struct _HangulBuffer { + ucschar choseong; + ucschar jungseong; + ucschar jongseong; + + ucschar stack[12]; + int index; +}; + +struct _HangulInputContext { + int type; + const ucschar *keyboard_table; + const HangulJamoCombination *combination_table; + int combination_table_size; + HangulBuffer buffer; + HangulICFilter filter; + void *filter_data; + int output_mode; + + ucschar preedit_string[64]; + ucschar commit_string[64]; +}; + +#include "hangulkeyboard.h" + static void hangul_buffer_push(HangulBuffer *buffer, ucschar ch); static ucschar hangul_buffer_pop (HangulBuffer *buffer); static ucschar hangul_buffer_peek(HangulBuffer *buffer); diff --git a/hangul/hangulkeyboard.h b/hangul/hangulkeyboard.h index 09b283a..d44a6e0 100644 --- a/hangul/hangulkeyboard.h +++ b/hangul/hangulkeyboard.h @@ -1,5 +1,3 @@ -#include "hangul.h" - static const ucschar hangul_keyboard_table_2[] = { 0x0000, /* exclam: exclamation mark */ 0x0000, /* quotedbl: quotation mark */ @@ -611,191 +609,191 @@ static const HangulJamoCombination hangul_combination_table_default[] = { }; static const HangulJamoCombination hangul_combination_table_full[] = { - { 0x11001100, 0x1101 }, /* CHOSEONG SSANGKIYEOK = KIYEOK + KIYEOK */ - { 0x11021100, 0x1113 }, /* CHOSEONG NIEUN-KIYEOK = NIEUN + KIYEOK */ - { 0x11021102, 0x1114 }, /* CHOSEONG SSANGNIEUN = NIEUN + NIEUN */ - { 0x11021103, 0x1115 }, /* CHOSEONG NIEUN-TIKEUT = NIEUN + TIKEUT */ - { 0x11021107, 0x1116 }, /* CHOSEONG NIEUN-PIEUP = NIEUN + PIEUP */ - { 0x11031100, 0x1117 }, /* CHOSEONG TIKEUT-KIYEOK = TIKEUT + KIYEOK */ - { 0x11031103, 0x1104 }, /* CHOSEONG SSANGTIKEUT = TIKEUT + TIKEUT */ - { 0x11051102, 0x1118 }, /* CHOSEONG RIEUL-NIEUN = RIEUL + NIEUN */ - { 0x11051105, 0x1119 }, /* CHOSEONG SSANGRIEUL = RIEUL + RIEUL */ - { 0x1105110b, 0x111b }, /* CHOSEONG KAPYEOUNRIEUL = RIEUL + IEUNG */ - { 0x11051112, 0x111a }, /* CHOSEONG RIEUL-HIEUH = RIEUL + HIEUH */ - { 0x11061107, 0x111c }, /* CHOSEONG MIEUM-PIEUP = MIEUM + PIEUP */ - { 0x1106110b, 0x111d }, /* CHOSEONG KAPYEOUNMIEUM = MIEUM + IEUNG */ - { 0x11071100, 0x111e }, /* CHOSEONG PIEUP-KIYEOK = PIEUP + KIYEOK */ - { 0x11071102, 0x111f }, /* CHOSEONG PIEUP-NIEUN = PIEUP + NIEUN */ - { 0x11071103, 0x1120 }, /* CHOSEONG PIEUP-TIKEUT = PIEUP + TIKEUT */ - { 0x11071107, 0x1108 }, /* CHOSEONG SSANGPIEUP = PIEUP + PIEUP */ - { 0x11071109, 0x1121 }, /* CHOSEONG PIEUP-SIOS = PIEUP + SIOS */ - { 0x1107110b, 0x112b }, /* CHOSEONG KAPYEOUNPIEUP = PIEUP + IEUNG */ - { 0x1107110c, 0x1127 }, /* CHOSEONG PIEUP-CIEUC = PIEUP + CIEUC */ - { 0x1107110e, 0x1128 }, /* CHOSEONG PIEUP-CHIEUCH = PIEUP + CHIEUCH */ - { 0x11071110, 0x1129 }, /* CHOSEONG PIEUP-THIEUTH = PIEUP + THIEUTH */ - { 0x11071111, 0x112a }, /* CHOSEONG PIEUP-PHIEUPH = PIEUP + PHIEUPH */ - { 0x1108110b, 0x112c }, /* CHOSEONG KAPYEOUNSSANGPIEUP = SSANGPIEUP + IEUNG */ - { 0x11091100, 0x112d }, /* CHOSEONG SIOS-KIYEOK = SIOS + KIYEOK */ - { 0x11091102, 0x112e }, /* CHOSEONG SIOS-NIEUN = SIOS + NIEUN */ - { 0x11091103, 0x112f }, /* CHOSEONG SIOS-TIKEUT = SIOS + TIKEUT */ - { 0x11091105, 0x1130 }, /* CHOSEONG SIOS-RIEUL = SIOS + RIEUL */ - { 0x11091106, 0x1131 }, /* CHOSEONG SIOS-MIEUM = SIOS + MIEUM */ - { 0x11091107, 0x1132 }, /* CHOSEONG SIOS-PIEUP = SIOS + PIEUP */ - { 0x11091109, 0x110a }, /* CHOSEONG SSANGSIOS = SIOS + SIOS */ - { 0x1109110b, 0x1135 }, /* CHOSEONG SIOS-IEUNG = SIOS + IEUNG */ - { 0x1109110c, 0x1136 }, /* CHOSEONG SIOS-CIEUC = SIOS + CIEUC */ - { 0x1109110e, 0x1137 }, /* CHOSEONG SIOS-CHIEUCH = SIOS + CHIEUCH */ - { 0x1109110f, 0x1138 }, /* CHOSEONG SIOS-KHIEUKH = SIOS + KHIEUKH */ - { 0x11091110, 0x1139 }, /* CHOSEONG SIOS-THIEUTH = SIOS + THIEUTH */ - { 0x11091111, 0x113a }, /* CHOSEONG SIOS-PHIEUPH = SIOS + PHIEUPH */ - { 0x11091112, 0x113b }, /* CHOSEONG SIOS-HIEUH = SIOS + HIEUH */ - { 0x110a1109, 0x1134 }, /* CHOSEONG SIOS-SSANGSIOS = SSANGSIOS + SIOS */ - { 0x110b1100, 0x1141 }, /* CHOSEONG IEUNG-KIYEOK = IEUNG + KIYEOK */ - { 0x110b1103, 0x1142 }, /* CHOSEONG IEUNG-TIKEUT = IEUNG + TIKEUT */ - { 0x110b1106, 0x1143 }, /* CHOSEONG IEUNG-MIEUM = IEUNG + MIEUM */ - { 0x110b1107, 0x1144 }, /* CHOSEONG IEUNG-PIEUP = IEUNG + PIEUP */ - { 0x110b1109, 0x1145 }, /* CHOSEONG IEUNG-SIOS = IEUNG + SIOS */ - { 0x110b110b, 0x1147 }, /* CHOSEONG SSANGIEUNG = IEUNG + IEUNG */ - { 0x110b110c, 0x1148 }, /* CHOSEONG IEUNG-CIEUC = IEUNG + CIEUC */ - { 0x110b110e, 0x1149 }, /* CHOSEONG IEUNG-CHIEUCH = IEUNG + CHIEUCH */ - { 0x110b1110, 0x114a }, /* CHOSEONG IEUNG-THIEUTH = IEUNG + THIEUTH */ - { 0x110b1111, 0x114b }, /* CHOSEONG IEUNG-PHIEUPH = IEUNG + PHIEUPH */ - { 0x110b1140, 0x1146 }, /* CHOSEONG IEUNG-PANSIOS = IEUNG + PANSIOS */ - { 0x110c110b, 0x114d }, /* CHOSEONG CIEUC-IEUNG = CIEUC + IEUNG */ - { 0x110c110c, 0x110d }, /* CHOSEONG SSANGCIEUC = CIEUC + CIEUC */ - { 0x110e110f, 0x1152 }, /* CHOSEONG CHIEUCH-KHIEUKH = CHIEUCH + KHIEUKH */ - { 0x110e1112, 0x1153 }, /* CHOSEONG CHIEUCH-HIEUH = CHIEUCH + HIEUH */ - { 0x11111107, 0x1156 }, /* CHOSEONG PHIEUPH-PIEUP = PHIEUPH + PIEUP */ - { 0x1111110b, 0x1157 }, /* CHOSEONG KAPYEOUNPHIEUPH = PHIEUPH + IEUNG */ - { 0x11121112, 0x1158 }, /* CHOSEONG SSANGHIEUH = HIEUH + HIEUH */ - { 0x11211100, 0x1122 }, /* CHOSEONG PIEUP-SIOS-KIYEOK = PIEUP-SIOS + KIYEOK */ - { 0x11211103, 0x1123 }, /* CHOSEONG PIEUP-SIOS-TIKEUT = PIEUP-SIOS + TIKEUT */ - { 0x11211107, 0x1124 }, /* CHOSEONG PIEUP-SIOS-PIEUP = PIEUP-SIOS + PIEUP */ - { 0x11211109, 0x1125 }, /* CHOSEONG PIEUP-SSANGSIOS = PIEUP-SIOS + SIOS */ - { 0x1121110c, 0x1126 }, /* CHOSEONG PIEUP-SIOS-CIEUC = PIEUP-SIOS + CIEUC */ - { 0x11321100, 0x1133 }, /* CHOSEONG SIOS-PIEUP-KIYEOK = SIOS-PIEUP + KIYEOK */ - { 0x113c113c, 0x113d }, /* CHOSEONG CHITUEUMSSANGSIOS = CHITUEUMSIOS + CHITUEUMSIOS */ - { 0x113e113e, 0x113f }, /* CHOSEONG CEONGCHIEUMSSANGSIOS = CEONGCHIEUMSIOS + CEONGCHIEUMSIOS */ - { 0x114e114e, 0x114f }, /* CHOSEONG CHITUEUMSSANGCIEUC = CHITUEUMCIEUC + CHITUEUMCIEUC */ - { 0x11501150, 0x1151 }, /* CHOSEONG CEONGCHIEUMSSANGCIEUC = CEONGCHIEUMCIEUC + CEONGCHIEUMCIEUC */ - { 0x11611169, 0x1176 }, /* JUNGSEONG A-O = A + O */ - { 0x1161116e, 0x1177 }, /* JUNGSEONG A-U = A + U */ - { 0x11611175, 0x1162 }, /* JUNGSEONG AE = A */ - { 0x11631169, 0x1178 }, /* JUNGSEONG YA-O = YA + O */ - { 0x1163116d, 0x1179 }, /* JUNGSEONG YA-YO = YA + YO */ - { 0x11631175, 0x1164 }, /* JUNGSEONG YAE = YA */ - { 0x11651169, 0x117a }, /* JUNGSEONG EO-O = EO + O */ - { 0x1165116e, 0x117b }, /* JUNGSEONG EO-U = EO + U */ - { 0x11651173, 0x117c }, /* JUNGSEONG EO-EU = EO + EU */ - { 0x11651175, 0x1166 }, /* JUNGSEONG E = EO */ - { 0x11671169, 0x117d }, /* JUNGSEONG YEO-O = YEO + O */ - { 0x1167116e, 0x117e }, /* JUNGSEONG YEO-U = YEO + U */ - { 0x11671175, 0x1168 }, /* JUNGSEONG YE = YEO */ - { 0x11691161, 0x116a }, /* JUNGSEONG WA = O + A */ - { 0x11691165, 0x117f }, /* JUNGSEONG O-EO = O + EO */ - { 0x11691166, 0x1180 }, /* JUNGSEONG O-E = O + E */ - { 0x11691168, 0x1181 }, /* JUNGSEONG O-YE = O + YE */ - { 0x11691169, 0x1182 }, /* JUNGSEONG O-O = O + O */ - { 0x1169116e, 0x1183 }, /* JUNGSEONG O-U = O + U */ - { 0x11691175, 0x116c }, /* JUNGSEONG OE = O */ - { 0x116a1175, 0x116b }, /* JUNGSEONG WAE = WA */ - { 0x116d1163, 0x1184 }, /* JUNGSEONG YO-YA = YO + YA */ - { 0x116d1164, 0x1185 }, /* JUNGSEONG YO-YAE = YO + YAE */ - { 0x116d1167, 0x1186 }, /* JUNGSEONG YO-YEO = YO + YEO */ - { 0x116d1169, 0x1187 }, /* JUNGSEONG YO-O = YO + O */ - { 0x116d1175, 0x1188 }, /* JUNGSEONG YO-I = YO + I */ - { 0x116e1161, 0x1189 }, /* JUNGSEONG U-A = U + A */ - { 0x116e1162, 0x118a }, /* JUNGSEONG U-AE = U + AE */ - { 0x116e1165, 0x116f }, /* JUNGSEONG WEO = U + EO */ - { 0x116e1168, 0x118c }, /* JUNGSEONG U-YE = U + YE */ - { 0x116e116e, 0x118d }, /* JUNGSEONG U-U = U + U */ - { 0x116e1175, 0x1171 }, /* JUNGSEONG WI = U */ - { 0x116f1173, 0x118b }, /* JUNGSEONG U-EO-EU = WEO + EU */ - { 0x116f1175, 0x1170 }, /* JUNGSEONG WE = WEO */ - { 0x11721161, 0x118e }, /* JUNGSEONG YU-A = YU + A */ - { 0x11721165, 0x118f }, /* JUNGSEONG YU-EO = YU + EO */ - { 0x11721166, 0x1190 }, /* JUNGSEONG YU-E = YU + E */ - { 0x11721167, 0x1191 }, /* JUNGSEONG YU-YEO = YU + YEO */ - { 0x11721168, 0x1192 }, /* JUNGSEONG YU-YE = YU + YE */ - { 0x1172116e, 0x1193 }, /* JUNGSEONG YU-U = YU + U */ - { 0x11721175, 0x1194 }, /* JUNGSEONG YU-I = YU + I */ - { 0x1173116e, 0x1195 }, /* JUNGSEONG EU-U = EU + U */ - { 0x11731173, 0x1196 }, /* JUNGSEONG EU-EU = EU + EU */ - { 0x11731175, 0x1174 }, /* JUNGSEONG YI = EU */ - { 0x1174116e, 0x1197 }, /* JUNGSEONG YI-U = YI + U */ - { 0x11751161, 0x1198 }, /* JUNGSEONG I-A = I + A */ - { 0x11751163, 0x1199 }, /* JUNGSEONG I-YA = I + YA */ - { 0x11751169, 0x119a }, /* JUNGSEONG I-O = I + O */ - { 0x1175116e, 0x119b }, /* JUNGSEONG I-U = I + U */ - { 0x11751173, 0x119c }, /* JUNGSEONG I-EU = I + EU */ - { 0x1175119e, 0x119d }, /* JUNGSEONG I-ARAEA = I */ - { 0x119e1165, 0x119f }, /* JUNGSEONG ARAEA-EO = ARAEA + EO */ - { 0x119e116e, 0x11a0 }, /* JUNGSEONG ARAEA-U = ARAEA + U */ - { 0x119e1175, 0x11a1 }, /* JUNGSEONG ARAEA-I = ARAEA + I */ - { 0x119e119e, 0x11a2 }, /* JUNGSEONG SSANGARAEA = ARAEA + ARAEA */ - { 0x11a811a8, 0x11a9 }, /* JONGSEONG SSANGKIYEOK = KIYEOK + KIYEOK */ - { 0x11a811af, 0x11c3 }, /* JONGSEONG KIYEOK-RIEUL = KIYEOK + RIEUL */ - { 0x11a811ba, 0x11aa }, /* JONGSEONG KIYEOK-SIOS = KIYEOK */ - { 0x11aa11a8, 0x11c4 }, /* JONGSEONG KIYEOK-SIOS-KIYEOK = KIYEOK-SIOS + KIYEOK */ - { 0x11ab11a8, 0x11c5 }, /* JONGSEONG NIEUN-KIYEOK = NIEUN + KIYEOK */ - { 0x11ab11ae, 0x11c6 }, /* JONGSEONG NIEUN-TIKEUT = NIEUN + TIKEUT */ - { 0x11ab11ba, 0x11c7 }, /* JONGSEONG NIEUN-SIOS = NIEUN + SIOS */ - { 0x11ab11bd, 0x11ac }, /* JONGSEONG NIEUN-CIEUC = NIEUN */ - { 0x11ab11c0, 0x11c9 }, /* JONGSEONG NIEUN-THIEUTH = NIEUN + THIEUTH */ - { 0x11ab11c2, 0x11ad }, /* JONGSEONG NIEUN-HIEUH = NIEUN */ - { 0x11ab11eb, 0x11c8 }, /* JONGSEONG NIEUN-PANSIOS = NIEUN */ - { 0x11ae11a8, 0x11ca }, /* JONGSEONG TIKEUT-KIYEOK = TIKEUT + KIYEOK */ - { 0x11ae11af, 0x11cb }, /* JONGSEONG TIKEUT-RIEUL = TIKEUT + RIEUL */ - { 0x11af11a8, 0x11b0 }, /* JONGSEONG RIEUL-KIYEOK = RIEUL + KIYEOK */ - { 0x11af11ab, 0x11cd }, /* JONGSEONG RIEUL-NIEUN = RIEUL + NIEUN */ - { 0x11af11ae, 0x11ce }, /* JONGSEONG RIEUL-TIKEUT = RIEUL + TIKEUT */ - { 0x11af11af, 0x11d0 }, /* JONGSEONG SSANGRIEUL = RIEUL + RIEUL */ - { 0x11af11b7, 0x11b1 }, /* JONGSEONG RIEUL-MIEUM = RIEUL */ - { 0x11af11b8, 0x11b2 }, /* JONGSEONG RIEUL-PIEUP = RIEUL */ - { 0x11af11ba, 0x11b3 }, /* JONGSEONG RIEUL-SIOS = RIEUL */ - { 0x11af11bf, 0x11d8 }, /* JONGSEONG RIEUL-KHIEUKH = RIEUL + KHIEUKH */ - { 0x11af11c0, 0x11b4 }, /* JONGSEONG RIEUL-THIEUTH = RIEUL */ - { 0x11af11c1, 0x11b5 }, /* JONGSEONG RIEUL-PHIEUPH = RIEUL */ - { 0x11af11c2, 0x11b6 }, /* JONGSEONG RIEUL-HIEUH = RIEUL */ - { 0x11af11eb, 0x11d7 }, /* JONGSEONG RIEUL-PANSIOS = RIEUL */ - { 0x11af11f9, 0x11d9 }, /* JONGSEONG RIEUL-YEORINHIEUH = RIEUL */ - { 0x11b011ba, 0x11cc }, /* JONGSEONG RIEUL-KIYEOK-SIOS = RIEUL-KIYEOK + SIOS */ - { 0x11b111a8, 0x11d1 }, /* JONGSEONG RIEUL-MIEUM-KIYEOK = RIEUL-MIEUM + KIYEOK */ - { 0x11b111ba, 0x11d2 }, /* JONGSEONG RIEUL-MIEUM-SIOS = RIEUL-MIEUM + SIOS */ - { 0x11b211ba, 0x11d3 }, /* JONGSEONG RIEUL-PIEUP-SIOS = RIEUL-PIEUP + SIOS */ - { 0x11b211bc, 0x11d5 }, /* JONGSEONG RIEUL-KAPYEOUNPIEUP = RIEUL-PIEUP + IEUNG */ - { 0x11b211c2, 0x11d4 }, /* JONGSEONG RIEUL-PIEUP-HIEUH = RIEUL-PIEUP + HIEUH */ - { 0x11b311ba, 0x11d6 }, /* JONGSEONG RIEUL-SSANGSIOS = RIEUL-SIOS + SIOS */ - { 0x11b711a8, 0x11da }, /* JONGSEONG MIEUM-KIYEOK = MIEUM + KIYEOK */ - { 0x11b711af, 0x11db }, /* JONGSEONG MIEUM-RIEUL = MIEUM + RIEUL */ - { 0x11b711b8, 0x11dc }, /* JONGSEONG MIEUM-PIEUP = MIEUM + PIEUP */ - { 0x11b711ba, 0x11dd }, /* JONGSEONG MIEUM-SIOS = MIEUM + SIOS */ - { 0x11b711bc, 0x11e2 }, /* JONGSEONG KAPYEOUNMIEUM = MIEUM + IEUNG */ - { 0x11b711be, 0x11e0 }, /* JONGSEONG MIEUM-CHIEUCH = MIEUM + CHIEUCH */ - { 0x11b711c2, 0x11e1 }, /* JONGSEONG MIEUM-HIEUH = MIEUM + HIEUH */ - { 0x11b711eb, 0x11df }, /* JONGSEONG MIEUM-PANSIOS = MIEUM */ - { 0x11b811af, 0x11e3 }, /* JONGSEONG PIEUP-RIEUL = PIEUP + RIEUL */ - { 0x11b811ba, 0x11b9 }, /* JONGSEONG PIEUP-SIOS = PIEUP */ - { 0x11b811bc, 0x11e6 }, /* JONGSEONG KAPYEOUNPIEUP = PIEUP + IEUNG */ - { 0x11b811c1, 0x11e4 }, /* JONGSEONG PIEUP-PHIEUPH = PIEUP + PHIEUPH */ - { 0x11b811c2, 0x11e5 }, /* JONGSEONG PIEUP-HIEUH = PIEUP + HIEUH */ - { 0x11ba11a8, 0x11e7 }, /* JONGSEONG SIOS-KIYEOK = SIOS + KIYEOK */ - { 0x11ba11ae, 0x11e8 }, /* JONGSEONG SIOS-TIKEUT = SIOS + TIKEUT */ - { 0x11ba11af, 0x11e9 }, /* JONGSEONG SIOS-RIEUL = SIOS + RIEUL */ - { 0x11ba11b8, 0x11ea }, /* JONGSEONG SIOS-PIEUP = SIOS + PIEUP */ - { 0x11ba11ba, 0x11bb }, /* JONGSEONG SSANGSIOS = SIOS + SIOS */ - { 0x11bc11a8, 0x11ec }, /* JONGSEONG IEUNG-KIYEOK = IEUNG + KIYEOK */ - { 0x11bc11bc, 0x11ee }, /* JONGSEONG SSANGIEUNG = IEUNG + IEUNG */ - { 0x11bc11bf, 0x11ef }, /* JONGSEONG IEUNG-KHIEUKH = IEUNG + KHIEUKH */ - { 0x11c111b8, 0x11f3 }, /* JONGSEONG PHIEUPH-PIEUP = PHIEUPH + PIEUP */ - { 0x11c111bc, 0x11f4 }, /* JONGSEONG KAPYEOUNPHIEUPH = PHIEUPH + IEUNG */ - { 0x11c211ab, 0x11f5 }, /* JONGSEONG HIEUH-NIEUN = HIEUH + NIEUN */ - { 0x11c211af, 0x11f6 }, /* JONGSEONG HIEUH-RIEUL = HIEUH + RIEUL */ - { 0x11c211b7, 0x11f7 }, /* JONGSEONG HIEUH-MIEUM = HIEUH + MIEUM */ - { 0x11c211b8, 0x11f8 }, /* JONGSEONG HIEUH-PIEUP = HIEUH + PIEUP */ - { 0x11ce11c2, 0x11cf }, /* JONGSEONG RIEUL-TIKEUT-HIEUH = RIEUL-TIKEUT + HIEUH */ - { 0x11dd11ba, 0x11de }, /* JONGSEONG MIEUM-SSANGSIOS = MIEUM-SIOS + SIOS */ - { 0x11ec11a8, 0x11ed }, /* JONGSEONG IEUNG-SSANGKIYEOK = IEUNG-KIYEOK + KIYEOK */ - { 0x11f011ba, 0x11f1 }, /* JONGSEONG YESIEUNG-SIOS = YESIEUNG + SIOS */ - { 0x11f011eb, 0x11f2 }, /* JONGSEONG YESIEUNG-PANSIOS = YESIEUNG + PANSIOS */ + { 0x11001100, 0x1101 }, /* choseong ssangkiyeok = kiyeok + kiyeok */ + { 0x11021100, 0x1113 }, /* choseong nieun-kiyeok = nieun + kiyeok */ + { 0x11021102, 0x1114 }, /* choseong ssangnieun = nieun + nieun */ + { 0x11021103, 0x1115 }, /* choseong nieun-tikeut = nieun + tikeut */ + { 0x11021107, 0x1116 }, /* choseong nieun-pieup = nieun + pieup */ + { 0x11031100, 0x1117 }, /* choseong tikeut-kiyeok = tikeut + kiyeok */ + { 0x11031103, 0x1104 }, /* choseong ssangtikeut = tikeut + tikeut */ + { 0x11051102, 0x1118 }, /* choseong rieul-nieun = rieul + nieun */ + { 0x11051105, 0x1119 }, /* choseong ssangrieul = rieul + rieul */ + { 0x1105110b, 0x111b }, /* choseong kapyeounrieul = rieul + ieung */ + { 0x11051112, 0x111a }, /* choseong rieul-hieuh = rieul + hieuh */ + { 0x11061107, 0x111c }, /* choseong mieum-pieup = mieum + pieup */ + { 0x1106110b, 0x111d }, /* choseong kapyeounmieum = mieum + ieung */ + { 0x11071100, 0x111e }, /* choseong pieup-kiyeok = pieup + kiyeok */ + { 0x11071102, 0x111f }, /* choseong pieup-nieun = pieup + nieun */ + { 0x11071103, 0x1120 }, /* choseong pieup-tikeut = pieup + tikeut */ + { 0x11071107, 0x1108 }, /* choseong ssangpieup = pieup + pieup */ + { 0x11071109, 0x1121 }, /* choseong pieup-sios = pieup + sios */ + { 0x1107110b, 0x112b }, /* choseong kapyeounpieup = pieup + ieung */ + { 0x1107110c, 0x1127 }, /* choseong pieup-cieuc = pieup + cieuc */ + { 0x1107110e, 0x1128 }, /* choseong pieup-chieuch = pieup + chieuch */ + { 0x11071110, 0x1129 }, /* choseong pieup-thieuth = pieup + thieuth */ + { 0x11071111, 0x112a }, /* choseong pieup-phieuph = pieup + phieuph */ + { 0x1108110b, 0x112c }, /* choseong kapyeounssangpieup = ssangpieup + ieung */ + { 0x11091100, 0x112d }, /* choseong sios-kiyeok = sios + kiyeok */ + { 0x11091102, 0x112e }, /* choseong sios-nieun = sios + nieun */ + { 0x11091103, 0x112f }, /* choseong sios-tikeut = sios + tikeut */ + { 0x11091105, 0x1130 }, /* choseong sios-rieul = sios + rieul */ + { 0x11091106, 0x1131 }, /* choseong sios-mieum = sios + mieum */ + { 0x11091107, 0x1132 }, /* choseong sios-pieup = sios + pieup */ + { 0x11091109, 0x110a }, /* choseong ssangsios = sios + sios */ + { 0x1109110b, 0x1135 }, /* choseong sios-ieung = sios + ieung */ + { 0x1109110c, 0x1136 }, /* choseong sios-cieuc = sios + cieuc */ + { 0x1109110e, 0x1137 }, /* choseong sios-chieuch = sios + chieuch */ + { 0x1109110f, 0x1138 }, /* choseong sios-khieukh = sios + khieukh */ + { 0x11091110, 0x1139 }, /* choseong sios-thieuth = sios + thieuth */ + { 0x11091111, 0x113a }, /* choseong sios-phieuph = sios + phieuph */ + { 0x11091112, 0x113b }, /* choseong sios-hieuh = sios + hieuh */ + { 0x110a1109, 0x1134 }, /* choseong sios-ssangsios = ssangsios + sios */ + { 0x110b1100, 0x1141 }, /* choseong ieung-kiyeok = ieung + kiyeok */ + { 0x110b1103, 0x1142 }, /* choseong ieung-tikeut = ieung + tikeut */ + { 0x110b1106, 0x1143 }, /* choseong ieung-mieum = ieung + mieum */ + { 0x110b1107, 0x1144 }, /* choseong ieung-pieup = ieung + pieup */ + { 0x110b1109, 0x1145 }, /* choseong ieung-sios = ieung + sios */ + { 0x110b110b, 0x1147 }, /* choseong ssangieung = ieung + ieung */ + { 0x110b110c, 0x1148 }, /* choseong ieung-cieuc = ieung + cieuc */ + { 0x110b110e, 0x1149 }, /* choseong ieung-chieuch = ieung + chieuch */ + { 0x110b1110, 0x114a }, /* choseong ieung-thieuth = ieung + thieuth */ + { 0x110b1111, 0x114b }, /* choseong ieung-phieuph = ieung + phieuph */ + { 0x110b1140, 0x1146 }, /* choseong ieung-pansios = ieung + pansios */ + { 0x110c110b, 0x114d }, /* choseong cieuc-ieung = cieuc + ieung */ + { 0x110c110c, 0x110d }, /* choseong ssangcieuc = cieuc + cieuc */ + { 0x110e110f, 0x1152 }, /* choseong chieuch-khieukh = chieuch + khieukh */ + { 0x110e1112, 0x1153 }, /* choseong chieuch-hieuh = chieuch + hieuh */ + { 0x11111107, 0x1156 }, /* choseong phieuph-pieup = phieuph + pieup */ + { 0x1111110b, 0x1157 }, /* choseong kapyeounphieuph = phieuph + ieung */ + { 0x11121112, 0x1158 }, /* choseong ssanghieuh = hieuh + hieuh */ + { 0x11211100, 0x1122 }, /* choseong pieup-sios-kiyeok = pieup-sios + kiyeok */ + { 0x11211103, 0x1123 }, /* choseong pieup-sios-tikeut = pieup-sios + tikeut */ + { 0x11211107, 0x1124 }, /* choseong pieup-sios-pieup = pieup-sios + pieup */ + { 0x11211109, 0x1125 }, /* choseong pieup-ssangsios = pieup-sios + sios */ + { 0x1121110c, 0x1126 }, /* choseong pieup-sios-cieuc = pieup-sios + cieuc */ + { 0x11321100, 0x1133 }, /* choseong sios-pieup-kiyeok = sios-pieup + kiyeok */ + { 0x113c113c, 0x113d }, /* choseong chitueumssangsios = chitueumsios + chitueumsios */ + { 0x113e113e, 0x113f }, /* choseong ceongchieumssangsios = ceongchieumsios + ceongchieumsios */ + { 0x114e114e, 0x114f }, /* choseong chitueumssangcieuc = chitueumcieuc + chitueumcieuc */ + { 0x11501150, 0x1151 }, /* choseong ceongchieumssangcieuc = ceongchieumcieuc + ceongchieumcieuc */ + { 0x11611169, 0x1176 }, /* jungseong a-o = a + o */ + { 0x1161116e, 0x1177 }, /* jungseong a-u = a + u */ + { 0x11611175, 0x1162 }, /* jungseong ae = a */ + { 0x11631169, 0x1178 }, /* jungseong ya-o = ya + o */ + { 0x1163116d, 0x1179 }, /* jungseong ya-yo = ya + yo */ + { 0x11631175, 0x1164 }, /* jungseong yae = ya */ + { 0x11651169, 0x117a }, /* jungseong eo-o = eo + o */ + { 0x1165116e, 0x117b }, /* jungseong eo-u = eo + u */ + { 0x11651173, 0x117c }, /* jungseong eo-eu = eo + eu */ + { 0x11651175, 0x1166 }, /* jungseong e = eo */ + { 0x11671169, 0x117d }, /* jungseong yeo-o = yeo + o */ + { 0x1167116e, 0x117e }, /* jungseong yeo-u = yeo + u */ + { 0x11671175, 0x1168 }, /* jungseong ye = yeo */ + { 0x11691161, 0x116a }, /* jungseong wa = o + a */ + { 0x11691165, 0x117f }, /* jungseong o-eo = o + eo */ + { 0x11691166, 0x1180 }, /* jungseong o-e = o + e */ + { 0x11691168, 0x1181 }, /* jungseong o-ye = o + ye */ + { 0x11691169, 0x1182 }, /* jungseong o-o = o + o */ + { 0x1169116e, 0x1183 }, /* jungseong o-u = o + u */ + { 0x11691175, 0x116c }, /* jungseong oe = o */ + { 0x116a1175, 0x116b }, /* jungseong wae = wa */ + { 0x116d1163, 0x1184 }, /* jungseong yo-ya = yo + ya */ + { 0x116d1164, 0x1185 }, /* jungseong yo-yae = yo + yae */ + { 0x116d1167, 0x1186 }, /* jungseong yo-yeo = yo + yeo */ + { 0x116d1169, 0x1187 }, /* jungseong yo-o = yo + o */ + { 0x116d1175, 0x1188 }, /* jungseong yo-i = yo + i */ + { 0x116e1161, 0x1189 }, /* jungseong u-a = u + a */ + { 0x116e1162, 0x118a }, /* jungseong u-ae = u + ae */ + { 0x116e1165, 0x116f }, /* jungseong weo = u + eo */ + { 0x116e1168, 0x118c }, /* jungseong u-ye = u + ye */ + { 0x116e116e, 0x118d }, /* jungseong u-u = u + u */ + { 0x116e1175, 0x1171 }, /* jungseong wi = u */ + { 0x116f1173, 0x118b }, /* jungseong u-eo-eu = weo + eu */ + { 0x116f1175, 0x1170 }, /* jungseong we = weo */ + { 0x11721161, 0x118e }, /* jungseong yu-a = yu + a */ + { 0x11721165, 0x118f }, /* jungseong yu-eo = yu + eo */ + { 0x11721166, 0x1190 }, /* jungseong yu-e = yu + e */ + { 0x11721167, 0x1191 }, /* jungseong yu-yeo = yu + yeo */ + { 0x11721168, 0x1192 }, /* jungseong yu-ye = yu + ye */ + { 0x1172116e, 0x1193 }, /* jungseong yu-u = yu + u */ + { 0x11721175, 0x1194 }, /* jungseong yu-i = yu + i */ + { 0x1173116e, 0x1195 }, /* jungseong eu-u = eu + u */ + { 0x11731173, 0x1196 }, /* jungseong eu-eu = eu + eu */ + { 0x11731175, 0x1174 }, /* jungseong yi = eu */ + { 0x1174116e, 0x1197 }, /* jungseong yi-u = yi + u */ + { 0x11751161, 0x1198 }, /* jungseong i-a = i + a */ + { 0x11751163, 0x1199 }, /* jungseong i-ya = i + ya */ + { 0x11751169, 0x119a }, /* jungseong i-o = i + o */ + { 0x1175116e, 0x119b }, /* jungseong i-u = i + u */ + { 0x11751173, 0x119c }, /* jungseong i-eu = i + eu */ + { 0x1175119e, 0x119d }, /* jungseong i-araea = i */ + { 0x119e1165, 0x119f }, /* jungseong araea-eo = araea + eo */ + { 0x119e116e, 0x11a0 }, /* jungseong araea-u = araea + u */ + { 0x119e1175, 0x11a1 }, /* jungseong araea-i = araea + i */ + { 0x119e119e, 0x11a2 }, /* jungseong ssangaraea = araea + araea */ + { 0x11a811a8, 0x11a9 }, /* jongseong ssangkiyeok = kiyeok + kiyeok */ + { 0x11a811af, 0x11c3 }, /* jongseong kiyeok-rieul = kiyeok + rieul */ + { 0x11a811ba, 0x11aa }, /* jongseong kiyeok-sios = kiyeok */ + { 0x11aa11a8, 0x11c4 }, /* jongseong kiyeok-sios-kiyeok = kiyeok-sios + kiyeok */ + { 0x11ab11a8, 0x11c5 }, /* jongseong nieun-kiyeok = nieun + kiyeok */ + { 0x11ab11ae, 0x11c6 }, /* jongseong nieun-tikeut = nieun + tikeut */ + { 0x11ab11ba, 0x11c7 }, /* jongseong nieun-sios = nieun + sios */ + { 0x11ab11bd, 0x11ac }, /* jongseong nieun-cieuc = nieun */ + { 0x11ab11c0, 0x11c9 }, /* jongseong nieun-thieuth = nieun + thieuth */ + { 0x11ab11c2, 0x11ad }, /* jongseong nieun-hieuh = nieun */ + { 0x11ab11eb, 0x11c8 }, /* jongseong nieun-pansios = nieun */ + { 0x11ae11a8, 0x11ca }, /* jongseong tikeut-kiyeok = tikeut + kiyeok */ + { 0x11ae11af, 0x11cb }, /* jongseong tikeut-rieul = tikeut + rieul */ + { 0x11af11a8, 0x11b0 }, /* jongseong rieul-kiyeok = rieul + kiyeok */ + { 0x11af11ab, 0x11cd }, /* jongseong rieul-nieun = rieul + nieun */ + { 0x11af11ae, 0x11ce }, /* jongseong rieul-tikeut = rieul + tikeut */ + { 0x11af11af, 0x11d0 }, /* jongseong ssangrieul = rieul + rieul */ + { 0x11af11b7, 0x11b1 }, /* jongseong rieul-mieum = rieul */ + { 0x11af11b8, 0x11b2 }, /* jongseong rieul-pieup = rieul */ + { 0x11af11ba, 0x11b3 }, /* jongseong rieul-sios = rieul */ + { 0x11af11bf, 0x11d8 }, /* jongseong rieul-khieukh = rieul + khieukh */ + { 0x11af11c0, 0x11b4 }, /* jongseong rieul-thieuth = rieul */ + { 0x11af11c1, 0x11b5 }, /* jongseong rieul-phieuph = rieul */ + { 0x11af11c2, 0x11b6 }, /* jongseong rieul-hieuh = rieul */ + { 0x11af11eb, 0x11d7 }, /* jongseong rieul-pansios = rieul */ + { 0x11af11f9, 0x11d9 }, /* jongseong rieul-yeorinhieuh = rieul */ + { 0x11b011ba, 0x11cc }, /* jongseong rieul-kiyeok-sios = rieul-kiyeok + sios */ + { 0x11b111a8, 0x11d1 }, /* jongseong rieul-mieum-kiyeok = rieul-mieum + kiyeok */ + { 0x11b111ba, 0x11d2 }, /* jongseong rieul-mieum-sios = rieul-mieum + sios */ + { 0x11b211ba, 0x11d3 }, /* jongseong rieul-pieup-sios = rieul-pieup + sios */ + { 0x11b211bc, 0x11d5 }, /* jongseong rieul-kapyeounpieup = rieul-pieup + ieung */ + { 0x11b211c2, 0x11d4 }, /* jongseong rieul-pieup-hieuh = rieul-pieup + hieuh */ + { 0x11b311ba, 0x11d6 }, /* jongseong rieul-ssangsios = rieul-sios + sios */ + { 0x11b711a8, 0x11da }, /* jongseong mieum-kiyeok = mieum + kiyeok */ + { 0x11b711af, 0x11db }, /* jongseong mieum-rieul = mieum + rieul */ + { 0x11b711b8, 0x11dc }, /* jongseong mieum-pieup = mieum + pieup */ + { 0x11b711ba, 0x11dd }, /* jongseong mieum-sios = mieum + sios */ + { 0x11b711bc, 0x11e2 }, /* jongseong kapyeounmieum = mieum + ieung */ + { 0x11b711be, 0x11e0 }, /* jongseong mieum-chieuch = mieum + chieuch */ + { 0x11b711c2, 0x11e1 }, /* jongseong mieum-hieuh = mieum + hieuh */ + { 0x11b711eb, 0x11df }, /* jongseong mieum-pansios = mieum */ + { 0x11b811af, 0x11e3 }, /* jongseong pieup-rieul = pieup + rieul */ + { 0x11b811ba, 0x11b9 }, /* jongseong pieup-sios = pieup */ + { 0x11b811bc, 0x11e6 }, /* jongseong kapyeounpieup = pieup + ieung */ + { 0x11b811c1, 0x11e4 }, /* jongseong pieup-phieuph = pieup + phieuph */ + { 0x11b811c2, 0x11e5 }, /* jongseong pieup-hieuh = pieup + hieuh */ + { 0x11ba11a8, 0x11e7 }, /* jongseong sios-kiyeok = sios + kiyeok */ + { 0x11ba11ae, 0x11e8 }, /* jongseong sios-tikeut = sios + tikeut */ + { 0x11ba11af, 0x11e9 }, /* jongseong sios-rieul = sios + rieul */ + { 0x11ba11b8, 0x11ea }, /* jongseong sios-pieup = sios + pieup */ + { 0x11ba11ba, 0x11bb }, /* jongseong ssangsios = sios + sios */ + { 0x11bc11a8, 0x11ec }, /* jongseong ieung-kiyeok = ieung + kiyeok */ + { 0x11bc11bc, 0x11ee }, /* jongseong ssangieung = ieung + ieung */ + { 0x11bc11bf, 0x11ef }, /* jongseong ieung-khieukh = ieung + khieukh */ + { 0x11c111b8, 0x11f3 }, /* jongseong phieuph-pieup = phieuph + pieup */ + { 0x11c111bc, 0x11f4 }, /* jongseong kapyeounphieuph = phieuph + ieung */ + { 0x11c211ab, 0x11f5 }, /* jongseong hieuh-nieun = hieuh + nieun */ + { 0x11c211af, 0x11f6 }, /* jongseong hieuh-rieul = hieuh + rieul */ + { 0x11c211b7, 0x11f7 }, /* jongseong hieuh-mieum = hieuh + mieum */ + { 0x11c211b8, 0x11f8 }, /* jongseong hieuh-pieup = hieuh + pieup */ + { 0x11ce11c2, 0x11cf }, /* jongseong rieul-tikeut-hieuh = rieul-tikeut + hieuh */ + { 0x11dd11ba, 0x11de }, /* jongseong mieum-ssangsios = mieum-sios + sios */ + { 0x11ec11a8, 0x11ed }, /* jongseong ieung-ssangkiyeok = ieung-kiyeok + kiyeok */ + { 0x11f011ba, 0x11f1 }, /* jongseong yesieung-sios = yesieung + sios */ + { 0x11f011eb, 0x11f2 }, /* jongseong yesieung-pansios = yesieung + pansios */ }; -- 2.7.4