From dc4ac7c4e1bd6cba781f7940b308e5f0b92d9ca0 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Mon, 23 Sep 2024 16:55:44 +0100 Subject: [PATCH] conf_editbox_handler: support the new string types. Now you can use an ordinary edit box in the config setup to talk to a string-valued Conf setting typed as any of CONF_TYPE_STR, CONF_TYPE_UTF8 or CONF_TYPE_STR_AMBI. --- config.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) 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 {