From 7598ef4b2616c476ea38362a3f41c399c4bf530e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 10 Jul 2022 19:28:06 +0200 Subject: MDEV-28197 Linux mariadb-client build does not accept Unicode characters Apparently newer libedit is readline-compatible enough to be detected as a readline, with USE_NEW_READLINE_INTERFACE defined and USE_LIBEDIT_INTERFACE not defined. Let's set the locale unconditionally, independently from the readline/libedit variant. It's already happening anyway now, unless one specifies --default-character-set explicitly. --- client/mysql.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'client/mysql.cc') diff --git a/client/mysql.cc b/client/mysql.cc index 28311defc81..d429a014194 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -42,7 +42,7 @@ #include #include #include -#if defined(USE_LIBEDIT_INTERFACE) && defined(HAVE_LOCALE_H) +#if defined(HAVE_LOCALE_H) #include #endif @@ -2684,6 +2684,9 @@ static void initialize_readline () /* Allow conditional parsing of the ~/.inputrc file. */ rl_readline_name= (char *) "mysql"; rl_terminal_name= getenv("TERM"); +#ifdef HAVE_SETLOCALE + setlocale(LC_ALL,""); +#endif /* Tell the completer that we want a crack first. */ #if defined(USE_NEW_READLINE_INTERFACE) @@ -2692,9 +2695,6 @@ static void initialize_readline () rl_add_defun("magic-space", (rl_command_func_t *)&fake_magic_space, -1); #elif defined(USE_LIBEDIT_INTERFACE) -#ifdef HAVE_LOCALE_H - setlocale(LC_ALL,""); /* so as libedit use isprint */ -#endif rl_attempted_completion_function= (CPPFunction*)&new_mysql_completion; rl_completion_entry_function= &no_completion; rl_add_defun("magic-space", (Function*)&fake_magic_space, -1); -- cgit v1.2.1