const char* id;
const char* name;
const ucschar* table;
- const HangulCombination* combination_table;
+ const HangulCombination* combination;
};
struct _HangulCombinationItem {
int type;
const HangulKeyboard* keyboard;
- const HangulCombination* combination;
HangulBuffer buffer;
int output_mode;
} else {
/* 옛글 조합 규칙을 사용하는 자판의 경우에는 종성이 conjoinable
* 하지 않아도 상관없다 */
- if (hic->keyboard->combination_table == &hangul_combination_full) {
+ if (hic->keyboard->combination == &hangul_combination_full) {
return jong;
}
}
if (hic->buffer.jongseong) {
if (hangul_is_choseong(ch)) {
jong = hangul_ic_choseong_to_jongseong(hic, ch);
- combined = hangul_combination_combine(hic->combination,
+ combined = hangul_combination_combine(hic->keyboard->combination,
hic->buffer.jongseong, jong);
if (hangul_is_jongseong(combined)) {
if (!hangul_ic_push(hic, combined)) {
}
}
} else if (hangul_is_jungseong(ch)) {
- combined = hangul_combination_combine(hic->combination,
+ combined = hangul_combination_combine(hic->keyboard->combination,
hic->buffer.jungseong, ch);
if (hangul_is_jungseong(combined)) {
if (!hangul_ic_push(hic, combined)) {
}
} else if (hic->buffer.choseong) {
if (hangul_is_choseong(ch)) {
- combined = hangul_combination_combine(hic->combination,
+ combined = hangul_combination_combine(hic->keyboard->combination,
hic->buffer.choseong, ch);
if (!hangul_ic_push(hic, combined)) {
if (!hangul_ic_push(hic, ch)) {
} else {
ucschar choseong = 0;
if (hangul_is_choseong(hangul_ic_peek(hic))) {
- choseong = hangul_combination_combine(hic->combination,
+ choseong = hangul_combination_combine(hic->keyboard->combination,
hic->buffer.choseong, ch);
}
if (choseong) {
} else {
ucschar jungseong = 0;
if (hangul_is_jungseong(hangul_ic_peek(hic))) {
- jungseong = hangul_combination_combine(hic->combination,
+ jungseong = hangul_combination_combine(hic->keyboard->combination,
hic->buffer.jungseong, ch);
}
if (jungseong) {
} else {
ucschar jongseong = 0;
if (hangul_is_jongseong(hangul_ic_peek(hic))) {
- jongseong = hangul_combination_combine(hic->combination,
+ jongseong = hangul_combination_combine(hic->keyboard->combination,
hic->buffer.jongseong, ch);
}
if (jongseong) {
jong = ch;
else
jong = hangul_ic_choseong_to_jongseong(hic, ch);
- combined = hangul_combination_combine(hic->combination,
+ combined = hangul_combination_combine(hic->keyboard->combination,
hic->buffer.jongseong, jong);
if (hangul_is_jongseong(combined)) {
if (!hangul_ic_push(hic, combined)) {
}
}
} else if (hangul_is_jungseong(ch)) {
- combined = hangul_combination_combine(hic->combination,
+ combined = hangul_combination_combine(hic->keyboard->combination,
hic->buffer.jungseong, ch);
if (hangul_is_jungseong(combined)) {
if (!hangul_ic_push(hic, combined)) {
}
} else if (hic->buffer.choseong) {
if (hangul_is_choseong(ch)) {
- combined = hangul_combination_combine(hic->combination,
+ combined = hangul_combination_combine(hic->keyboard->combination,
hic->buffer.choseong, ch);
if (combined == 0) {
hic->buffer.jungseong = 0x1173;
keyboard = hangul_ic_get_keyboard_by_id(id);
if (keyboard != NULL) {
hic->keyboard = keyboard;
- hic->combination = keyboard->combination_table;
} else {
hic->keyboard = &hangul_keyboard_2;
- hic->combination = hangul_keyboard_2.combination_table;
}
}
hangul_ic_set_combination(HangulInputContext *hic,
const HangulCombination* combination)
{
- if (hic == NULL || combination == NULL)
- return;
-
- hic->combination = combination;
}
/**