genconf: enhance short and long display of confnodes
[libcmdline.git] / src / genconf / confnode.c
index 6a85953..22aa068 100644 (file)
@@ -439,7 +439,7 @@ void confnode_display_short(const struct confnode *n)
        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. */
@@ -447,6 +447,7 @@ void confnode_display_long(const struct confnode *n)
 {
        const char *nodetype;
        char value[MAX_VALUE_SIZE];
+       char default_value[MAX_VALUE_SIZE];
        const char *quote = "";
 
        if (n->ops->display_long) {
@@ -454,7 +455,6 @@ void confnode_display_long(const struct confnode *n)
                return;
        }
 
-       value[0] = '\0'; /* XXX get_value */
        nodetype = confnode_get_type_str(n);
        printf("%s <%s>\n", nodetype, n->name);
        printf("    path ");
@@ -462,9 +462,23 @@ void confnode_display_long(const struct confnode *n)
 
        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);
 }