about summary refs log tree commit diff
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
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.
-rw-r--r--ChangeLog4
-rw-r--r--nscd/nscd.c25
2 files changed, 26 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ddfb69a2fd..2acd69d983 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-01-04  Sami Kerola  <kerolasa@iki.fi>
+
+	* nscd/nscd.c: Improve usage() output.
+
 2014-01-04  Mike Frysinger  <vapier@gentoo.org>
 
 	* config.h.in: Add HAVE_LINUX_FANOTIFY_H template.
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;
 }