From: Volker Lendecke Date: Mon, 4 Jan 2021 10:14:56 +0000 (+0100) Subject: lib: Move ucs2_align() to 'charset' subsystem X-Git-Tag: samba-4.14.0rc1~118 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8f08390c282c19f866fe75a8115dcdecb6fe5d68;p=thirdparty%2Fsamba.git lib: Move ucs2_align() to 'charset' subsystem Fix a circular dependency: util_str_common.c depends on 'charset', which depends on util_str_common.c. Fix that. Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/lib/util/charset/charset.h b/lib/util/charset/charset.h index ef7911a6254..3aa8a812ccc 100644 --- a/lib/util/charset/charset.h +++ b/lib/util/charset/charset.h @@ -93,6 +93,8 @@ typedef struct smb_iconv_s { struct loadparm_context; struct smb_iconv_handle; +size_t ucs2_align(const void *base_ptr, const void *p, int flags); + char *strchr_m(const char *s, char c); /** * Calculate the number of units (8 or 16-bit, depending on the diff --git a/lib/util/charset/util_unistr.c b/lib/util/charset/util_unistr.c index 2cc87186dae..ed394f58aef 100644 --- a/lib/util/charset/util_unistr.c +++ b/lib/util/charset/util_unistr.c @@ -180,6 +180,14 @@ _PUBLIC_ size_t count_chars_m(const char *s, char c) return count; } +size_t ucs2_align(const void *base_ptr, const void *p, int flags) +{ + if (flags & (STR_NOALIGN|STR_ASCII)) { + return 0; + } + return PTR_DIFF(p, base_ptr) & 1; +} + /** * Copy a string from a char* unix src to a dos codepage string destination. diff --git a/lib/util/samba_util.h b/lib/util/samba_util.h index 4ff3f7ff35c..a8be028e563 100644 --- a/lib/util/samba_util.h +++ b/lib/util/samba_util.h @@ -324,7 +324,6 @@ the result includes the null termination limited by 'n' bytes **/ _PUBLIC_ size_t utf16_len_n(const void *src, size_t n); -_PUBLIC_ size_t ucs2_align(const void *base_ptr, const void *p, int flags); /** * @brief Constant time compare to memory regions. diff --git a/lib/util/util_str_common.c b/lib/util/util_str_common.c index 7bdba9a7a8c..bf0fec8eca4 100644 --- a/lib/util/util_str_common.c +++ b/lib/util/util_str_common.c @@ -59,13 +59,6 @@ _PUBLIC_ int strwicmp(const char *psz1, const char *psz2) return (*psz1 - *psz2); } -_PUBLIC_ size_t ucs2_align(const void *base_ptr, const void *p, int flags) -{ - if (flags & (STR_NOALIGN|STR_ASCII)) - return 0; - return PTR_DIFF(p, base_ptr) & 1; -} - /** String replace. NOTE: oldc and newc must be 7 bit characters diff --git a/source3/include/proto.h b/source3/include/proto.h index 2f25778ab9f..6c9cf130d04 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -41,7 +41,6 @@ const char *audit_policy_str(TALLOC_CTX *mem_ctx, uint32_t policy); /* The following definitions come from lib/charcnv.c */ void gfree_charcnv(void); -size_t ucs2_align(const void *base_ptr, const void *p, int flags); size_t push_ascii(void *dest, const char *src, size_t dest_len, int flags); size_t push_ascii_fstring(void *dest, const char *src); size_t push_ascii_nstring(void *dest, const char *src);