This function returns the length in bytes — at most ‘n’ — of a UTF‐16
string excluding the null terminator.
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
**/
size_t utf16_null_terminated_len(const void *buf);
+/**
+return the number of bytes occupied by a buffer in CH_UTF16 format
+limited by 'n' bytes
+**/
+size_t utf16_len_n(const void *src, size_t n);
+
/**
return the number of bytes occupied by a buffer in CH_UTF16 format
the result includes the null termination
return utf16_len(buf) + 2;
}
+/**
+return the number of bytes occupied by a buffer in CH_UTF16 format
+limited by 'n' bytes
+**/
+size_t utf16_len_n(const void *src, size_t n)
+{
+ size_t len;
+
+ for (len = 0; (len+2 <= n) && SVAL(src, len); len += 2) ;
+
+ return len;
+}
+
/**
return the number of bytes occupied by a buffer in CH_UTF16 format
the result includes the null termination
{
size_t len;
- for (len = 0; (len+2 <= n) && SVAL(src, len); len += 2) ;
+ len = utf16_len_n(src, n);
if (len+2 <= n) {
len += 2;