]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
vipw: add usage() function
authorSami Kerola <kerolasa@iki.fi>
Tue, 2 Apr 2013 19:42:55 +0000 (20:42 +0100)
committerKarel Zak <kzak@redhat.com>
Fri, 5 Apr 2013 11:56:14 +0000 (13:56 +0200)
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
login-utils/vipw.c

index 8c47801117dea4190ad34a2d3a12aacf277fb396..6ca5f8c1078057b714a859be5a42c519cdff34c6 100644 (file)
@@ -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);