summaryrefslogtreecommitdiff
path: root/mergecap.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2014-07-03 01:54:13 -0700
committerGuy Harris <guy@alum.mit.edu>2014-07-03 08:54:38 +0000
commit6264b8a2be2afe365c2a57ccb84f4694aa56a181 (patch)
treeaa5eea3e9765ca3b83f55a886cd90f89fe591a94 /mergecap.c
parentb4ce352539ec1e88a8002c65a38cc3029860c0e0 (diff)
downloadwireshark-6264b8a2be2afe365c2a57ccb84f4694aa56a181.tar.gz
Use get_*_int() from wsutil, rather than defining our own.
Change-Id: I4811d87a903cc3cea93e12883edf25bcd1271a53 Reviewed-on: https://code.wireshark.org/review/2795 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'mergecap.c')
-rw-r--r--mergecap.c64
1 files changed, 25 insertions, 39 deletions
diff --git a/mergecap.c b/mergecap.c
index 49dcfe6c83..450e870e7b 100644
--- a/mergecap.c
+++ b/mergecap.c
@@ -53,8 +53,10 @@
#include <wsutil/wsgetopt.h>
#endif
+#include <wsutil/clopts_common.h>
#include <wsutil/strnatcmp.h>
#include <wsutil/file_util.h>
+#include <wsutil/cmdarg_err.h>
#include <wsutil/crash_info.h>
#include <wsutil/copyright_info.h>
#include <wsutil/os_version_info.h>
@@ -72,45 +74,6 @@
#include <wsutil/unicode-utils.h>
#endif /* _WIN32 */
-static int
-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, "mergecap: The specified %s \"%s\" isn't a decimal number\n",
- name, string);
- exit(1);
- }
- if (number < 0) {
- fprintf(stderr, "mergecap: The specified %s is a negative number\n", name);
- exit(1);
- }
- if (number > INT_MAX) {
- fprintf(stderr, "mergecap: The specified %s is too large (greater than %d)\n",
- name, INT_MAX);
- exit(1);
- }
- return (int)number;
-}
-
-static int
-get_positive_int(const char *string, const char *name)
-{
- int number;
-
- number = get_natural_int(string, name);
-
- if (number == 0) {
- fprintf(stderr, "mergecap: The specified %s is zero\n", name);
- exit(1);
- }
-
- return number;
-}
-
static void
show_version(GString *comp_info_str, GString *runtime_info_str)
{
@@ -150,6 +113,27 @@ print_usage(FILE *output)
fprintf(output, " -v verbose output.\n");
}
+/*
+ * Report an error in command-line arguments.
+ */
+static void
+mergecap_cmdarg_err(const char *fmt, va_list ap)
+{
+ fprintf(stderr, "mergecap: ");
+ vfprintf(stderr, fmt, ap);
+ fprintf(stderr, "\n");
+}
+
+/*
+ * Report additional information for an error in command-line arguments.
+ */
+static void
+mergecap_cmdarg_err_cont(const char *fmt, va_list ap)
+{
+ vfprintf(stderr, fmt, ap);
+ fprintf(stderr, "\n");
+}
+
struct string_elem {
const char *sstr; /* The short string */
const char *lstr; /* The long string */
@@ -276,6 +260,8 @@ main(int argc, char *argv[])
gboolean got_read_error = FALSE, got_write_error = FALSE;
int count;
+ cmdarg_err_init(mergecap_cmdarg_err, mergecap_cmdarg_err_cont);
+
#ifdef _WIN32
arg_list_utf_16to8(argc, argv);
create_app_running_mutex();