If uni_utf8_get_char*() were changed to return the number of bytes in the
character on success, then all we care about is it being > 0 (i.e. not
error, not truncated).
Signed-off-by: Phil Carmody <phil@dovecot.fi>
unsigned int char_len =
uni_utf8_char_bytes(data[i]);
if (i + char_len <= len &&
- uni_utf8_get_char_n(data + i, char_len, &chr) == 1 &&
+ uni_utf8_get_char_n(data + i, char_len, &chr) > 0 &&
is_valid_xml_char(chr))
str_append_n(dest, data + i, char_len);
else {
unsigned int char_len =
uni_utf8_char_bytes(data[i]);
if (i + char_len <= len &&
- uni_utf8_get_char_n(data + i, char_len, &chr) == 1 &&
+ uni_utf8_get_char_n(data + i, char_len, &chr) > 0 &&
is_valid_xml_char(chr))
str_append_n(dest, data + i, char_len);
else {