diff options
author | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-11-17 05:59:21 +0000 |
---|---|---|
committer | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-11-17 05:59:21 +0000 |
commit | e7ba0884e59883b499504873bc092d8fd6b5e8a8 (patch) | |
tree | 9e6da69ba8d3c7b296f4f2d93963fe0a43cbead6 /clopts_common.c | |
parent | 93966e7f2ff32ac1f2b5f9bcb64ccd87579f4c1f (diff) |
Handle "-G" only in Tethereal - it doesn't work in Ethereal, and isn't
necessary there.
Add a "cmdarg_err()" routine to report command-line option errors; it
creates a console if necessary, and prints the command name and the
trailing newline. Also add "cmdarg_err_cont()", which also creates a
console if necessary, and prints a trailing newline but no command name;
it's used to continue the message. Use those, rather than
"g_warning()", for errors.
That means that we no longer need to pass the command name to various
command-line argument parsing routines.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@16526 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'clopts_common.c')
-rw-r--r-- | clopts_common.c | 63 |
1 files changed, 9 insertions, 54 deletions
diff --git a/clopts_common.c b/clopts_common.c index 1528d726e8..6b3187eaad 100644 --- a/clopts_common.c +++ b/clopts_common.c @@ -34,70 +34,26 @@ #include <epan/prefs.h> #include "clopts_common.h" - -/* - * Handle the "-G" option, to cause protocol field, etc. information - * to be printed. - */ -void -handle_dashG_option(int argc, char **argv, const char *progname) -{ - char *gpf_path, *pf_path; - int gpf_open_errno, gpf_read_errno; - int pf_open_errno, pf_read_errno; - - if (argc >= 2 && strcmp(argv[1], "-G") == 0) { - if (argc == 2) - proto_registrar_dump_fields(1); - else { - if (strcmp(argv[2], "fields") == 0) - proto_registrar_dump_fields(1); - else if (strcmp(argv[2], "fields2") == 0) - proto_registrar_dump_fields(2); - else if (strcmp(argv[2], "fields3") == 0) - proto_registrar_dump_fields(3); - else if (strcmp(argv[2], "protocols") == 0) - proto_registrar_dump_protocols(); - else if (strcmp(argv[2], "values") == 0) - proto_registrar_dump_values(); - else if (strcmp(argv[2], "decodes") == 0) - dissector_dump_decodes(); - else if (strcmp(argv[2], "defaultprefs") == 0) - write_prefs(NULL); - else if (strcmp(argv[2], "currentprefs") == 0) { - read_prefs(&gpf_open_errno, &gpf_read_errno, &gpf_path, - &pf_open_errno, &pf_read_errno, &pf_path); - write_prefs(NULL); - } else { - fprintf(stderr, "%s: Invalid \"%s\" option for -G flag\n", progname, - argv[2]); - exit(1); - } - } - exit(0); - } -} +#include "cmdarg_err.h" int -get_natural_int(const char *appname, const char *string, const char *name) +get_natural_int(const char *string, const char *name) { long number; char *p; number = strtol(string, &p, 10); if (p == string || *p != '\0') { - fprintf(stderr, "%s: The specified %s \"%s\" isn't a decimal number\n", - appname, name, string); + cmdarg_err("The specified %s \"%s\" isn't a decimal number", name, string); exit(1); } if (number < 0) { - fprintf(stderr, "%s: The specified %s \"%s\" is a negative number\n", - appname, name, string); + cmdarg_err("The specified %s \"%s\" is a negative number", name, string); exit(1); } if (number > INT_MAX) { - fprintf(stderr, "%s: The specified %s \"%s\" is too large (greater than %d)\n", - appname, name, string, INT_MAX); + cmdarg_err("The specified %s \"%s\" is too large (greater than %d)", + name, string, INT_MAX); exit(1); } return number; @@ -105,15 +61,14 @@ get_natural_int(const char *appname, const char *string, const char *name) int -get_positive_int(const char *appname, const char *string, const char *name) +get_positive_int(const char *string, const char *name) { long number; - number = get_natural_int(appname, string, name); + number = get_natural_int(string, name); if (number == 0) { - fprintf(stderr, "%s: The specified %s is zero\n", - appname, name); + cmdarg_err("The specified %s is zero", name); exit(1); } |