aboutsummaryrefslogtreecommitdiffstats
path: root/dumpcap.c
diff options
context:
space:
mode:
Diffstat (limited to 'dumpcap.c')
-rw-r--r--dumpcap.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/dumpcap.c b/dumpcap.c
index c17394a7a3..3dc0bf87ac 100644
--- a/dumpcap.c
+++ b/dumpcap.c
@@ -85,6 +85,7 @@
#include "pcapio.h"
#ifdef _WIN32
+#include <shellapi.h>
#include "capture-wpcap.h"
#include <wsutil/unicode-utils.h>
#endif
@@ -3305,6 +3306,8 @@ main(int argc, char *argv[])
#ifdef _WIN32
WSADATA wsaData;
+ LPWSTR *wc_argv;
+ int wc_argc;
#else
struct sigaction action, oldaction;
#endif
@@ -3327,6 +3330,16 @@ main(int argc, char *argv[])
#endif
#ifdef _WIN32
+ /* Convert our arg list to UTF-8. */
+ wc_argv = CommandLineToArgvW(GetCommandLineW(), &wc_argc);
+ if (wc_argv && wc_argc == argc) {
+ for (i = 0; i < argc; i++) {
+ argv[i] = g_utf16_to_utf8(wc_argv[i], -1, NULL, NULL, NULL);
+ }
+ } /* XXX else bail because something is horribly, horribly wrong? */
+#endif /* _WIN32 */
+
+#ifdef _WIN32
/*
* Initialize our DLL search path. MUST be called before LoadLibrary
* or g_module_open.