diff options
author | Vladislav Vaintroub <wlad@mariadb.com> | 2022-01-18 17:32:53 +0100 |
---|---|---|
committer | Vladislav Vaintroub <wlad@mariadb.com> | 2022-01-18 17:32:53 +0100 |
commit | 2e48fbe3f5e84ebb8a2de4f4fc0448d648d25c0c (patch) | |
tree | dd4023a73db49ad332d9f247d60de3b3296d056d | |
parent | 71966c7306d6ae24bc052d5433e6d97cc81a436a (diff) | |
download | mariadb-git-preview-10.8-MDEV-26713-Windows-i18-support.tar.gz |
MDEV-27525 Invalid (non-UTF8) characters found for option 'plugin_dir'preview-10.8-MDEV-26713-Windows-i18-support
Two Problems
1. Upgrade wizard failed to retrieve path to service executable,
if it contained non-ASCII.
Fixed by setlocale(LC_ALL, "en_US.UTF8"), which was missing in upgrade wizard
2.mysql_upgrade_service only updated (converted to UTF8) the server's sections
leaving client's as-is
Corrected typo.
3. Fixed assertion in my_getopt, turns out to be too strict.
-rw-r--r-- | mysys/my_getopt.c | 5 | ||||
-rw-r--r-- | sql/upgrade_conf_file.cc | 2 | ||||
-rw-r--r-- | win/upgrade_wizard/upgradeDlg.cpp | 6 |
3 files changed, 7 insertions, 6 deletions
diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c index 6e9c6334620..653fe844093 100644 --- a/mysys/my_getopt.c +++ b/mysys/my_getopt.c @@ -163,11 +163,6 @@ static void validate_value(const char *key, const char *value, } else { - /* - Should never happen, non-UTF8 can be read from option's - file only. - */ - DBUG_ASSERT(0); my_getopt_error_reporter( WARNING_LEVEL, "%s: invalid (non-UTF8) characters for option %s", my_progname, key); diff --git a/sql/upgrade_conf_file.cc b/sql/upgrade_conf_file.cc index 9a19dd8b8a2..0d7bc603468 100644 --- a/sql/upgrade_conf_file.cc +++ b/sql/upgrade_conf_file.cc @@ -288,7 +288,7 @@ static bool is_mariadb_section(const char *name, bool *is_server) if (*is_server= !strcmp(section_name, name)) break; - return *is_server; + return true; } diff --git a/win/upgrade_wizard/upgradeDlg.cpp b/win/upgrade_wizard/upgradeDlg.cpp index 7aae4890b51..10a1787c231 100644 --- a/win/upgrade_wizard/upgradeDlg.cpp +++ b/win/upgrade_wizard/upgradeDlg.cpp @@ -15,6 +15,7 @@ #include <vector> #include <winservice.h> +#include <locale.h> using namespace std; @@ -271,6 +272,11 @@ BOOL CUpgradeDlg::OnInitDialog() m_Progress.ShowWindow(SW_HIDE); m_Ok.EnableWindow(FALSE); + if (GetACP() == CP_UTF8) + { + /* Required for mbstowcs, used in some functions.*/ + setlocale(LC_ALL, "en_US.UTF8"); + } PopulateServicesList(); return TRUE; // return TRUE unless you set the focus to a control } |