示例#1
0
文件: addon.c 项目: rwdxll/fcitx5
FCITX_EXPORT_API
void fcitx_addon_manager_set_override(FcitxAddonManager* manager, const char* enabled, const char* disabled)
{
    fcitx_string_hashset_free(manager->enabledAddons);
    fcitx_string_hashset_free(manager->disabledAddons);

    manager->enabledAddons = enabled ? fcitx_string_hashset_parse(enabled, ',') : NULL;
    manager->disabledAddons = disabled ? fcitx_string_hashset_parse(disabled, ',') : NULL;
    manager->disabledAllAddons = manager->disabledAddons ? fcitx_string_hashset_contains(manager->disabledAddons, "all") : false;

}
示例#2
0
FCITX_EXPORT_API
void fcitx_description_free(FcitxDescription* desc)
{
    if (!desc) {
        return;
    }

    free(desc->errorMessage);
    fcitx_string_hashset_free(desc->structs);
    fcitx_string_hashset_free(desc->topLevelStructs);
    fcitx_configuration_unref(desc->rootConfig);
    free(desc);
}
示例#3
0
文件: addon.c 项目: rwdxll/fcitx5
void fcitx_addon_manager_free(FcitxAddonManager* manager)
{
    if (manager->loaded) {
        fcitx_addon_manager_unload(manager);
    }
    fcitx_dict_free(manager->properties);
    fcitx_ptr_array_free(manager->loadedAddons);
    fcitx_standard_path_unref(manager->standardPath);
    fcitx_dict_free(manager->addons);
    fcitx_dict_free(manager->resolvers);
    fcitx_string_hashset_free(manager->enabledAddons);
    fcitx_string_hashset_free(manager->disabledAddons);
    free(manager);
}
示例#4
0
void test_string_hash_set()
{

    FcitxStringHashSet* sset = fcitx_string_hashset_parse("a,b,c,d", ',');
    assert(fcitx_dict_size(sset) == 4);
    assert(fcitx_string_hashset_contains(sset, "c"));
    assert(!fcitx_string_hashset_contains(sset, "e"));
    fcitx_string_hashset_remove(sset, "c");
    assert(!fcitx_string_hashset_contains(sset, "c"));
    fcitx_string_hashset_insert(sset, "e");
    assert(fcitx_string_hashset_contains(sset, "e"));

    /* uthash guarantee order, so we can sure about this */
    char* joined = fcitx_string_hashset_join(sset, ',');
    assert(strcmp(joined, "a,b,d,e") == 0);

    free(joined);

    fcitx_string_hashset_free(sset);
}
示例#5
0
文件: addon.c 项目: rwdxll/fcitx5
void fcitx_addon_free(FcitxAddon* addon)
{
    fcitx_addon_config_free(addon->config);
    fcitx_string_hashset_free(addon->dependencies);
    free(addon);
}