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:
parent
74a5a3b74e
commit
a46746381b
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user