diff options
author | Stefan Metzmacher <metze@samba.org> | 2015-06-27 10:12:29 +0200 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2015-07-03 02:00:28 +0200 |
commit | cd8bcecf18544b907c1927aa716057216f948dac (patch) | |
tree | 1d4e6f0acd101ce9bffadf20b3008ecb6f5bfcc6 | |
parent | 3cdac4a85521974e3c71488ad4078c09245e3b7d (diff) | |
download | samba-cd8bcecf18544b907c1927aa716057216f948dac.tar.gz |
lib/util: add strlen_m_ext_term_null() helper function
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
-rw-r--r-- | lib/util/charset/charset.h | 5 | ||||
-rw-r--r-- | lib/util/charset/util_str.c | 16 |
2 files changed, 20 insertions, 1 deletions
diff --git a/lib/util/charset/charset.h b/lib/util/charset/charset.h index 66b09a5cade..0d69d315b4a 100644 --- a/lib/util/charset/charset.h +++ b/lib/util/charset/charset.h @@ -105,9 +105,12 @@ size_t strlen_m_ext_handle(struct smb_iconv_handle *ic, size_t strlen_m_ext(const char *s, charset_t src_charset, charset_t dst_charset); size_t strlen_m_ext_term(const char *s, charset_t src_charset, charset_t dst_charset); +size_t strlen_m_ext_term_null(const char *s, + charset_t src_charset, + charset_t dst_charset); +size_t strlen_m(const char *s); size_t strlen_m_term(const char *s); size_t strlen_m_term_null(const char *s); -size_t strlen_m(const char *s); char *alpha_strcpy(char *dest, const char *src, const char *other_safe_chars, size_t maxlength); void string_replace_m(char *s, char oldc, char newc); bool strcsequal(const char *s1,const char *s2); diff --git a/lib/util/charset/util_str.c b/lib/util/charset/util_str.c index 1cbc1cd9652..70ecf6e029a 100644 --- a/lib/util/charset/util_str.c +++ b/lib/util/charset/util_str.c @@ -274,6 +274,22 @@ _PUBLIC_ size_t strlen_m_ext_term(const char *s, const charset_t src_charset, return strlen_m_ext(s, src_charset, dst_charset) + 1; } +_PUBLIC_ size_t strlen_m_ext_term_null(const char *s, + const charset_t src_charset, + const charset_t dst_charset) +{ + size_t len; + if (!s) { + return 0; + } + len = strlen_m_ext(s, src_charset, dst_charset); + if (len == 0) { + return 0; + } + + return len+1; +} + /** * Calculate the number of 16-bit units that would be needed to convert * the input string which is expected to be in CH_UNIX encoding to UTF16. |