diff options
author | Sami Kerola | 2013-04-02 21:42:55 +0200 |
---|---|---|
committer | Karel Zak | 2013-04-05 13:56:14 +0200 |
commit | cc8e993401cf6553034999e8c3086954a6273d29 (patch) | |
tree | ace8f55bab6af5cd955946a821c1a199a2ccc5a3 /login-utils/vipw.c | |
parent | setterm: fix various color option argument lists (diff) | |
download | kernel-qcow2-util-linux-cc8e993401cf6553034999e8c3086954a6273d29.tar.gz kernel-qcow2-util-linux-cc8e993401cf6553034999e8c3086954a6273d29.tar.xz kernel-qcow2-util-linux-cc8e993401cf6553034999e8c3086954a6273d29.zip |
vipw: add usage() function
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Diffstat (limited to 'login-utils/vipw.c')
-rw-r--r-- | login-utils/vipw.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/login-utils/vipw.c b/login-utils/vipw.c index 8c4780111..6ca5f8c10 100644 --- a/login-utils/vipw.c +++ b/login-utils/vipw.c @@ -302,6 +302,17 @@ static void edit_file(int is_shadow) ulckpwdf(); } +static void __attribute__((__noreturn__)) usage(FILE *out) +{ + fputs(USAGE_HEADER, out); + fprintf(out, " %s\n", program_invocation_short_name); + fputs(USAGE_OPTIONS, out); + fputs(USAGE_HELP, out); + fputs(USAGE_VERSION, out); + fprintf(out, USAGE_MAN_TAIL("vipw(8)")); + exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS); +} + int main(int argc, char *argv[]) { setlocale(LC_ALL, ""); @@ -317,10 +328,14 @@ int main(int argc, char *argv[]) xstrncpy(orig_file, PASSWD_FILE, sizeof(orig_file)); } - if ((argc > 1) && - (!strcmp(argv[1], "-V") || !strcmp(argv[1], "--version"))) { - printf(UTIL_LINUX_VERSION); - exit(EXIT_SUCCESS); + if (1 < argc) { + if (!strcmp(argv[1], "-V") || !strcmp(argv[1], "--version")) { + printf(UTIL_LINUX_VERSION); + exit(EXIT_SUCCESS); + } + if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")) + usage(stdout); + usage(stderr); } edit_file(0); |