Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2002-05-08 05:55:56 +0400
committerChristopher Faylor <me@cgf.cx>2002-05-08 05:55:56 +0400
commit84d06cb64d051a07fb3a41fcbc5f3239cb6cc532 (patch)
tree20024230c09a879715a58773e1df12d565fca70e /winsup/utils/dumper.cc
parent60b2107cfda24875c6feb8dadfaec1a7e4bfb645 (diff)
* 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.
Diffstat (limited to 'winsup/utils/dumper.cc')
-rw-r--r--winsup/utils/dumper.cc61
1 files changed, 50 insertions, 11 deletions
diff --git a/winsup/utils/dumper.cc b/winsup/utils/dumper.cc
index 50e10d255..b898ebdbd 100644
--- a/winsup/utils/dumper.cc
+++ b/winsup/utils/dumper.cc
@@ -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 (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 ()
{
- 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");
+ 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;
}