~fcitx-team/fcitx/debian-libpinyin

« back to all changes in this revision

Viewing changes to src/eim.cpp

  • Committer: Aron Xu
  • Date: 2015-10-30 09:51:52 UTC
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: git-v1:c5354d82a6ac9726a43e44b35a1aab1313b1b360
ImportedĀ UpstreamĀ versionĀ 0.3.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
354
354
        char* user_path = FcitxLibPinyinGetUserPath(libpinyinaddon->config.bSimplifiedDataForZhuyin ? LPLT_Simplified : LPLT_Traditional);
355
355
        char* syspath = FcitxLibPinyinGetSysPath(libpinyinaddon->config.bSimplifiedDataForZhuyin ? LPLT_Simplified : LPLT_Traditional);
356
356
        libpinyinaddon->zhuyin_context = pinyin_init(syspath, user_path);
357
 
        pinyin_load_phrase_library(libpinyinaddon->zhuyin_context, GBK_DICTIONARY);
358
 
        pinyin_load_phrase_library(libpinyinaddon->zhuyin_context, MERGED_DICTIONARY);
359
 
        pinyin_load_phrase_library(libpinyinaddon->zhuyin_context, 14);
360
 
        pinyin_load_phrase_library(libpinyinaddon->zhuyin_context, USER_DICTIONARY);
361
357
        free(user_path);
362
358
        free(syspath);
363
359
    }
366
362
        char* user_path = FcitxLibPinyinGetUserPath(libpinyinaddon->config.bTraditionalDataForPinyin ? LPLT_Traditional : LPLT_Simplified);
367
363
        char* syspath = FcitxLibPinyinGetSysPath(libpinyinaddon->config.bTraditionalDataForPinyin ? LPLT_Traditional : LPLT_Simplified);
368
364
        libpinyinaddon->pinyin_context = pinyin_init(syspath, user_path);
369
 
        pinyin_load_phrase_library(libpinyinaddon->pinyin_context, GBK_DICTIONARY);
370
 
        pinyin_load_phrase_library(libpinyinaddon->pinyin_context, MERGED_DICTIONARY);
371
 
        pinyin_load_phrase_library(libpinyinaddon->pinyin_context, 14);
372
 
        pinyin_load_phrase_library(libpinyinaddon->pinyin_context, USER_DICTIONARY);
373
365
        free(user_path);
374
366
        free(syspath);
375
367
    }
770
762
    }
771
763
 
