1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-03 12:58:35 +03:00

util/charset: Add utf16_len_n()

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>
This commit is contained in:
Joseph Sutton 2023-11-09 12:43:07 +13:00 committed by Andrew Bartlett
parent 74a5a3b74e
commit a46746381b
2 changed files with 20 additions and 1 deletions

View File

@ -114,6 +114,12 @@ the result includes the null termination
**/
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

View File

@ -212,6 +212,19 @@ size_t utf16_null_terminated_len(const void *buf)
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
@ -221,7 +234,7 @@ size_t utf16_null_terminated_len_n(const void *src, size_t n)
{
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;