Exemplo n.º 1
0
FCITX_EXPORT_API
FcitxAddonManager* fcitx_addon_manager_new(FcitxStandardPath* standardPath)
{
    FcitxAddonManager* manager = fcitx_utils_new(FcitxAddonManager);
    manager->resolvers = fcitx_dict_new(fcitx_addon_resolver_free);
    manager->standardPath = fcitx_standard_path_ref(standardPath);
    manager->addons = fcitx_dict_new((FcitxDestroyNotify) fcitx_addon_free);
    manager->loadedAddons = fcitx_ptr_array_new(NULL);
    manager->properties = fcitx_dict_new(NULL);
    return fcitx_addon_manager_ref(manager);
}
Exemplo n.º 2
0
FCITX_EXPORT_API
FcitxStandardPath* fcitx_standard_path_new()
{
    FcitxStandardPath* path = fcitx_utils_new(FcitxStandardPath);
    // initialize user directory
    path->configHome = fcitx_standard_default_path_construct("XDG_CONFIG_HOME", ".config");
    path->configDirs = fcitx_standard_default_paths_construct("XDG_CONFIG_DIRS", "/etc/xdg", NULL);
    path->dataHome = fcitx_standard_default_path_construct("XDG_DATA_HOME", ".local/share");
    path->dataDirs = fcitx_standard_default_paths_construct("XDG_DATA_DIRS", "/usr/local/share:/usr/share", "datadir");
    path->cacheHome = fcitx_standard_default_path_construct("XDG_CACHE_HOME", ".cache");
    const char* tmpdir = getenv("TMPDIR");
    path->runtimeDir = fcitx_standard_default_path_construct("XDG_RUNTIME_DIR", !tmpdir || !tmpdir[0] ? "/tmp" : tmpdir);
    path->addonDirs = fcitx_standard_default_paths_construct("FCITX_ADDON_DIRS", FCITX_INSTALL_ADDONDIR, NULL);

    return fcitx_standard_path_ref(path);
}