summaryrefslogtreecommitdiffstats
path: root/login-utils/vipw.c
diff options
context:
space:
mode:
authorSami Kerola2013-04-02 21:42:55 +0200
committerKarel Zak2013-04-05 13:56:14 +0200
commitcc8e993401cf6553034999e8c3086954a6273d29 (patch)
treeace8f55bab6af5cd955946a821c1a199a2ccc5a3 /login-utils/vipw.c
parentsetterm: fix various color option argument lists (diff)
downloadkernel-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.c23
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);