diff options
Diffstat (limited to 'dumpcap.c')
-rw-r--r-- | dumpcap.c | 24 |
1 files changed, 21 insertions, 3 deletions
@@ -4503,8 +4503,8 @@ get_dumpcap_runtime_info(GString *str) } /* And now our feature presentation... [ fade to music ] */ -int -main(int argc, char *argv[]) +static int +real_main(int argc, char *argv[]) { GString *comp_info_str; GString *runtime_info_str; @@ -4565,7 +4565,6 @@ main(int argc, char *argv[]) g_string_free(runtime_info_str, TRUE); #ifdef _WIN32 - arg_list_utf_16to8(argc, argv); create_app_running_mutex(); /* @@ -5272,6 +5271,25 @@ main(int argc, char *argv[]) return 0; /* never here, make compiler happy */ } +#ifdef _WIN32 +int +wmain(int argc, wchar_t *argv[]) +{ + char **argv_utf8; + + /* Convert our arg list from UTF-16LE to UTF-8. */ + argv_utf8 = g_malloc(argc * sizeof *argv_utf8); + for (int i = 0; i < argc; i++) + argv_utf8[i] = g_utf16_to_utf8(argv[i], -1, NULL, NULL, NULL); + return real_main(argc, argv_utf8); +} +#else +int +main(int argc, char *argv[]) +{ + return real_main(argc, argv); +} +#endif static void console_log_handler(const char *log_domain, GLogLevelFlags log_level, |