From 722857195c111dbe41dc240747e73720999d5017 Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Mon, 18 Jan 2010 14:50:21 +0800 Subject: [PATCH] Use lve, nve to replace lue, nue --- scripts/genpytable.py | 5 ++-- scripts/pydict.py | 10 +++---- src/Config.cc | 5 ++-- src/PinyinParserTable.h | 80 ++++++++++++++++++++++++------------------------- src/Types.h | 56 +++++++++++++++++----------------- 5 files changed, 80 insertions(+), 76 deletions(-) diff --git a/scripts/genpytable.py b/scripts/genpytable.py index bb60cc5..8abb2e1 100644 --- a/scripts/genpytable.py +++ b/scripts/genpytable.py @@ -21,7 +21,8 @@ auto_correct = [ ("iu", "iou"), ("ui", "uei"), ("un", "uen"), - ("ue", "ve")] + ("ue", "ve"), + ("ve", "ue")] fuzzy_shengmu = [ ("c", "ch"), @@ -104,7 +105,7 @@ def get_pinyin(): yield p, s, y, len(p), [] for s in shengmu_list: - yield s, s, "", len(s), ["PINYIN_SIMPLE_PINYIN"] + yield s, s, "", len(s), ["PINYIN_INCOMPLETE_PINYIN"] for c, w in auto_correct: flag = "PINYIN_CORRECT_%s_TO_%s" % (w.upper(), c.upper()) diff --git a/scripts/pydict.py b/scripts/pydict.py index f864030..029d421 100644 --- a/scripts/pydict.py +++ b/scripts/pydict.py @@ -61,9 +61,9 @@ PINYIN_DICT = { "li" : 171, "lia" : 172, "lian" : 173, "liang" : 174, "liao" : 175, "lie" : 176, "lin" : 177, "ling" : 178, "liu" : 179, "lo" : 180, - "long" : 181, "lou" : 182, "lu" : 183, "luan" : 184, "lue" : 185, - "lun" : 186, "luo" : 187, "lv" : 188, - # "lve" : 189, + "long" : 181, "lou" : 182, "lu" : 183, "luan" : 184, + # "lue" : 185, + "lun" : 186, "luo" : 187, "lv" : 188, "lve" : 189, "ma" : 190, "mai" : 191, "man" : 192, "mang" : 193, "mao" : 194, "me" : 195, "mei" : 196, "men" : 197, "meng" : 198, "mi" : 199, "mian" : 200, @@ -74,8 +74,8 @@ PINYIN_DICT = { "niao" : 221, "nie" : 222, "nin" : 223, "ning" : 224, "niu" : 225, # "ng" : 226, "nong" : 227, "nou" : 228, "nu" : 229, "nuan" : 230, - "nue" : 231, "nuo" : 232, "nv" : 233, - # "nve" : 234, + # "nue" : 231, + "nuo" : 232, "nv" : 233, "nve" : 234, "o" : 235, "ou" : 236, "pa" : 237, "pai" : 238, "pan" : 239, "pang" : 240, "pao" : 241, "pei" : 242, "pen" : 243, "peng" : 244, "pi" : 245, diff --git a/src/Config.cc b/src/Config.cc index 8d4b301..1995953 100644 --- a/src/Config.cc +++ b/src/Config.cc @@ -55,6 +55,7 @@ static const struct { { StaticString ("CorrectPinyin_UEI_UI"), PINYIN_CORRECT_UEI_TO_UI, TRUE }, { StaticString ("CorrectPinyin_UEN_UN"), PINYIN_CORRECT_UEN_TO_UN, TRUE }, { StaticString ("CorrectPinyin_VE_UE"), PINYIN_CORRECT_VE_TO_UE, TRUE }, + { StaticString ("CorrectPinyin_UE_UE"), PINYIN_CORRECT_UE_TO_VE, TRUE }, /* fuzzy pinyin */ { StaticString ("FuzzyPinyin_C_CH"), PINYIN_FUZZY_C_CH, FALSE }, { StaticString ("FuzzyPinyin_CH_C"), PINYIN_FUZZY_CH_C, FALSE }, @@ -117,7 +118,7 @@ Config::readDefaultValues (void) m_option_mask &= ~PINYIN_FUZZY_ALL; /* read values */ - for (guint i = 0;i < sizeof (options) / sizeof (options[0]); i++) { + for (guint i = 0; i < G_N_ELEMENTS (options); i++) { if (read (engine_pinyin, options[i].name, options[i].defval)) m_option |= options[i].option; else @@ -215,7 +216,7 @@ Config::valueChangedCallback (IBusConfig *config, m_option_mask &= ~PINYIN_FUZZY_ALL; } else { - for (guint i = 0;i < sizeof (options) / sizeof (options[0]); i++) { + for (guint i = 0; i < G_N_ELEMENTS (options); i++) { if (G_LIKELY (options[i].name != name)) continue; if (normalizeGValue (value, options[i].defval)) diff --git a/src/PinyinParserTable.h b/src/PinyinParserTable.h index ece5a47..95fd9a8 100644 --- a/src/PinyinParserTable.h +++ b/src/PinyinParserTable.h @@ -3980,15 +3980,15 @@ static const Pinyin pinyin_table[] = { { /* 306 */ text : "lue", sheng : "l", - yun : "ue", + yun : "ve", sheng_id : PINYIN_ID_L, - yun_id : PINYIN_ID_UE, + yun_id : PINYIN_ID_VE, fsheng_id : PINYIN_ID_N, fyun_id : PINYIN_ID_ZERO, fsheng_id_2 : PINYIN_ID_R, fyun_id_2 : PINYIN_ID_ZERO, len : 3, - flags : 0 + flags : PINYIN_CORRECT_UE_TO_VE }, { /* 307 */ text : "luen", @@ -4058,15 +4058,15 @@ static const Pinyin pinyin_table[] = { { /* 312 */ text : "lve", sheng : "l", - yun : "ue", + yun : "ve", sheng_id : PINYIN_ID_L, - yun_id : PINYIN_ID_UE, + yun_id : PINYIN_ID_VE, fsheng_id : PINYIN_ID_N, fyun_id : PINYIN_ID_ZERO, fsheng_id_2 : PINYIN_ID_R, fyun_id_2 : PINYIN_ID_ZERO, len : 3, - flags : PINYIN_CORRECT_VE_TO_UE + flags : 0 }, { /* 313 */ text : "m", @@ -4903,15 +4903,15 @@ static const Pinyin pinyin_table[] = { { /* 377 */ text : "nue", sheng : "n", - yun : "ue", + yun : "ve", sheng_id : PINYIN_ID_N, - yun_id : PINYIN_ID_UE, + yun_id : PINYIN_ID_VE, fsheng_id : PINYIN_ID_L, fyun_id : PINYIN_ID_ZERO, fsheng_id_2 : PINYIN_ID_ZERO, fyun_id_2 : PINYIN_ID_ZERO, len : 3, - flags : 0 + flags : PINYIN_CORRECT_UE_TO_VE }, { /* 378 */ text : "nun", @@ -4955,15 +4955,15 @@ static const Pinyin pinyin_table[] = { { /* 381 */ text : "nve", sheng : "n", - yun : "ue", + yun : "ve", sheng_id : PINYIN_ID_N, - yun_id : PINYIN_ID_UE, + yun_id : PINYIN_ID_VE, fsheng_id : PINYIN_ID_L, fyun_id : PINYIN_ID_ZERO, fsheng_id_2 : PINYIN_ID_ZERO, fyun_id_2 : PINYIN_ID_ZERO, len : 3, - flags : PINYIN_CORRECT_VE_TO_UE + flags : 0 }, { /* 382 */ text : "o", @@ -6045,19 +6045,6 @@ static const Pinyin pinyin_table[] = { flags : PINYIN_FUZZY_UANG_UAN }, { /* 465 */ - text : "rue", - sheng : "r", - yun : "ue", - sheng_id : PINYIN_ID_R, - yun_id : PINYIN_ID_UE, - fsheng_id : PINYIN_ID_L, - fyun_id : PINYIN_ID_ZERO, - fsheng_id_2 : PINYIN_ID_ZERO, - fyun_id_2 : PINYIN_ID_ZERO, - len : 3, - flags : PINYIN_FUZZY_R_L - }, - { /* 466 */ text : "ruei", sheng : "r", yun : "ui", @@ -6070,7 +6057,7 @@ static const Pinyin pinyin_table[] = { len : 4, flags : PINYIN_CORRECT_UEI_TO_UI }, - { /* 467 */ + { /* 466 */ text : "ruen", sheng : "r", yun : "un", @@ -6083,7 +6070,7 @@ static const Pinyin pinyin_table[] = { len : 4, flags : PINYIN_CORRECT_UEN_TO_UN }, - { /* 468 */ + { /* 467 */ text : "rui", sheng : "r", yun : "ui", @@ -6096,7 +6083,7 @@ static const Pinyin pinyin_table[] = { len : 3, flags : 0 }, - { /* 469 */ + { /* 468 */ text : "run", sheng : "r", yun : "un", @@ -6109,7 +6096,7 @@ static const Pinyin pinyin_table[] = { len : 3, flags : 0 }, - { /* 470 */ + { /* 469 */ text : "ruo", sheng : "r", yun : "uo", @@ -6122,7 +6109,7 @@ static const Pinyin pinyin_table[] = { len : 3, flags : 0 }, - { /* 471 */ + { /* 470 */ text : "rv", sheng : "r", yun : "v", @@ -6135,6 +6122,19 @@ static const Pinyin pinyin_table[] = { len : 2, flags : PINYIN_FUZZY_R_L }, + { /* 471 */ + text : "rve", + sheng : "r", + yun : "ve", + sheng_id : PINYIN_ID_R, + yun_id : PINYIN_ID_VE, + fsheng_id : PINYIN_ID_L, + fyun_id : PINYIN_ID_ZERO, + fsheng_id_2 : PINYIN_ID_ZERO, + fyun_id_2 : PINYIN_ID_ZERO, + len : 3, + flags : PINYIN_FUZZY_R_L + }, { /* 472 */ text : "s", sheng : "s", @@ -9248,13 +9248,13 @@ static const Pinyin *special_table[][4] = { { &pinyin_table[295], &pinyin_table[6], &pinyin_table[294], &pinyin_table[161], }, /* ling ao => lin gao */ { &pinyin_table[295], &pinyin_table[125], &pinyin_table[294], &pinyin_table[162], }, /* ling e => lin ge */ { &pinyin_table[295], &pinyin_table[126], &pinyin_table[294], &pinyin_table[164], }, /* ling ei => lin gei */ - { &pinyin_table[306], &pinyin_table[434], &pinyin_table[303], &pinyin_table[128], }, /* lue r => lu er */ { &pinyin_table[309], &pinyin_table[0], &pinyin_table[303], &pinyin_table[342], }, /* lun a => lu na */ { &pinyin_table[309], &pinyin_table[4], &pinyin_table[303], &pinyin_table[346], }, /* lun an => lu nan */ { &pinyin_table[309], &pinyin_table[5], &pinyin_table[303], &pinyin_table[347], }, /* lun ang => lu nang */ { &pinyin_table[309], &pinyin_table[6], &pinyin_table[303], &pinyin_table[348], }, /* lun ao => lu nao */ { &pinyin_table[309], &pinyin_table[125], &pinyin_table[303], &pinyin_table[349], }, /* lun e => lu ne */ { &pinyin_table[309], &pinyin_table[126], &pinyin_table[303], &pinyin_table[351], }, /* lun ei => lu nei */ + { &pinyin_table[312], &pinyin_table[434], &pinyin_table[311], &pinyin_table[128], }, /* lve r => lv er */ { &pinyin_table[318], &pinyin_table[0], &pinyin_table[314], &pinyin_table[342], }, /* man a => ma na */ { &pinyin_table[318], &pinyin_table[4], &pinyin_table[314], &pinyin_table[346], }, /* man an => ma nan */ { &pinyin_table[318], &pinyin_table[5], &pinyin_table[314], &pinyin_table[347], }, /* man ang => ma nang */ @@ -9334,7 +9334,7 @@ static const Pinyin *special_table[][4] = { { &pinyin_table[366], &pinyin_table[126], &pinyin_table[365], &pinyin_table[164], }, /* ning ei => nin gei */ { &pinyin_table[366], &pinyin_table[127], &pinyin_table[365], &pinyin_table[166], }, /* ning en => nin gen */ { &pinyin_table[366], &pinyin_table[383], &pinyin_table[365], &pinyin_table[171], }, /* ning ou => nin gou */ - { &pinyin_table[377], &pinyin_table[434], &pinyin_table[374], &pinyin_table[128], }, /* nue r => nu er */ + { &pinyin_table[381], &pinyin_table[434], &pinyin_table[380], &pinyin_table[128], }, /* nve r => nv er */ { &pinyin_table[389], &pinyin_table[0], &pinyin_table[385], &pinyin_table[342], }, /* pan a => pa na */ { &pinyin_table[389], &pinyin_table[4], &pinyin_table[385], &pinyin_table[346], }, /* pan an => pa nan */ { &pinyin_table[389], &pinyin_table[6], &pinyin_table[385], &pinyin_table[348], }, /* pan ao => pa nao */ @@ -9398,14 +9398,14 @@ static const Pinyin *special_table[][4] = { { &pinyin_table[447], &pinyin_table[126], &pinyin_table[446], &pinyin_table[164], }, /* reng ei => ren gei */ { &pinyin_table[447], &pinyin_table[127], &pinyin_table[446], &pinyin_table[166], }, /* reng en => ren gen */ { &pinyin_table[447], &pinyin_table[383], &pinyin_table[446], &pinyin_table[171], }, /* reng ou => ren gou */ - { &pinyin_table[469], &pinyin_table[0], &pinyin_table[462], &pinyin_table[342], }, /* run a => ru na */ - { &pinyin_table[469], &pinyin_table[2], &pinyin_table[462], &pinyin_table[344], }, /* run ai => ru nai */ - { &pinyin_table[469], &pinyin_table[4], &pinyin_table[462], &pinyin_table[346], }, /* run an => ru nan */ - { &pinyin_table[469], &pinyin_table[5], &pinyin_table[462], &pinyin_table[347], }, /* run ang => ru nang */ - { &pinyin_table[469], &pinyin_table[6], &pinyin_table[462], &pinyin_table[348], }, /* run ao => ru nao */ - { &pinyin_table[469], &pinyin_table[125], &pinyin_table[462], &pinyin_table[349], }, /* run e => ru ne */ - { &pinyin_table[469], &pinyin_table[126], &pinyin_table[462], &pinyin_table[351], }, /* run ei => ru nei */ - { &pinyin_table[469], &pinyin_table[127], &pinyin_table[462], &pinyin_table[353], }, /* run en => ru nen */ + { &pinyin_table[468], &pinyin_table[0], &pinyin_table[462], &pinyin_table[342], }, /* run a => ru na */ + { &pinyin_table[468], &pinyin_table[2], &pinyin_table[462], &pinyin_table[344], }, /* run ai => ru nai */ + { &pinyin_table[468], &pinyin_table[4], &pinyin_table[462], &pinyin_table[346], }, /* run an => ru nan */ + { &pinyin_table[468], &pinyin_table[5], &pinyin_table[462], &pinyin_table[347], }, /* run ang => ru nang */ + { &pinyin_table[468], &pinyin_table[6], &pinyin_table[462], &pinyin_table[348], }, /* run ao => ru nao */ + { &pinyin_table[468], &pinyin_table[125], &pinyin_table[462], &pinyin_table[349], }, /* run e => ru ne */ + { &pinyin_table[468], &pinyin_table[126], &pinyin_table[462], &pinyin_table[351], }, /* run ei => ru nei */ + { &pinyin_table[468], &pinyin_table[127], &pinyin_table[462], &pinyin_table[353], }, /* run en => ru nen */ { &pinyin_table[477], &pinyin_table[125], &pinyin_table[473], &pinyin_table[349], }, /* san e => sa ne */ { &pinyin_table[477], &pinyin_table[126], &pinyin_table[473], &pinyin_table[351], }, /* san ei => sa nei */ { &pinyin_table[478], &pinyin_table[0], &pinyin_table[477], &pinyin_table[155], }, /* sang a => san ga */ diff --git a/src/Types.h b/src/Types.h index f98e70d..0dbdcd1 100644 --- a/src/Types.h +++ b/src/Types.h @@ -60,6 +60,7 @@ namespace PY { #define PINYIN_ID_UAN (50) #define PINYIN_ID_UANG (51) #define PINYIN_ID_UE (52) +#define PINYIN_ID_VE PINYIN_ID_UE #define PINYIN_ID_UI (53) #define PINYIN_ID_UN (54) #define PINYIN_ID_UO (55) @@ -73,35 +74,36 @@ namespace PY { #define PINYIN_CORRECT_IOU_TO_IU (1 << 3) #define PINYIN_CORRECT_UEI_TO_UI (1 << 4) #define PINYIN_CORRECT_UEN_TO_UN (1 << 5) -#define PINYIN_CORRECT_VE_TO_UE (1 << 6) -#define PINYIN_CORRECT_ALL (0x0000007e) +#define PINYIN_CORRECT_UE_TO_VE (1 << 6) +#define PINYIN_CORRECT_VE_TO_UE (1 << 7) +#define PINYIN_CORRECT_ALL (0x000000fe) -#define PINYIN_FUZZY_C_CH (1 << 7) -#define PINYIN_FUZZY_CH_C (1 << 8) -#define PINYIN_FUZZY_Z_ZH (1 << 9) -#define PINYIN_FUZZY_ZH_Z (1 << 10) -#define PINYIN_FUZZY_S_SH (1 << 11) -#define PINYIN_FUZZY_SH_S (1 << 12) -#define PINYIN_FUZZY_L_N (1 << 13) -#define PINYIN_FUZZY_N_L (1 << 14) -#define PINYIN_FUZZY_F_H (1 << 15) -#define PINYIN_FUZZY_H_F (1 << 16) -#define PINYIN_FUZZY_L_R (1 << 17) -#define PINYIN_FUZZY_R_L (1 << 18) -#define PINYIN_FUZZY_K_G (1 << 19) -#define PINYIN_FUZZY_G_K (1 << 20) +#define PINYIN_FUZZY_C_CH (1 << 8) +#define PINYIN_FUZZY_CH_C (1 << 9) +#define PINYIN_FUZZY_Z_ZH (1 << 10) +#define PINYIN_FUZZY_ZH_Z (1 << 11) +#define PINYIN_FUZZY_S_SH (1 << 12) +#define PINYIN_FUZZY_SH_S (1 << 13) +#define PINYIN_FUZZY_L_N (1 << 14) +#define PINYIN_FUZZY_N_L (1 << 15) +#define PINYIN_FUZZY_F_H (1 << 16) +#define PINYIN_FUZZY_H_F (1 << 17) +#define PINYIN_FUZZY_L_R (1 << 18) +#define PINYIN_FUZZY_R_L (1 << 19) +#define PINYIN_FUZZY_K_G (1 << 20) +#define PINYIN_FUZZY_G_K (1 << 21) -#define PINYIN_FUZZY_AN_ANG (1 << 21) -#define PINYIN_FUZZY_ANG_AN (1 << 22) -#define PINYIN_FUZZY_EN_ENG (1 << 23) -#define PINYIN_FUZZY_ENG_EN (1 << 24) -#define PINYIN_FUZZY_IN_ING (1 << 25) -#define PINYIN_FUZZY_ING_IN (1 << 26) -#define PINYIN_FUZZY_IAN_IANG (1 << 27) -#define PINYIN_FUZZY_IANG_IAN (1 << 28) -#define PINYIN_FUZZY_UAN_UANG (1 << 29) -#define PINYIN_FUZZY_UANG_UAN (1 << 30) -#define PINYIN_FUZZY_ALL (0x7fffff80) +#define PINYIN_FUZZY_AN_ANG (1 << 22) +#define PINYIN_FUZZY_ANG_AN (1 << 23) +#define PINYIN_FUZZY_EN_ENG (1 << 24) +#define PINYIN_FUZZY_ENG_EN (1 << 25) +#define PINYIN_FUZZY_IN_ING (1 << 26) +#define PINYIN_FUZZY_ING_IN (1 << 27) +#define PINYIN_FUZZY_IAN_IANG (1 << 28) +#define PINYIN_FUZZY_IANG_IAN (1 << 29) +#define PINYIN_FUZZY_UAN_UANG (1 << 30) +#define PINYIN_FUZZY_UANG_UAN (1 << 31) +#define PINYIN_FUZZY_ALL (0xffffff00) typedef struct _Pinyin Pinyin; struct _Pinyin { -- 2.7.4