diff options
author | Peter Wu <peter@lekensteyn.nl> | 2018-12-26 18:10:12 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2019-01-02 12:08:20 +0000 |
commit | e2e5b01d771339a596a418ec306fe00ab504e593 (patch) | |
tree | 69b8cb5383cbb91c6890849194f2852bfeee1a94 | |
parent | 974969cd0650d6c612e035b696b36c1d18b70bc9 (diff) |
cli_main: remove real_main from stack traces for non-Windows
Restore the "main" name since that is used everywhere else except for
Windows. On Windows, "main" is renamed via a macro to avoid a conflict
with "wmain" and to allow it to be called in cli_main.c.
For those wondering, GUI applications (such as Qt) have a different
entry point, namely WinMain. In Qt5, src/winmain/qtmain_win.cpp defines
WinMain, but seems to convert its arguments from Unicode to CP_ACP
(ASCII). It might not support UTF-8, but I did not verify this.
Change-Id: I93fa59324eb2ef95a305b08fc5ba34d49cc73bf0
Reviewed-on: https://code.wireshark.org/review/31208
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r-- | capinfos.c | 2 | ||||
-rw-r--r-- | captype.c | 2 | ||||
-rw-r--r-- | cli_main.c | 15 | ||||
-rw-r--r-- | cli_main.h | 10 | ||||
-rw-r--r-- | dumpcap.c | 2 | ||||
-rw-r--r-- | editcap.c | 2 | ||||
-rw-r--r-- | extcap/androiddump.c | 2 | ||||
-rw-r--r-- | extcap/ciscodump.c | 2 | ||||
-rw-r--r-- | extcap/randpktdump.c | 2 | ||||
-rw-r--r-- | extcap/sshdump.c | 2 | ||||
-rw-r--r-- | extcap/udpdump.c | 2 | ||||
-rw-r--r-- | mergecap.c | 2 | ||||
-rw-r--r-- | randpkt.c | 2 | ||||
-rw-r--r-- | rawshark.c | 2 | ||||
-rw-r--r-- | reordercap.c | 2 | ||||
-rw-r--r-- | text2pcap.c | 2 | ||||
-rw-r--r-- | tfshark.c | 2 | ||||
-rw-r--r-- | tshark.c | 2 |
18 files changed, 29 insertions, 28 deletions
diff --git a/capinfos.c b/capinfos.c index 18cd9696b9..9bdb961984 100644 --- a/capinfos.c +++ b/capinfos.c @@ -1400,7 +1400,7 @@ hash_to_str(const unsigned char *hash, size_t length, char *str) { } int -real_main(int argc, char *argv[]) +main(int argc, char *argv[]) { char *init_progfile_dir_error; wtap *wth; @@ -78,7 +78,7 @@ failure_message_cont(const char *msg_format, va_list ap) } int -real_main(int argc, char *argv[]) +main(int argc, char *argv[]) { char *init_progfile_dir_error; wtap *wth; diff --git a/cli_main.c b/cli_main.c index ee5f67e93c..61c8c58ae7 100644 --- a/cli_main.c +++ b/cli_main.c @@ -1,7 +1,7 @@ /* * Compile and link this with all CLI programs where the main routine - * should get UTF-8 arguments on Windows. In those programs, declare - * the main program as real_main() rather than main(). + * should get UTF-8 arguments on Windows. In those programs, include the + * cli_main.h header to rename main to real_main on Windows. * * This is used in software licensed under the GPLv2, and its license MUST * be compatible with that license. @@ -62,12 +62,11 @@ wmain(int argc, wchar_t *wc_argv[]) argv[i] = utf8_string; } argv[i] = NULL; - return real_main(argc, argv); -} -#else /* _WIN32 */ -int -main(int argc, char *argv[]) -{ + /* + * The original "main" routine was renamed to "real_main" via a macro in + * the cli_main.h header file since either "main" or "wmain" can be + * defined on Windows, but not both. + */ return real_main(argc, argv); } #endif diff --git a/cli_main.h b/cli_main.h index fc947b4ce3..e515485529 100644 --- a/cli_main.h +++ b/cli_main.h @@ -1,9 +1,8 @@ /* * Declaration of the real main routine, for all CLI programs where the * main routine should get UTF-8 arguments on Windows. In those programs, - * in the file that defines the main routine, include this header and define - * the main routine as real_main() rather than main(), and build those - * programs with cli_main.c and link with the object file. + * in the file that defines the main routine, include this header and link + * those programs with cli_main.c. * * This is used in software licensed under the GPLv2, and its license MUST * be compatible with that license. @@ -16,4 +15,7 @@ * SPDX-License-Identifier: MIT */ -extern int real_main(int argc, char *argv[]); +#ifdef _WIN32 +int real_main(int argc, char *argv[]); +#define main real_main +#endif @@ -4656,7 +4656,7 @@ get_dumpcap_runtime_info(GString *str) /* And now our feature presentation... [ fade to music ] */ int -real_main(int argc, char *argv[]) +main(int argc, char *argv[]) { int opt; static const struct option long_options[] = { @@ -982,7 +982,7 @@ editcap_dump_open(const char *filename, const wtap_dump_params *params, } int -real_main(int argc, char *argv[]) +main(int argc, char *argv[]) { char *init_progfile_dir_error; wtap *wth = NULL; diff --git a/extcap/androiddump.c b/extcap/androiddump.c index 56868f2014..b3fd931c2f 100644 --- a/extcap/androiddump.c +++ b/extcap/androiddump.c @@ -2480,7 +2480,7 @@ static int capture_android_tcpdump(char *interface, char *fifo, return EXIT_CODE_SUCCESS; } -int real_main(int argc, char **argv) { +int main(int argc, char *argv[]) { int ret = EXIT_CODE_GENERIC; int option_idx = 0; int result; diff --git a/extcap/ciscodump.c b/extcap/ciscodump.c index 798cb7ac50..19a563c335 100644 --- a/extcap/ciscodump.c +++ b/extcap/ciscodump.c @@ -515,7 +515,7 @@ static int list_config(char *interface, unsigned int remote_port) return EXIT_SUCCESS; } -int real_main(int argc, char **argv) +int main(int argc, char *argv[]) { int result; int option_idx = 0; diff --git a/extcap/randpktdump.c b/extcap/randpktdump.c index 647d291ff9..c31e01ed79 100644 --- a/extcap/randpktdump.c +++ b/extcap/randpktdump.c @@ -121,7 +121,7 @@ static int list_config(char *interface) return EXIT_SUCCESS; } -int real_main(int argc, char *argv[]) +int main(int argc, char *argv[]) { int option_idx = 0; int result; diff --git a/extcap/sshdump.c b/extcap/sshdump.c index 67ee1ee605..eb3636fb8f 100644 --- a/extcap/sshdump.c +++ b/extcap/sshdump.c @@ -329,7 +329,7 @@ static char* concat_filters(const char* extcap_filter, const char* remote_filter return g_strdup_printf("(%s) and (%s)", extcap_filter, remote_filter); } -int real_main(int argc, char **argv) +int main(int argc, char *argv[]) { int result; int option_idx = 0; diff --git a/extcap/udpdump.c b/extcap/udpdump.c index 444f637200..c1636b7c94 100644 --- a/extcap/udpdump.c +++ b/extcap/udpdump.c @@ -356,7 +356,7 @@ static void run_listener(const char* fifo, const guint16 port, const char* proto g_free(buf); } -int real_main(int argc, char *argv[]) +int main(int argc, char *argv[]) { int option_idx = 0; int result; diff --git a/mergecap.c b/mergecap.c index 4b06014ef1..7a2b6828e8 100644 --- a/mergecap.c +++ b/mergecap.c @@ -227,7 +227,7 @@ merge_callback(merge_event event, int num, } int -real_main(int argc, char *argv[]) +main(int argc, char *argv[]) { char *init_progfile_dir_error; int opt; @@ -100,7 +100,7 @@ usage(gboolean is_error) } int -real_main(int argc, char **argv) +main(int argc, char *argv[]) { char *init_progfile_dir_error; int opt; diff --git a/rawshark.c b/rawshark.c index c23d8020ac..81427ff841 100644 --- a/rawshark.c +++ b/rawshark.c @@ -403,7 +403,7 @@ set_link_type(const char *lt_arg) { } int -real_main(int argc, char *argv[]) +main(int argc, char *argv[]) { char *init_progfile_dir_error; int opt, i; diff --git a/reordercap.c b/reordercap.c index 4507537f16..7f3463d89b 100644 --- a/reordercap.c +++ b/reordercap.c @@ -161,7 +161,7 @@ failure_message_cont(const char *msg_format, va_list ap) /* Main function. */ /********************************************************************/ int -real_main(int argc, char *argv[]) +main(int argc, char *argv[]) { char *init_progfile_dir_error; wtap *wth = NULL; diff --git a/text2pcap.c b/text2pcap.c index 1ac2442d31..226d53094f 100644 --- a/text2pcap.c +++ b/text2pcap.c @@ -1853,7 +1853,7 @@ parse_options (int argc, char *argv[]) } int -real_main(int argc, char *argv[]) +main(int argc, char *argv[]) { int ret = EXIT_SUCCESS; @@ -300,7 +300,7 @@ get_tfshark_runtime_version_info(GString *str) } int -real_main(int argc, char *argv[]) +main(int argc, char *argv[]) { char *init_progfile_dir_error; int opt; @@ -670,7 +670,7 @@ must_do_dissection(dfilter_t *rfcode, dfilter_t *dfcode, } int -real_main(int argc, char *argv[]) +main(int argc, char *argv[]) { char *init_progfile_dir_error; int opt; |