int opencc_dict_load(opencc_t t_opencc, const char * dict_filename, opencc_dictionary_type dict_type) { if (!lib_initialized) lib_initialize(); opencc_desc * opencc = (opencc_desc *) t_opencc; dictionary_group_t dictionary_group; if (opencc->dictionary_set == NULL) { opencc->dictionary_set = dictionary_set_open(); dictionary_group = dictionary_set_new_group(opencc->dictionary_set); } else { dictionary_group = dictionary_set_get_group(opencc->dictionary_set, 0); } int retval; retval = dictionary_group_load(dictionary_group, dict_filename, dict_type); if (retval == -1) { errnum = OPENCC_ERROR_DICTLOAD; return -1; } converter_assign_dictionary(opencc->converter, opencc->dictionary_set); return retval; }
dictionary_set_t config_get_dictionary_set(config_t t_config) { config_desc * config = (config_desc *) t_config; if (config->dictionary_set != NULL) { dictionary_set_close(config->dictionary_set); } config->dictionary_set = dictionary_set_open(); load_dictionary(config); return config->dictionary_set; }