diff --git a/config.c b/config.c index 1329239c..6a20c425 100644 --- a/config.c +++ b/config.c @@ -122,11 +122,19 @@ void conf_editbox_handler(dlgcontrol *ctrl, dlgparam *dlg, if (type->type == EDIT_STR) { if (event == EVENT_REFRESH) { - char *field = conf_get_str(conf, key); - dlg_editbox_set(ctrl, dlg, field); + bool utf8; + char *field = conf_get_str_ambi(conf, key, &utf8); + if (utf8) + dlg_editbox_set_utf8(ctrl, dlg, field); + else + dlg_editbox_set(ctrl, dlg, field); } else if (event == EVENT_VALCHANGE) { - char *field = dlg_editbox_get(ctrl, dlg); - conf_set_str(conf, key, field); + char *field = dlg_editbox_get_utf8(ctrl, dlg); + if (!conf_try_set_utf8(conf, key, field)) { + sfree(field); + field = dlg_editbox_get(ctrl, dlg); + conf_set_str(conf, key, field); + } sfree(field); } } else {