Commit e99bc0d1 authored by Alexander Barkov's avatar Alexander Barkov

Removing unused String_copier::copy_fix.

Fixing misleading comments in String_copiers::well_formed_copy().
parent 0750b2df
......@@ -879,13 +879,7 @@ my_copy_with_hex_escaping(CHARSET_INFO *cs,
with optional character set conversion,
with optional left padding (for binary -> UCS2 conversion)
In case if there is a Unicode conversion (i.e. to_cs and from_cs are
different character sets and both are not &my_charset_bin), bad input bytes
as well as characters that cannot be encoded in to_cs are replaced to '?'.
In case of non-Unicode copying (i.e. to_cs and from_cs are same character set,
or from_cs is &my_charset_bin), the function stops on the first bad
byte sequence.
Bad input bytes are replaced to '?'.
The string that is written to "to" is always well-formed.
......
......@@ -69,8 +69,7 @@ class String_copier: private MY_STRCONV_STATUS
srccs, src, src_length, nchars, this);
}
/*
Copy a string. Fix bad bytes/characters one Unicode conversion,
break on bad bytes in case of non-Unicode copying.
Copy a string. Fix bad bytes/characters to '?'.
*/
uint well_formed_copy(CHARSET_INFO *to_cs, char *to, uint to_length,
CHARSET_INFO *from_cs, const char *from,
......@@ -84,32 +83,6 @@ class String_copier: private MY_STRCONV_STATUS
from_cs, from, from_length,
from_length /* No limit on "nchars"*/);
}
/*
Copy a string. If a bad byte sequence is found in case of non-Unicode
copying, continues processing and replaces bad bytes to '?'.
*/
uint copy_fix(CHARSET_INFO *to_cs, char *to, uint to_length,
CHARSET_INFO *from_cs, const char *from, uint from_length)
{
uint length= well_formed_copy(to_cs, to, to_length,
from_cs, from, from_length,
from_length /* No limit on nchars */);
if (well_formed_error_pos() && source_end_pos() < from + from_length)
{
/*
There was an error and there are still some bytes in the source string.
This is possible if there were no character set conversion and a
malformed byte sequence was found. Copy the rest and replace bad
bytes to '?'. Note: m_source_end_pos is not updated!!!
*/
uint dummy_errors;
length+= copy_and_convert(to + length, to_length - length, to_cs,
source_end_pos(),
from_length - (source_end_pos() - from),
from_cs, &dummy_errors);
}
return length;
}
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment