From f52a204a4e5d1e0f5248e7ac464157e3d4882b15 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Fri, 12 Apr 2002 10:41:54 +0000 Subject: Include long-options.h. [long_opts]: Remove. (usage): Tweak --help output; use *_OPTION_DESCRIPTION macros. (main): Don't use getopt directly. Use parse_long_options instead. Tweak a diagnostic. Use EXIT_FAILURE rather than a literal `1'. (main): If POSIXLY_CORRECT is set, don't recognize --help or --version, so the program can operate on a file with one of those names. --- src/unlink.c | 62 +++++++++++++++++++++++------------------------------------- 1 file changed, 24 insertions(+), 38 deletions(-) (limited to 'src') diff --git a/src/unlink.c b/src/unlink.c index 805e2a96f..f6c57c4bf 100644 --- a/src/unlink.c +++ b/src/unlink.c @@ -1,4 +1,4 @@ -/* `unlink` utility for GNU. +/* unlink utility for GNU. Copyright (C) 2001, 2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -19,7 +19,7 @@ /* Implementation overview: - Simply calls the system 'unlink' function */ + Simply call the system 'unlink' function */ #include #include @@ -29,6 +29,7 @@ #include "system.h" #include "error.h" +#include "long-options.h" #include "quote.h" /* The official name of this program (e.g., no `g' prefix). */ @@ -39,13 +40,6 @@ /* Name this program was run with. */ char *program_name; -static struct option const long_opts[] = -{ - {GETOPT_HELP_OPTION_DECL}, - {GETOPT_VERSION_OPTION_DECL}, - {NULL, 0, NULL, 0} -}; - void usage (int status) { @@ -54,15 +48,13 @@ usage (int status) program_name); else { - printf (_("Usage: %s [OPTION]... FILE\n"), program_name); printf (_("\ -unlink the FILE.\n\ -\n\ - --help display this help and exit\n\ - --version output version information and exit\n\ -\n\ -"), - program_name, program_name); +Usage: %s FILE\n\ + or: %s OPTION\n"), program_name, program_name); + fputs (_("Call the unlink function to remove the specified FILE.\n\n"), + stdout); + fputs (HELP_OPTION_DESCRIPTION, stdout); + fputs (VERSION_OPTION_DESCRIPTION, stdout); puts (_("\nReport bugs to .")); } exit (status); @@ -71,9 +63,6 @@ unlink the FILE.\n\ int main (int argc, char **argv) { - int fail = 0; - int c; - program_name = argv[0]; setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); @@ -81,36 +70,33 @@ main (int argc, char **argv) atexit (close_stdout); - while ((c = getopt_long (argc, argv, "", long_opts, NULL)) != -1) + /* Don't recognize --help or --version if POSIXLY_CORRECT is set. */ + if (getenv ("POSIXLY_CORRECT") == NULL) + parse_long_options (argc, argv, PROGRAM_NAME, GNU_PACKAGE, VERSION, + AUTHORS, usage); + + /* The above handles --help and --version. + Since there is no other invocation of getopt, handle `--' here. */ + if (1 < argc && STREQ (argv[1], "--")) { - switch (c) - { - case 0: /* Long option. */ - break; - case_GETOPT_HELP_CHAR; - case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS); - default: - usage (1); - } + --argc; + ++argv; } - if (optind+1 > argc) + if (argc < 2) { error (0, 0, _("too few arguments")); usage (1); } - if (optind+1 < argc) + if (2 < argc) { error (0, 0, _("too many arguments")); usage (1); } - if (unlink(argv[optind]) != 0) - { - fail = 1; - error (0, errno, _("unlinking %s"), quote(argv[optind])); - } + if (unlink (argv[1]) != 0) + error (EXIT_FAILURE, errno, _("cannot unlink %s"), quote (argv[1])); - exit (fail); + exit (0); } -- cgit v1.2.3-54-g00ecf