772
764
    if (ss.str().length() > 0) {
773
 
        import_iterator_t* iter = pinyin_begin_add_phrases(context, 15);
 
765
        import_iterator_t* iter = pinyin_begin_add_phrases(context, USER_DICTIONARY);
774
766
        if (iter) {
775
767
            char* hz = (char*) args.args[0];
776
768
            pinyin_iterator_add_phrase(iter, hz, ss.str().c_str(), -1);
792
784
{
793
785
    FcitxLibPinyinAddonInstance* libpinyinaddon = (FcitxLibPinyinAddonInstance*) fcitx_utils_malloc0(sizeof(FcitxLibPinyinAddonInstance));
794
786
    bindtextdomain("fcitx-libpinyin", LOCALEDIR);
 
787
    bind_textdomain_codeset("fcitx-libpinyin", "UTF-8");
795
788
    libpinyinaddon->owner = instance;
796
789
    FcitxAddon* addon = FcitxAddonsGetAddonByName(FcitxInstanceGetAddons(instance), "fcitx-libpinyin");
797
790
 
892
885
    if (libpinyinaddon->zhuyin_context) {
893
886
        pinyin_set_chewing_scheme(libpinyinaddon->zhuyin_context, FcitxLibPinyinTransZhuyinLayout(config->zhuyinLayout));
894
887
 
895
 
        for (int i = 0; i <= FCITX_DICT_LAST; i++) {
896
 
            if (config->dict[i]) {
897
 
                pinyin_load_phrase_library(libpinyinaddon->zhuyin_context, FcitxLibPinyinTransDictionary(static_cast<FCITX_DICTIONARY>(i)));
 
888
        for (int i = 0; i <= FCITX_ZHUYIN_DICT_LAST; i++) {
 
889
            if (config->dict_zhuyin[i]) {
 
890
                pinyin_load_addon_phrase_library(libpinyinaddon->zhuyin_context, FcitxLibPinyinTransZhuyinDictionary(static_cast<FCITX_ZHUYIN_DICTIONARY>(i)));
898
891
            } else {
899
 
                pinyin_unload_phrase_library(libpinyinaddon->zhuyin_context, FcitxLibPinyinTransDictionary(static_cast<FCITX_DICTIONARY>(i)));
 
892
                pinyin_unload_addon_phrase_library(libpinyinaddon->zhuyin_context, FcitxLibPinyinTransZhuyinDictionary(static_cast<FCITX_ZHUYIN_DICTIONARY>(i)));
900
893
            }
901
894
        }
902
895
    }
904
897
        pinyin_set_double_pinyin_scheme(libpinyinaddon->pinyin_context, FcitxLibPinyinTransShuangpinScheme(config->spScheme));
905
898
        for (int i = 0; i <= FCITX_DICT_LAST; i++) {
906
899
            if (config->dict[i]) {
907
 
                pinyin_load_phrase_library(libpinyinaddon->pinyin_context, FcitxLibPinyinTransDictionary(static_cast<FCITX_DICTIONARY>(i)));
 
900
                pinyin_load_addon_phrase_library(libpinyinaddon->pinyin_context, FcitxLibPinyinTransDictionary(static_cast<FCITX_DICTIONARY>(i)));
908
901
            } else {
909
 
                pinyin_unload_phrase_library(libpinyinaddon->pinyin_context, FcitxLibPinyinTransDictionary(static_cast<FCITX_DICTIONARY>(i)));
 
902
                pinyin_unload_addon_phrase_library(libpinyinaddon->pinyin_context, FcitxLibPinyinTransDictionary(static_cast<FCITX_DICTIONARY>(i)));
910
903
            }
911
904
        }
912
905
    }
969
962
 
970
963
    switch (type) {
971
964
    case 0:
972
 
        pinyin_mask_out(context, PHRASE_INDEX_LIBRARY_MASK, PHRASE_INDEX_MAKE_TOKEN(15, null_token));
 
965
        pinyin_mask_out(context, PHRASE_INDEX_LIBRARY_MASK, PHRASE_INDEX_MAKE_TOKEN(USER_DICTIONARY, null_token));
 
966
        pinyin_mask_out(context, PHRASE_INDEX_LIBRARY_MASK, PHRASE_INDEX_MAKE_TOKEN(ADDON_DICTIONARY, null_token));
973
967
        break;
974
968
    case 1:
975
 
        pinyin_mask_out(context, PHRASE_INDEX_LIBRARY_MASK, PHRASE_INDEX_MAKE_TOKEN(14, null_token));
 
969
        pinyin_mask_out(context, PHRASE_INDEX_LIBRARY_MASK, PHRASE_INDEX_MAKE_TOKEN(NETWORK_DICTIONARY, null_token));
976
970
        break;
977
971
    case 2:
978
972
        pinyin_mask_out(context, 0, 0);
999
993
 
1000
994
    const char* path = langType == LPLT_Simplified ? "libpinyin/importdict" : "libpinyin/importdict_zhuyin";
1001
995
 
1002
 
    pinyin_mask_out(context, PHRASE_INDEX_LIBRARY_MASK, PHRASE_INDEX_MAKE_TOKEN(14, null_token));
 
996
    pinyin_mask_out(context, PHRASE_INDEX_LIBRARY_MASK, PHRASE_INDEX_MAKE_TOKEN(NETWORK_DICTIONARY, null_token));
1003
997
 
1004
 
    import_iterator_t* iter = pinyin_begin_add_phrases(context, 14);
 
998
    import_iterator_t* iter = pinyin_begin_add_phrases(context, NETWORK_DICTIONARY);
1005
999
    if (iter == NULL) {
1006
1000
        return;
1007
1001
    }