From 90bad24f96deeaaa2255f0ad89ece21d5397b78b Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Thu, 29 Aug 2024 02:12:09 +0200 Subject: allow Unicode characters in command line arguments (refs #5) * the locale must be initialized very early before g_option_context_parse() * will allow UTF-8 characters in the test suite --- src/interface-curses/interface.c | 4 ---- src/main.c | 8 ++++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/interface-curses/interface.c b/src/interface-curses/interface.c index 89be588..443a903 100644 --- a/src/interface-curses/interface.c +++ b/src/interface-curses/interface.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #ifdef HAVE_WINDOWS_H @@ -679,9 +678,6 @@ teco_interface_init_interactive(GError **error) PDC_set_function_key(FUNCTION_KEY_SHUT_DOWN, KEY_CLOSE); #endif - /* for displaying UTF-8 characters properly */ - setlocale(LC_ALL, ""); - teco_interface_init_screen(); /* diff --git a/src/main.c b/src/main.c index 5785ef5..c38b1a3 100644 --- a/src/main.c +++ b/src/main.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -306,6 +307,13 @@ main(int argc, char **argv) signal(SIGINT, teco_sigint_handler); signal(SIGTERM, teco_sigint_handler); + /* + * Important for Unicode handling in curses and glib. + * In particular, in order to accept Unicode characters + * in option strings. + */ + setlocale(LC_ALL, ""); + g_autofree gchar *mung_filename = teco_process_options(&argc, &argv); /* * All remaining arguments in argv are arguments -- cgit v1.2.3