diff options
author | Alexander Barkov <bar@mariadb.org> | 2015-07-06 18:59:33 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2015-07-06 18:59:33 +0400 |
commit | 3a606ba210a0433229284fbcd26b7e2336f8f6c5 (patch) | |
tree | c2498bc798179b367cc378191d7790e8927e80ea /strings | |
parent | b2e324a21fbf481bccd15f9ee4bab819afefbed6 (diff) | |
download | mariadb-git-3a606ba210a0433229284fbcd26b7e2336f8f6c5.tar.gz |
Fixing a bug in MDEV-8418 (utf16, utf16le) and MDEV-8417 (utf8mb4).
Fixing non-BMP characters to have the same weight, as it was before
MDEV-8418 and MDEV-8417.
Diffstat (limited to 'strings')
-rw-r--r-- | strings/ctype-ucs2.c | 4 | ||||
-rw-r--r-- | strings/ctype-utf8.c | 5 |
2 files changed, 4 insertions, 5 deletions
diff --git a/strings/ctype-ucs2.c b/strings/ctype-ucs2.c index 90aa1a93bed..41f6a90506a 100644 --- a/strings/ctype-ucs2.c +++ b/strings/ctype-ucs2.c @@ -1216,7 +1216,7 @@ static inline int my_weight_mb2_utf16mb2_general_ci(uchar b0, uchar b1) #define MY_FUNCTION_NAME(x) my_ ## x ## _utf16_general_ci #define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x)) #define WEIGHT_MB2(b0,b1) my_weight_mb2_utf16mb2_general_ci(b0,b1) -#define WEIGHT_MB4(b0,b1,b2,b3) ((int) MY_UTF16_WC4(b0, b1, b2, b3)) +#define WEIGHT_MB4(b0,b1,b2,b3) MY_CS_REPLACEMENT_CHARACTER #include "strcoll.ic" #define MY_FUNCTION_NAME(x) my_ ## x ## _utf16_bin @@ -1665,7 +1665,7 @@ struct charset_info_st my_charset_utf16_bin= #define MY_FUNCTION_NAME(x) my_ ## x ## _utf16le_general_ci #define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x)) #define WEIGHT_MB2(b0,b1) my_weight_mb2_utf16mb2_general_ci(b1,b0) -#define WEIGHT_MB4(b0,b1,b2,b3) ((int) MY_UTF16_WC4(b1, b0, b3, b2)) +#define WEIGHT_MB4(b0,b1,b2,b3) MY_CS_REPLACEMENT_CHARACTER #include "strcoll.ic" #define MY_FUNCTION_NAME(x) my_ ## x ## _utf16le_bin diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c index 2fc53e84b5c..259928130b9 100644 --- a/strings/ctype-utf8.c +++ b/strings/ctype-utf8.c @@ -7775,10 +7775,9 @@ size_t my_well_formed_len_utf8mb4(CHARSET_INFO *cs, #define WEIGHT_MB2(b0,b1) my_weight_mb2_utf8_general_ci(b0,b1) #define WEIGHT_MB3(b0,b1,b2) my_weight_mb3_utf8_general_ci(b0,b1,b2) /* - There is no mapping between code point and weight for non-BMP characters - in utf8mb4_general_ci. Just using code point as weight. + All non-BMP characters have the same weight. */ -#define WEIGHT_MB4(b0,b1,b2,b3) UTF8MB4_CODE(b0,b1,b2,b3) +#define WEIGHT_MB4(b0,b1,b2,b3) MY_CS_REPLACEMENT_CHARACTER #include "strcoll.ic" |