From 4d17c23224d7d8cf4b7a3da62e4d9e8f977bd443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 9 Oct 2020 19:45:26 +0200 Subject: [PATCH] main: configure locale *before* loading the config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without this, config_load() can’t use wide-character functions properly. --- main.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/main.c b/main.c index 192a00f0..08c3b680 100644 --- a/main.c +++ b/main.c @@ -352,6 +352,13 @@ main(int argc, char *const *argv) LOG_INFO("arch: %s/%zu-bit, ", name.machine, sizeof(void *) * 8); } + setlocale(LC_CTYPE, ""); + LOG_INFO("locale: %s", setlocale(LC_CTYPE, NULL)); + if (!locale_is_utf8()) { + LOG_ERR("locale is not UTF-8"); + return ret; + } + struct config conf = {NULL}; if (!config_load(&conf, conf_path, &user_notifications, check_config)) { config_free(conf); @@ -365,13 +372,6 @@ main(int argc, char *const *argv) fcft_set_scaling_filter(conf.tweak.fcft_filter); - setlocale(LC_CTYPE, ""); - LOG_INFO("locale: %s", setlocale(LC_CTYPE, NULL)); - if (!locale_is_utf8()) { - LOG_ERR("locale is not UTF-8"); - return ret; - } - if (conf_term != NULL) { free(conf.term); conf.term = xstrdup(conf_term);