idn_result_t idn_nameinit(int load_file) { idn_result_t r; TRACE(("idn_nameinit()\n")); if (initialized) { r = idn_success; goto ret; } idn_resconf_initialize(); r = idn_resconf_create(&default_conf); if (r != idn_success) goto ret; if (load_file) r = idn_resconf_loadfile(default_conf, conf_file); else r = idn_resconf_setdefaults(default_conf); if (r != idn_success) goto ret; initialized = 1; ret: if (r != idn_success && default_conf != NULL) { idn_resconf_destroy(default_conf); default_conf = NULL; } TRACE(("idn_nameinit(): %s\n", idn_result_tostring(r))); return (r); }
idn_resconf_t idnConvInit(void) { char encoding[256]; idn_resconf_t ctx; idn_result_t r; idnLogReset(); idnLogPrintf(idn_log_level_info, "idnkit version: %-.20s\n", idn_version_getstring()); /* * Initialize. */ if ((r = idn_resconf_initialize()) != idn_success) { idnPrintf("idnConvInit: cannot initialize idn library: %s\n", idn_result_tostring(r)); return NULL; } if ((r = idn_resconf_create(&ctx)) != idn_success) { idnPrintf("idnConvInit: cannot create context: %s\n", idn_result_tostring(r)); return NULL; } /* * load configuration file. */ if ((r = idn_resconf_loadfile(ctx, NULL)) != idn_success) { idnPrintf("idnConvInit: cannot read configuration file: %s\n", idn_result_tostring(r)); if ((r = idn_resconf_setdefaults(ctx)) != idn_success) { idnPrintf("idnConvInit: setting default configuration" " failed: %s\n", idn_result_tostring(r)); idnConvDone(ctx); return (NULL); } idnPrintf("idnConvInit: using default configuration\n"); } /* * Set local codeset. */ if (idnGetPrgEncoding(encoding, sizeof(encoding)) == TRUE) { idnPrintf("Encoding PRG <%-.100s>\n", encoding); r = idn_resconf_setlocalconvertername(ctx, encoding, IDN_CONVERTER_RTCHECK); if (r != idn_success) { idnPrintf("idnConvInit: invalid local codeset " "\"%-.100s\": %s\n", encoding, idn_result_tostring(r)); idnConvDone(ctx); return NULL; } } return ctx; }
void set_defaults(idn_resconf_t conf) { idn_result_t r; if ((r = idn_resconf_setdefaults(conf)) != idn_success) { errormsg("error setting default configuration: %s\n", idn_result_tostring(r)); exit(1); } }