]> sourceware.org Git - newlib-cygwin.git/commitdiff
* dumper.cc (usage) Standardize usage output. Generalize to allow use for
authorChristopher Faylor <me@cgf.cx>
Wed, 8 May 2002 01:55:56 +0000 (01:55 +0000)
committerChristopher Faylor <me@cgf.cx>
Wed, 8 May 2002 01:55:56 +0000 (01:55 +0000)
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.

winsup/utils/ChangeLog
winsup/utils/dumper.cc

index bb017dc6fb9d76a4bb0636a8b8a83ac5da127940..55be988f15b0710bcc318d26e020deafc92e09c7 100644 (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.
index 50e10d255b46730a00382f7df9b9876ef0cc58ff..b898ebdbd1140dea618b90be6104be4398c7cd04 100644 (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 (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;
     }
 
This page took 0.035267 seconds and 5 git commands to generate.