* dumper.cc (usage) Standardize usage output. Generalize to allow use for

help.
(longopts) New struct.  Added longopts for all options.
(print_version) New function.
(main) Change getopt to getopt_long.  Accommodate new help and version options.
This commit is contained in:
Christopher Faylor 2002-05-08 01:55:56 +00:00
parent 60b2107cfd
commit 84d06cb64d
2 changed files with 59 additions and 11 deletions

View File

@ -1,3 +1,12 @@
2002-05-07 Joshua Daniel Franklin <joshuadfranklin@yahoo.com>
* dumper.cc (usage) Standardize usage output. Generalize to allow use
for help.
(longopts) New struct. Added longopts for all options.
(print_version) New function.
(main) Change getopt to getopt_long. Accommodate new help and version
options.
2002-03-29 Corinna Vinschen <corinna@vinschen.de>
* mkgroup.c (main): Change call to exit() to a return statement.

View File

@ -1,6 +1,6 @@
/* dumper.cc
Copyright 1999,2001 Red Hat Inc.
Copyright 1999, 2001, 2002 Red Hat Inc.
Written by Egor Duda <deo@logos-m.ru>
@ -36,6 +36,8 @@ __attribute__ ((packed))
#endif
note_header;
static const char version[] = "$Revision$";
BOOL verbose = FALSE;
int deb_printf (const char *format,...)
@ -770,14 +772,46 @@ dumper::write_core_dump ()
}
static void
usage ()
usage (FILE *stream, int status)
{
fprintf (stderr, "Usage: dumper [options] filename pid\n");
fprintf (stderr, "filename -- dump core to filename.core\n");
fprintf (stderr, "pid -- win32-pid of process to dump\n\n");
fprintf (stderr, "Possible options are:\n");
fprintf (stderr, "-d -- be verbose while dumping\n");
fprintf (stderr, "-q -- be quite while dumping (default)\n");
fprintf (stream, "\
Usage: dumper [OPTION] FILENAME WIN32PID\n\
Dump core from WIN32PID to FILENAME.core\n\
-d, --verbose be verbose while dumping\n\
-h, --help output help information and exit\n\
-q, --quiet be quiet while dumping (default)\n\
-v, --version output version information and exit\n\
");
exit (status);
}
struct option longopts[] = {
{"verbose", no_argument, NULL, 'd'},
{"help", no_argument, NULL, 'h'},
{"quiet", no_argument, NULL, 'q'},
{"version", no_argument, 0, 'v'},
{0, no_argument, NULL, 0}
};
static void
print_version ()
{
const char *v = strchr (version, ':');
int len;
if (!v)
{
v = "?";
len = 1;
}
else
{
v += 2;
len = strchr (v, ' ') - v;
}
printf ("\
dumper (cygwin) %.*s\n\
Core Dumper for Cygwin\n\
Copyright 1999, 2001, 2002 Red Hat, Inc.\n", len, v);
}
int
@ -788,7 +822,7 @@ main (int argc, char **argv)
DWORD pid;
char win32_name [MAX_PATH];
while ((opt = getopt (argc, argv, "dq")) != EOF)
while ((opt = getopt_long (argc, argv, "dqhv", longopts, NULL) ) != EOF)
switch (opt)
{
case 'd':
@ -797,8 +831,13 @@ main (int argc, char **argv)
case 'q':
verbose = FALSE;
break;
case 'h':
usage (stdout, 0);
case 'v':
print_version ();
exit (0);
default:
usage ();
usage (stderr, 1);
break;
}
@ -814,7 +853,7 @@ main (int argc, char **argv)
}
else
{
usage ();
usage (stderr, 1);
return -1;
}