add {push,pull}_ucs2{allocate,talloc}() functions.
authorAndrew Bartlett <abartlet@samba.org>
Mon, 25 Mar 2002 07:41:42 +0000 (07:41 +0000)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 25 Mar 2002 07:41:42 +0000 (07:41 +0000)
Andrew Bartlett
(This used to be commit ce7990b4a4f251536dd26be5a62c12711df57787)

source3/lib/charcnv.c

index d4e46ec89a3bf837fb8a3ebc3b48aef569b3a5bc..cdfca8eb97df2b1bb5e8b60a6cee3a166d216556 100644 (file)
@@ -418,6 +418,36 @@ int push_ucs2(const void *base_ptr, void *dest, const char *src, int dest_len, i
        return len;
 }
 
+/**
+ * Copy a string from a unix char* src to a UCS2 destination, allocating a buffer using talloc
+ *
+ * @param dest always set at least to NULL 
+ *
+ * @retval The number of bytes occupied by the string in the destination
+ **/
+int push_ucs2_talloc(TALLOC_CTX *ctx, void **dest, const char *src)
+{
+       int src_len = strlen(src)+1;
+
+       *dest = NULL;
+       return convert_string_talloc(ctx, CH_UNIX, CH_UCS2, src, src_len, dest);
+}
+
+/**
+ * Copy a string from a unix char* src to a UCS2 destination, allocating a buffer
+ *
+ * @param dest always set at least to NULL 
+ *
+ * @retval The number of bytes occupied by the string in the destination
+ **/
+int push_ucs2_allocate(void **dest, const char *src)
+{
+       int src_len = strlen(src)+1;
+
+       *dest = NULL;
+       return convert_string_allocate(CH_UNIX, CH_UCS2, src, src_len, dest);   
+}
+
 /****************************************************************************
 copy a string from a char* src to a UTF-8 destination
 return the number of bytes occupied by the string in the destination
@@ -534,6 +564,34 @@ int pull_ucs2_fstring(char *dest, const void *src)
        return pull_ucs2(NULL, dest, src, sizeof(fstring), -1, STR_TERMINATE);
 }
 
+/**
+ * Copy a string from a UCS2 src to a unix char * destination, allocating a buffer using talloc
+ *
+ * @param dest always set at least to NULL 
+ *
+ * @retval The number of bytes occupied by the string in the destination
+ **/
+int pull_ucs2_talloc(TALLOC_CTX *ctx, void **dest, const char *src)
+{
+       int src_len = strlen(src)+1;
+       *dest = NULL;
+       return convert_string_talloc(ctx, CH_UCS2, CH_UNIX, src, src_len, dest);        
+}
+
+/**
+ * Copy a string from a UCS2 src to a unix char * destination, allocating a buffer
+ *
+ * @param dest always set at least to NULL 
+ *
+ * @retval The number of bytes occupied by the string in the destination
+ **/
+int pull_ucs2_allocate(void **dest, const char *src)
+{
+       int src_len = strlen(src)+1;
+       *dest = NULL;
+       return convert_string_allocate(CH_UCS2, CH_UNIX, src, src_len, dest);   
+}
+
 /****************************************************************************
 copy a string from a utf-8 source to a unix char* destination
 flags can have: