diff options
Diffstat (limited to 'editcap.c')
-rw-r--r-- | editcap.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -49,6 +49,8 @@ #endif #ifdef _WIN32 +#include <windows.h> +#include <shellapi.h> #include <process.h> /* getpid */ #ifdef HAVE_WINSOCK2_H #include <winsock2.h> @@ -813,6 +815,12 @@ main(int argc, char *argv[]) int i, j, err; gchar *err_info; int opt; + +#ifdef _WIN32 + LPWSTR *wc_argv; + int wc_argc; +#endif /* _WIN32 */ + char *p; unsigned int snaplen = 0; /* No limit */ unsigned int choplen = 0; /* No chop */ @@ -838,6 +846,16 @@ main(int argc, char *argv[]) char* init_progfile_dir_error; #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 */ + /* * Get credential information for later use. */ |