diff options
author | Alexander Barkov <bar@mariadb.org> | 2015-03-02 18:24:22 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2015-03-02 18:24:22 +0400 |
commit | b1b6101af2f69871ff3f3049c6e42e95ced20544 (patch) | |
tree | b395810839d006b6101352b2c8f65984ffd28d92 /strings/ctype-simple.c | |
parent | 7047bef1ef8c2cf04932b4b1a51a479a746d9a40 (diff) | |
download | mariadb-git-b1b6101af2f69871ff3f3049c6e42e95ced20544.tar.gz |
A preparatory patch for MDEV-6566.
Adding a new virtual function MY_CHARSET_HANDLER::copy_abort().
Moving character set specific code into the correspoding implementations
(for simple, multi-byte and mbmaxlen>1 character sets).
Diffstat (limited to 'strings/ctype-simple.c')
-rw-r--r-- | strings/ctype-simple.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/strings/ctype-simple.c b/strings/ctype-simple.c index 7f13cef4474..b010c528979 100644 --- a/strings/ctype-simple.c +++ b/strings/ctype-simple.c @@ -1108,6 +1108,25 @@ size_t my_well_formed_len_8bit(CHARSET_INFO *cs __attribute__((unused)), } +/* + Copy a 8-bit string. Not more than "nchars" character are copied. +*/ +size_t +my_copy_8bit(CHARSET_INFO *cs __attribute__((unused)), + char *dst, size_t dst_length, + const char *src, size_t src_length, + size_t nchars, MY_STRCOPY_STATUS *status) +{ + set_if_smaller(src_length, dst_length); + set_if_smaller(src_length, nchars); + if (src_length) + memmove(dst, src, src_length); + status->m_source_end_pos= src + src_length; + status->m_well_formed_error_pos= NULL; + return src_length; +} + + size_t my_lengthsp_8bit(CHARSET_INFO *cs __attribute__((unused)), const char *ptr, size_t length) { @@ -1886,7 +1905,8 @@ MY_CHARSET_HANDLER my_charset_8bit_handler= my_strntod_8bit, my_strtoll10_8bit, my_strntoull10rnd_8bit, - my_scan_8bit + my_scan_8bit, + my_copy_8bit, }; MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler = |