The branch, master has been updated
       via  bbf394f36dbf2516ba92035791ebb67380de8d6e (commit)
       via  05e8e90976e86689425ccafc9ecfc1d99c53a3db (commit)
      from  a6567cf198f9d1c9df0f34c463cec3b9f0aa2e54 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit bbf394f36dbf2516ba92035791ebb67380de8d6e
Author: Günther Deschner <[email protected]>
Date:   Wed Sep 30 15:22:02 2009 +0200

    s3-printing: use regval_ctr_addvalue_multi_sz.
    
    Guenther

commit 05e8e90976e86689425ccafc9ecfc1d99c53a3db
Author: Günther Deschner <[email protected]>
Date:   Wed Sep 30 15:21:37 2009 +0200

    s3-registry: add regval_ctr_addvalue_multi_sz.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source3/include/proto.h        |    1 +
 source3/printing/nt_printing.c |   21 ++++-----------------
 source3/registry/reg_objects.c |   17 +++++++++++++++++
 3 files changed, 22 insertions(+), 17 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/proto.h b/source3/include/proto.h
index e192ee9..25b04fe 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5120,6 +5120,7 @@ struct regval_blob *regval_compose(TALLOC_CTX *ctx, const 
char *name,
 int regval_ctr_addvalue(struct regval_ctr *ctr, const char *name, uint16 type,
                        const char *data_p, size_t size);
 int regval_ctr_addvalue_sz(struct regval_ctr *ctr, const char *name, const 
char *data);
+int regval_ctr_addvalue_multi_sz(struct regval_ctr *ctr, const char *name, 
const char **data);
 int regval_ctr_copyvalue(struct regval_ctr *ctr, struct regval_blob *val);
 int regval_ctr_delvalue(struct regval_ctr *ctr, const char *name);
 struct regval_blob* regval_ctr_getvalue(struct regval_ctr *ctr,
diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c
index f09615c..3c7f053 100644
--- a/source3/printing/nt_printing.c
+++ b/source3/printing/nt_printing.c
@@ -3057,26 +3057,13 @@ static void map_bool_into_ctr(struct regval_ctr *ctr, 
const char *val_name,
 static void map_single_multi_sz_into_ctr(struct regval_ctr *ctr, const char 
*val_name,
                                         const char *multi_sz)
 {
-       smb_ucs2_t *conv_strs = NULL;
-       size_t str_size;
-
-       /* a multi-sz has to have a null string terminator, i.e., the last
-          string must be followed by two nulls */
-       str_size = strlen(multi_sz) + 2;
-       conv_strs = SMB_CALLOC_ARRAY(smb_ucs2_t, str_size);
-       if (!conv_strs) {
-               return;
-       }
+       const char *a[2];
 
-       /* Change to byte units. */
-       str_size *= sizeof(smb_ucs2_t);
-       push_ucs2(NULL, conv_strs, multi_sz, str_size,
-                 STR_TERMINATE | STR_NOALIGN);
+       a[0] = multi_sz;
+       a[1] = NULL;
 
        regval_ctr_delvalue(ctr, val_name);
-       regval_ctr_addvalue(ctr, val_name, REG_MULTI_SZ,
-                           (char *) conv_strs, str_size);
-       SAFE_FREE(conv_strs);
+       regval_ctr_addvalue_multi_sz(ctr, val_name, a);
 }
 
 /****************************************************************************
diff --git a/source3/registry/reg_objects.c b/source3/registry/reg_objects.c
index 908cda5..21ebba6 100644
--- a/source3/registry/reg_objects.c
+++ b/source3/registry/reg_objects.c
@@ -507,6 +507,23 @@ int regval_ctr_addvalue_sz(struct regval_ctr *ctr, const 
char *name, const char
 }
 
 /***********************************************************************
+ Add a new registry MULTI_SZ value to the array
+ **********************************************************************/
+
+int regval_ctr_addvalue_multi_sz(struct regval_ctr *ctr, const char *name, 
const char **data)
+{
+       DATA_BLOB blob;
+
+       if (!push_reg_multi_sz(ctr, &blob, data)) {
+               return -1;
+       }
+
+       return regval_ctr_addvalue(ctr, name, REG_MULTI_SZ,
+                                  (const char *)blob.data,
+                                  blob.length);
+}
+
+/***********************************************************************
  Add a new registry value to the array
  **********************************************************************/
 


-- 
Samba Shared Repository

Reply via email to