p = malloc(sizeof(*p));
p->name = strdup((char *) pdu->name);
- if (pdu->value[0] != '\0')
- p->value = strdup((char *) pdu->value);
- else
- p->value = NULL;
if (pdu->global) {
- const char *pos = "";
-
- if (p->value)
- pos = p->value;
-
- json_object_add_value_string(job_opt_object, p->name, pos);
+ json_object_add_value_string(job_opt_object, p->name,
+ (const char *)pdu->value);
} else if (client->opt_lists) {
struct flist_head *opt_list = &client->opt_lists[pdu->groupid];
+ p->value = pdu->value[0] ? strdup((const char *)pdu->value) :
+ NULL;
flist_add_tail(&p->list, opt_list);
} else {
- free(p->value);
free(p->name);
free(p);
}
.type = JSON_TYPE_STRING,
};
- arg.string = (char *)val;
+ arg.string = strdup(val ? : "");
return json_object_add_value_type(obj, name, &arg);
}
json_object_add_value_object(root, name, dir_object);
flist_for_each(entry, opt_list) {
- const char *pos = "";
-
p = flist_entry(entry, struct print_option, list);
- if (p->value)
- pos = p->value;
- json_object_add_value_string(dir_object, p->name, pos);
+ json_object_add_value_string(dir_object, p->name, p->value);
}
}