diff options
Diffstat (limited to 'dumpcap.c')
-rw-r--r-- | dumpcap.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -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. |