diff options
author | Andrey Hristov <andrey@php.net> | 2009-11-20 08:12:14 +0000 |
---|---|---|
committer | Andrey Hristov <andrey@php.net> | 2009-11-20 08:12:14 +0000 |
commit | 5143fe41e26f5cadeadbefaaa07715ef5407063d (patch) | |
tree | 52d170b4e88fe45c47a450c3390c286ca100a181 /ext/mysqlnd/mysqlnd_charset.c | |
parent | 4e010297f17b25b566c52e72f31a833d046a1b84 (diff) | |
download | php-git-5143fe41e26f5cadeadbefaaa07715ef5407063d.tar.gz |
Compressed protocol support + extensibility for mysqlnd
Diffstat (limited to 'ext/mysqlnd/mysqlnd_charset.c')
-rw-r--r-- | ext/mysqlnd/mysqlnd_charset.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/mysqlnd/mysqlnd_charset.c b/ext/mysqlnd/mysqlnd_charset.c index 3fc434cc5a..e36cb64df9 100644 --- a/ext/mysqlnd/mysqlnd_charset.c +++ b/ext/mysqlnd/mysqlnd_charset.c @@ -171,7 +171,7 @@ static unsigned int check_mb_eucjpms(const char *start, const char *end) if (valid_eucjpms_ss2(start[0]) && (end - start) > 1 && valid_eucjpms_kata(start[1])) { return 2; } - if (valid_eucjpms_ss3(start[0]) && (end - start) > 2 && valid_eucjpms(start[1]) && + if (valid_eucjpms_ss3(start[0]) && (end - start) > 2 && valid_eucjpms(start[1]) && valid_eucjpms(start[2])) { return 2; } @@ -199,7 +199,7 @@ static unsigned int mysqlnd_mbcharlen_eucjpms(unsigned int jpms) static unsigned int check_mb_gb2312(const char *start, const char *end) { - return (valid_gb2312_head((unsigned int)start[0]) && end - start > 1 && + return (valid_gb2312_head((unsigned int)start[0]) && end - start > 1 && valid_gb2312_tail((unsigned int)start[1])) ? 2 : 0; } @@ -311,7 +311,7 @@ const MYSQLND_CHARSET mysqlnd_charsets[] = { 19, "euckr", "euckr_korean_ci", 1, 2, "", mysqlnd_mbcharlen_euckr, check_mb_euckr}, { 22, "koi8u", "koi8u_general_ci", 1, 1, "", NULL, NULL}, { 24, "gb2312", "gb2312_chinese_ci", 1, 2, "", mysqlnd_mbcharlen_gb2312, check_mb_gb2312}, - { 25, "greek", "greek_general_ci", 1, 1, "", NULL, NULL}, + { 25, "greek", "greek_general_ci", 1, 1, "", NULL, NULL}, { 26, "cp1250", "cp1250_general_ci", 1, 1, "", NULL, NULL}, { 28, "gbk", "gbk_chinese_ci", 1, 2, "", mysqlnd_mbcharlen_gbk, check_mb_gbk}, { 30, "latin5", "latin5_turkish_ci", 1, 1, "", NULL, NULL}, @@ -449,7 +449,7 @@ const MYSQLND_CHARSET mysqlnd_charsets60[] = { 19, "euckr", "euckr_korean_ci", 1, 2, "", mysqlnd_mbcharlen_euckr, check_mb_euckr}, { 22, "koi8u", "koi8u_general_ci", 1, 1, "", NULL, NULL}, { 24, "gb2312", "gb2312_chinese_ci", 1, 2, "", mysqlnd_mbcharlen_gb2312, check_mb_gb2312}, - { 25, "greek", "greek_general_ci", 1, 1, "", NULL, NULL}, + { 25, "greek", "greek_general_ci", 1, 1, "", NULL, NULL}, { 26, "cp1250", "cp1250_general_ci", 1, 1, "", NULL, NULL}, { 28, "gbk", "gbk_chinese_ci", 1, 2, "", mysqlnd_mbcharlen_gbk, check_mb_gbk}, { 30, "latin5", "latin5_turkish_ci", 1, 1, "", NULL, NULL}, @@ -635,7 +635,7 @@ PHPAPI ulong mysqlnd_cset_escape_quotes(const MYSQLND_CHARSET * const cset, char for (;escapestr < end; escapestr++) { unsigned int len = 0; /* check unicode characters */ - + if (cset->char_maxlen > 1 && (len = cset->mb_valid(escapestr, end))) { /* check possible overflow */ @@ -685,7 +685,8 @@ PHPAPI ulong mysqlnd_cset_escape_slashes(const MYSQLND_CHARSET * const cset, cha zend_bool escape_overflow = FALSE; DBG_ENTER("mysqlnd_cset_escape_slashes"); - + DBG_INF_FMT("charset=%s", cset->name); + for (;escapestr < end; escapestr++) { char esc = '\0'; unsigned int len = 0; |