-/* `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
/* Implementation overview:
- Simply calls the system 'unlink' function */
+ Simply call the system 'unlink' function */
#include <config.h>
#include <stdio.h>
#include "system.h"
#include "error.h"
+#include "long-options.h"
#include "quote.h"
/* The official name of this program (e.g., no `g' prefix). */
/* 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)
{
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 <bug-fileutils@gnu.org>."));
}
exit (status);
int
main (int argc, char **argv)
{
- int fail = 0;
- int c;
-
program_name = argv[0];
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
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);
}