Removing unused String_copier::copy_fix.
Fixing misleading comments in String_copiers::well_formed_copy().
This commit is contained in:
parent
0750b2df37
commit
e99bc0d1e2
@ -879,13 +879,7 @@ my_copy_with_hex_escaping(CHARSET_INFO *cs,
|
|||||||
with optional character set conversion,
|
with optional character set conversion,
|
||||||
with optional left padding (for binary -> UCS2 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
|
Bad input bytes are replaced to '?'.
|
||||||
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.
|
|
||||||
|
|
||||||
The string that is written to "to" is always well-formed.
|
The string that is written to "to" is always well-formed.
|
||||||
|
|
||||||
|
@ -69,8 +69,7 @@ public:
|
|||||||
srccs, src, src_length, nchars, this);
|
srccs, src, src_length, nchars, this);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
Copy a string. Fix bad bytes/characters one Unicode conversion,
|
Copy a string. Fix bad bytes/characters to '?'.
|
||||||
break on bad bytes in case of non-Unicode copying.
|
|
||||||
*/
|
*/
|
||||||
uint well_formed_copy(CHARSET_INFO *to_cs, char *to, uint to_length,
|
uint well_formed_copy(CHARSET_INFO *to_cs, char *to, uint to_length,
|
||||||
CHARSET_INFO *from_cs, const char *from,
|
CHARSET_INFO *from_cs, const char *from,
|
||||||
@ -84,32 +83,6 @@ public:
|
|||||||
from_cs, from, from_length,
|
from_cs, from, from_length,
|
||||||
from_length /* No limit on "nchars"*/);
|
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;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user