diff options
Diffstat (limited to 'lib/util/charset/util_str.c')
-rw-r--r-- | lib/util/charset/util_str.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/util/charset/util_str.c b/lib/util/charset/util_str.c index ff53b1875e..9aaf651589 100644 --- a/lib/util/charset/util_str.c +++ b/lib/util/charset/util_str.c @@ -140,10 +140,10 @@ _PUBLIC_ bool strcsequal(const char *s1,const char *s2) * string which is expected to be in in src_charset encoding to the * destination charset (which should be a unicode charset). */ -_PUBLIC_ size_t strlen_m_ext(const char *s, charset_t src_charset, charset_t dst_charset) +_PUBLIC_ size_t strlen_m_ext_handle(struct smb_iconv_handle *ic, + const char *s, charset_t src_charset, charset_t dst_charset) { size_t count = 0; - struct smb_iconv_handle *ic = get_iconv_handle(); if (!s) { return 0; @@ -203,6 +203,18 @@ _PUBLIC_ size_t strlen_m_ext(const char *s, charset_t src_charset, charset_t dst return count; } +/** + * Calculate the number of units (8 or 16-bit, depending on the + * destination charset), that would be needed to convert the input + * string which is expected to be in in src_charset encoding to the + * destination charset (which should be a unicode charset). + */ +_PUBLIC_ size_t strlen_m_ext(const char *s, charset_t src_charset, charset_t dst_charset) +{ + struct smb_iconv_handle *ic = get_iconv_handle(); + return strlen_m_ext_handle(ic, s, src_charset, dst_charset); +} + _PUBLIC_ size_t strlen_m_ext_term(const char *s, const charset_t src_charset, const charset_t dst_charset) { |