FCITX_EXPORT_API FcitxConfiguration* fcitx_configuration_new(const char* name) { FcitxConfiguration* config = fcitx_utils_new(FcitxConfiguration); fcitx_utils_string_swap(&config->name, name); return fcitx_configuration_ref(config); }
FCITX_EXPORT_API FcitxDescription* fcitx_description_parse(FcitxConfiguration* config) { const char* localeDomain = fcitx_configuration_get_value_by_path(config, "DescriptionFile/LocaleDomain"); FcitxDescription* desc = fcitx_utils_new(FcitxDescription); fcitx_utils_string_swap(&desc->localeDomain, localeDomain); desc->rootConfig = fcitx_configuration_ref(config); do { find_structs(config, desc); if (desc->error) { break; } find_top_level_structs(config, desc); if (desc->error) { break; } } while(0); return desc; }