1
0
mirror of https://github.com/mariadb-corporation/mariadb-connector-c.git synced 2025-08-08 14:02:17 +03:00

10.2-integration: Added support for character set "auto":

character set auto sets the character set to the corresponding locale or
codepage (windows)
This commit is contained in:
Georg Richter
2016-05-08 12:28:37 +02:00
parent c70128b50c
commit 6126e668ca
5 changed files with 67 additions and 17 deletions

View File

@@ -1417,19 +1417,7 @@ MYSQL *mthd_my_real_connect(MYSQL *mysql, const char *host, const char *user,
/* Set character set */
if (mysql->options.charset_name)
{
if (!strcmp(mysql->options.charset_name, MADB_AUTODETECT_CHARSET_NAME))
{
char *csname= madb_get_os_character_set();
if (csname)
{
if (mysql->charset= mysql_find_charset_name(csname))
mysql_options(mysql, MYSQL_SET_CHARSET_NAME, csname);
}
}
else
mysql->charset= mysql_find_charset_name(mysql->options.charset_name);
}
mysql->charset= mysql_find_charset_name(mysql->options.charset_name);
else if (mysql->server_language)
mysql->charset= mysql_find_charset_nr(mysql->server_language);
else
@@ -2629,7 +2617,7 @@ mysql_optionsv(MYSQL *mysql,enum mysql_option option, ...)
OPT_SET_VALUE_STR(&mysql->options, charset_dir, arg1);
break;
case MYSQL_SET_CHARSET_NAME:
OPT_SET_VALUE_STR(&mysql->options, charset_name, (char *)arg1);
OPT_SET_VALUE_STR(&mysql->options, charset_name, arg1);
break;
case MYSQL_OPT_RECONNECT:
mysql->options.reconnect= *(my_bool *)arg1;
@@ -3016,7 +3004,10 @@ mysql_get_optionv(MYSQL *mysql, enum mysql_option option, void *arg, ...)
*((char **)arg)= NULL;
break;
case MYSQL_SET_CHARSET_NAME:
*((char **)arg)= mysql->options.charset_name;
if (mysql->charset)
*((char **)arg)= mysql->charset->csname;
else
*((char **)arg)= mysql->options.charset_name;
break;
case MYSQL_OPT_RECONNECT:
*((my_bool *)arg)= mysql->options.reconnect;