about summary refs log tree commit diff
path: root/nscd/nscd.c
diff options
context:
space:
mode:
authorSami Kerola <kerolasa@iki.fi>2014-01-03 21:00:56 +0000
committerMike Frysinger <vapier@gentoo.org>2014-01-04 08:44:36 -0500
commit0c813d1f3e31b59844655c0c1b61462b32102c1a (patch)
treeb27414af8eeabe683dd18b5c7b7e835bdf3ff4ee /nscd/nscd.c
parent20f4a8d9937b2a824a5d20583dd850070fe29988 (diff)
downloadglibc-0c813d1f3e31b59844655c0c1b61462b32102c1a.tar.gz
glibc-0c813d1f3e31b59844655c0c1b61462b32102c1a.tar.xz
glibc-0c813d1f3e31b59844655c0c1b61462b32102c1a.zip
nscd: list all tables in usage()
Usage output for option --invalidate=TABLE is not helpful without
list of tables.  The list is also missing from nscd(8) manual which
made it pretty difficult to know what are the tables.
Diffstat (limited to 'nscd/nscd.c')
-rw-r--r--nscd/nscd.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/nscd/nscd.c b/nscd/nscd.c
index e7f04f808c..63d9d83599 100644
--- a/nscd/nscd.c
+++ b/nscd/nscd.c
@@ -442,19 +442,38 @@ parse_opt (int key, char *arg, struct argp_state *state)
 static char *
 more_help (int key, const char *text, void *input)
 {
-  char *tp = NULL;
+  char *tables, *tp = NULL;
+
   switch (key)
     {
     case ARGP_KEY_HELP_EXTRA:
+      {
+	dbtype cnt;
+
+	tables = xmalloc (sizeof (dbnames) + 1);
+	for (cnt = 0; cnt < lastdb; cnt++)
+	  {
+	    strcat (tables, dbnames[cnt]);
+	    strcat (tables, " ");
+	  }
+      }
+
       /* We print some extra information.  */
       if (asprintf (&tp, gettext ("\
+Supported tables:\n\
+%s\n\
+\n\
 For bug reporting instructions, please see:\n\
-%s.\n"), REPORT_BUGS_TO) < 0)
-	return NULL;
+%s.\n\
+"), tables, REPORT_BUGS_TO) < 0)
+	tp = NULL;
+      free (tables);
       return tp;
+
     default:
       break;
     }
+
   return (char *) text;
 }