git.samba.org
/
samba.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
s4-param copy print_parameter and equal_parameter in from source3
[samba.git]
/
source4
/
param
/
loadparm.c
diff --git
a/source4/param/loadparm.c
b/source4/param/loadparm.c
index a9fa00293186772eab6796cc3795b09815695bd9..f31ac0654e67ba62af51fb9e1cb04cca34ffbaa6 100644
(file)
--- a/
source4/param/loadparm.c
+++ b/
source4/param/loadparm.c
@@
-2822,8
+2822,9
@@
bool lpcfg_set_option(struct loadparm_context *lp_ctx, const char *option)
static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
{
static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
{
+ /* For the seperation of lists values that we print below */
+ const char *list_sep = ", ";
int i;
int i;
- const char *list_sep = ", "; /* For the seperation of lists values that we print below */
switch (p->type)
{
case P_ENUM:
switch (p->type)
{
case P_ENUM:
@@
-2853,9
+2854,15
@@
static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
fprintf(f, "%c", *(char *)ptr);
break;
fprintf(f, "%c", *(char *)ptr);
break;
- case P_OCTAL:
- fprintf(f, "0%o", *(int *)ptr);
+ case P_OCTAL: {
+ int val = *(int *)ptr;
+ if (val == -1) {
+ fprintf(f, "-1");
+ } else {
+ fprintf(f, "0%o", val);
+ }
break;
break;
+ }
case P_CMDLIST:
list_sep = " ";
case P_CMDLIST:
list_sep = " ";
@@
-2863,13
+2870,17
@@
static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
case P_LIST:
if ((char ***)ptr && *(char ***)ptr) {
char **list = *(char ***)ptr;
case P_LIST:
if ((char ***)ptr && *(char ***)ptr) {
char **list = *(char ***)ptr;
-
for (; *list; list++) {
for (; *list; list++) {
+ /* surround strings with whitespace in double quotes */
if (*(list+1) == NULL) {
if (*(list+1) == NULL) {
- /* last item,
print no extra seperator afte
r */
+ /* last item,
no extra separato
r */
list_sep = "";
}
list_sep = "";
}
- fprintf(f, "%s%s", *list, list_sep);
+ if ( strchr_m( *list, ' ' ) ) {
+ fprintf(f, "\"%s\"%s", *list, list_sep);
+ } else {
+ fprintf(f, "%s%s", *list, list_sep);
+ }
}
}
break;
}
}
break;
@@
-2880,6
+2891,8
@@
static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
fprintf(f, "%s", *(char **)ptr);
}
break;
fprintf(f, "%s", *(char **)ptr);
}
break;
+ case P_SEP:
+ break;
}
}
}
}
@@
-2895,18
+2908,17
@@
static bool equal_parameter(parm_type type, void *ptr1, void *ptr2)
return (*((bool *)ptr1) == *((bool *)ptr2));
case P_INTEGER:
return (*((bool *)ptr1) == *((bool *)ptr2));
case P_INTEGER:
+ case P_ENUM:
case P_OCTAL:
case P_BYTES:
case P_OCTAL:
case P_BYTES:
- case P_ENUM:
return (*((int *)ptr1) == *((int *)ptr2));
case P_CHAR:
return (*((char *)ptr1) == *((char *)ptr2));
return (*((int *)ptr1) == *((int *)ptr2));
case P_CHAR:
return (*((char *)ptr1) == *((char *)ptr2));
- case P_CMDLIST:
case P_LIST:
case P_LIST:
- return str_list_equal((const char **)(*(char ***)ptr1),
-
(const char **)(*(char ***)ptr2)
);
+ case P_CMDLIST:
+
return str_list_equal(*(const char ***)ptr1, *(const char ***)ptr2
);
case P_STRING:
case P_USTRING:
case P_STRING:
case P_USTRING:
@@
-2918,6
+2930,8
@@
static bool equal_parameter(parm_type type, void *ptr1, void *ptr2)
p2 = NULL;
return (p1 == p2 || strequal(p1, p2));
}
p2 = NULL;
return (p1 == p2 || strequal(p1, p2));
}
+ case P_SEP:
+ break;
}
return false;
}
}
return false;
}