From a34cc98b2ac5a0ad011a1c3a40ce5e59230a9498 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Wed, 12 Dec 2018 02:53:08 -0800 Subject: 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 Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris --- tfshark.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) (limited to 'tfshark.c') diff --git a/tfshark.c b/tfshark.c index 0a44c4eba9..52f8fb13a4 100644 --- a/tfshark.c +++ b/tfshark.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include "globals.h" @@ -66,10 +67,6 @@ #include #include -#ifdef _WIN32 -#include -#endif /* _WIN32 */ - #include "log.h" #include @@ -303,7 +300,7 @@ get_tfshark_runtime_version_info(GString *str) epan_get_runtime_version_info(str); } -static int +int real_main(int argc, char *argv[]) { GString *comp_info_str; @@ -1005,23 +1002,6 @@ clean_exit: return exit_status; } -#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 - static const nstime_t * tfshark_get_frame_ts(struct packet_provider_data *prov, guint32 frame_num) { -- cgit v1.2.3