From 0c813d1f3e31b59844655c0c1b61462b32102c1a Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Fri, 3 Jan 2014 21:00:56 +0000 Subject: [PATCH] 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. --- ChangeLog | 4 ++++ nscd/nscd.c | 25 ++++++++++++++++++++++--- 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 + + * nscd/nscd.c: Improve usage() output. + 2014-01-04 Mike Frysinger * 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; }