Add function to get the byte length of n characters in a utf8 string.

This commit is contained in:
Michael Drake 2013-03-17 22:01:42 +00:00
parent c205378a8d
commit c3f21572ed
2 changed files with 19 additions and 0 deletions

View File

@ -117,6 +117,24 @@ size_t utf8_bounded_length(const char *s, size_t l)
return len;
}
/**
* Calculate the length (in bytes) of a bounded UTF-8 string
*
* \param s The string
* \param l Maximum length of input (in bytes)
* \param c Maximum number of characters to measure
* \return Length of string, in bytes
*/
size_t utf8_bounded_byte_length(const char *s, size_t l, size_t c)
{
size_t len = 0;
while (len < l && c-- > 0)
len = utf8_next(s, l, len);
return len;
}
/**
* Calculate the length (in bytes) of a UTF-8 character
*

View File

@ -37,6 +37,7 @@ size_t utf8_from_ucs4(uint32_t c, char *s);
size_t utf8_length(const char *s);
size_t utf8_bounded_length(const char *s, size_t l);
size_t utf8_bounded_byte_length(const char *s, size_t l, size_t c);
size_t utf8_char_byte_length(const char *s);