buf[end] = '\0';
if (n->ops->set_user_strvalue)
- return n->ops->set_user_strvalue(n, buf);
+ return n->ops->set_user_strvalue(n, buf+start);
return -1;
}
if (n->ops->display_short)
n->ops->display_short(n);
else
- printf("------ %s\n", n->prompt);
+ printf("------ %s\n", n->prompt);
}
/* Print a detailed view of the node. */
{
const char *nodetype;
char value[MAX_VALUE_SIZE];
+ char default_value[MAX_VALUE_SIZE];
const char *quote = "";
if (n->ops->display_long) {
return;
}
- value[0] = '\0'; /* XXX get_value */
nodetype = confnode_get_type_str(n);
printf("%s <%s>\n", nodetype, n->name);
printf(" path ");
if (n->flags & CONFNODE_F_QUOTE_VALUE)
quote = "\"";
+
+ /* display real value */
+ if (confnode_get_value(n, value, sizeof(value)) < 0)
+ snprintf(value, sizeof(value), "invalid");
printf(" value %s%s%s\n", quote, value, quote);
- printf(" wanted %s%s%s\n", quote, n->value, quote);
- printf(" default %s%s%s\n", quote, n->default_value, quote);
+
+ /* display user value */
+ if (!strcmp(n->value, ""))
+ printf(" user NONE\n");
+ else
+ printf(" user %s%s%s\n", quote, n->value, quote);
+
+ /* display default value */
+ confnode_get_default_strvalue(n, default_value, MAX_VALUE_SIZE);
+ printf(" default %s%s%s\n", quote, default_value, quote);
+
+ /* check and display deps */
confnode_check_deps(n, 1);
}