aboutsummaryrefslogtreecommitdiffstats
path: root/rawshark.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2018-12-12 02:53:08 -0800
committerGuy Harris <guy@alum.mit.edu>2018-12-13 00:52:11 +0000
commita34cc98b2ac5a0ad011a1c3a40ce5e59230a9498 (patch)
tree6cff6069cc4b3925fa4af82ce968959444dadd75 /rawshark.c
parent17b721e45180a9decebb70dab77f41d96d5f7a03 (diff)
Put the main() and wmain() routines for CLI programs into a separate file.
That means that code is only in one place, rather than having copies of it in each of those programs. CLI programs that, on Windows, should get UTF-8 arguments rather than arguments in the local code page should: include the top-level cli_main.h header; define the main function as real_main(); be built with the top-level cli_main.c file. On UN*X, cli_main.c has a main() program, and just passes the arguments on to real_main(). On Windows, cli_main.c has a wmain() function that converts the UTF-16 arguments it's handed to UTF-8 arguments, using WideCharToMultiByte() so that it doesn't use any functions other than those provided by the system, and then calls real_main() with the argument count and UTF-8 arguments. Change-Id: I8b11f01dbc5c63fce599d1bef9ad96cd92c3c01e Reviewed-on: https://code.wireshark.org/review/31017 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'rawshark.c')
-rw-r--r--rawshark.c23
1 files changed, 3 insertions, 20 deletions
diff --git a/rawshark.c b/rawshark.c
index 317e6bfd86..15b7b4c933 100644
--- a/rawshark.c
+++ b/rawshark.c
@@ -53,6 +53,7 @@
#include <wsutil/plugins.h>
#include <wsutil/privileges.h>
#include <wsutil/report_message.h>
+#include <wsutil/clopts_common.h>
#include "globals.h"
#include <epan/packet.h>
@@ -73,7 +74,6 @@
#include <epan/epan_dissect.h>
#include <epan/stat_tap_ui.h>
#include <epan/timestamp.h>
-#include <wsutil/unicode-utils.h>
#include "epan/column-utils.h"
#include "epan/proto.h"
#include <epan/tap.h>
@@ -82,7 +82,7 @@
#include <wiretap/libpcap.h>
#include <wiretap/pcap-encap.h>
-#include <wsutil/clopts_common.h>
+#include <cli_main.h>
#include <version_info.h>
#include "caputils/capture-pcap-util.h"
@@ -403,7 +403,7 @@ set_link_type(const char *lt_arg) {
return FALSE;
}
-static int
+int
real_main(int argc, char *argv[])
{
GString *comp_info_str;
@@ -828,23 +828,6 @@ clean_exit:
return ret;
}
-#ifdef _WIN32
-int
-wmain(int argc, wchar_t *wc_argv[])
-{
- char **argv;
-
- argv = arg_list_utf_16to8(argc, wc_argv);
- return real_main(argc, argv);
-}
-#else
-int
-main(int argc, char *argv[])
-{
- return real_main(argc, argv);
-}
-#endif
-
/**
* Read data from a raw pipe. The "raw" data consists of a libpcap
* packet header followed by the payload.