aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.nmake12
-rw-r--r--capinfos.c21
-rw-r--r--dumpcap.c13
-rw-r--r--editcap.c18
-rw-r--r--gtk/main.c3
-rw-r--r--mergecap.c21
-rw-r--r--randpkt.c22
-rw-r--r--rawshark.c18
-rw-r--r--text2pcap.c22
-rw-r--r--tshark.c13
10 files changed, 153 insertions, 10 deletions
diff --git a/Makefile.nmake b/Makefile.nmake
index d945a334a4..efb9a54cc8 100644
--- a/Makefile.nmake
+++ b/Makefile.nmake
@@ -92,7 +92,7 @@ wireshark_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
!ENDIF
tshark_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
- wsock32.lib user32.lib \
+ wsock32.lib user32.lib shell32.lib \
$(GLIB_LIBS) \
wsutil\libwsutil.lib \
$(GNUTLS_LIBS) \
@@ -112,7 +112,7 @@ tshark_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
!ENDIF
rawshark_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
- wsock32.lib user32.lib \
+ wsock32.lib user32.lib shell32.lib \
$(GLIB_LIBS) \
wsutil\libwsutil.lib \
$(GNUTLS_LIBS) \
@@ -143,17 +143,17 @@ editcap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
$(GLIB_LIBS)
mergecap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
- wsock32.lib user32.lib \
+ wsock32.lib user32.lib shell32.lib \
wsutil\libwsutil.lib \
$(GLIB_LIBS)
text2pcap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
- wsock32.lib user32.lib \
+ wsock32.lib user32.lib shell32.lib \
wsutil\libwsutil.lib \
$(GLIB_LIBS)
dumpcap_LIBS= \
- wsock32.lib user32.lib \
+ wsock32.lib user32.lib shell32.lib \
wsutil\libwsutil.lib \
$(GLIB_LIBS) \
$(GTHREAD_LIBS)
@@ -177,7 +177,7 @@ dftest_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
!ENDIF
randpkt_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
- user32.lib \
+ user32.lib shell32.lib \
wsutil\libwsutil.lib \
$(GLIB_LIBS)
diff --git a/capinfos.c b/capinfos.c
index 08017999b4..86f9b81606 100644
--- a/capinfos.c
+++ b/capinfos.c
@@ -85,6 +85,10 @@
#include "wsutil/wsgetopt.h"
#endif
+#ifdef _WIN32
+#include <shellapi.h>
+#endif /* _WIN32 */
+
#include "svnversion.h"
/*
@@ -802,6 +806,13 @@ main(int argc, char *argv[])
int err;
gchar *err_info;
int opt;
+
+#ifdef _WIN32
+ WSADATA wsaData;
+ LPWSTR *wc_argv;
+ int wc_argc, i;
+#endif /* _WIN32 */
+
int status = 0;
#ifdef HAVE_PLUGINS
char* init_progfile_dir_error;
@@ -813,6 +824,16 @@ main(int argc, char *argv[])
size_t hash_bytes;
#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.
*/
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.
diff --git a/editcap.c b/editcap.c
index 0c54146401..89ecb33a10 100644
--- a/editcap.c
+++ b/editcap.c
@@ -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.
*/
diff --git a/gtk/main.c b/gtk/main.c
index 343708986f..99a3993c27 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -118,7 +118,6 @@
#include "../capture-wpcap.h"
#include "../capture_wpcap_packet.h"
#include <tchar.h> /* Needed for Unicode */
-#include <wsutil/unicode-utils.h>
#include <commctrl.h>
#include <shellapi.h>
#endif /* _WIN32 */
@@ -2098,7 +2097,7 @@ main(int argc, char *argv[])
wc_argv = CommandLineToArgvW(GetCommandLineW(), &wc_argc);
if (wc_argv && wc_argc == argc) {
for (i = 0; i < argc; i++) {
- argv[i] = g_strdup(utf_16to8(wc_argv[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 */
diff --git a/mergecap.c b/mergecap.c
index 05bb517666..460f938ba9 100644
--- a/mergecap.c
+++ b/mergecap.c
@@ -41,6 +41,11 @@
#include <fcntl.h>
#endif
+#ifdef _WIN32
+#include <windows.h>
+#include <shellapi.h>
+#endif /* _WIN32 */
+
static int
get_natural_int(const char *string, const char *name)
{
@@ -143,6 +148,12 @@ int
main(int argc, char *argv[])
{
int opt;
+
+#ifdef _WIN32
+ LPWSTR *wc_argv;
+ int wc_argc;
+#endif /* _WIN32 */
+
gboolean do_append = FALSE;
gboolean verbose = FALSE;
int in_file_count = 0;
@@ -162,6 +173,16 @@ main(int argc, char *argv[])
gboolean got_read_error = FALSE, got_write_error = FALSE;
int count;
+#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 */
+
/* Process the options first */
while ((opt = getopt(argc, argv, "hvas:T:F:w:")) != -1) {
diff --git a/randpkt.c b/randpkt.c
index 941b267643..a9d157ac52 100644
--- a/randpkt.c
+++ b/randpkt.c
@@ -50,6 +50,11 @@
#include <glib.h>
#include "wiretap/wtap.h"
+#ifdef _WIN32
+#include <windows.h>
+#include <shellapi.h>
+#endif /* _WIN32 */
+
#define array_length(x) (sizeof x / sizeof x[0])
/* Types of produceable packets */
@@ -502,12 +507,29 @@ main(int argc, char **argv)
guint8 buffer[65536];
int opt;
+
+#ifdef _WIN32
+ LPWSTR *wc_argv;
+ int wc_argc;
+#endif /* _WIN32 */
+
+
int produce_count = 1000; /* number of pkts to produce */
int produce_type = PKT_ETHERNET;
char *produce_filename = NULL;
int produce_max_bytes = 5000;
pkt_example *example;
+#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 */
+
while ((opt = getopt(argc, argv, "b:c:ht:")) != -1) {
switch (opt) {
case 'b': /* max bytes */
diff --git a/rawshark.c b/rawshark.c
index a88d6fee5e..27d4d7639d 100644
--- a/rawshark.c
+++ b/rawshark.c
@@ -117,6 +117,10 @@
#endif /* HAVE_LIBPCAP */
#include "log.h"
+#ifdef _WIN32
+#include <shellapi.h>
+#endif /* _WIN32 */
+
/*
* This is the template for the decode as option; it is shared between the
* various functions that output the usage for this parameter.
@@ -430,7 +434,9 @@ main(int argc, char *argv[])
gboolean arg_error = FALSE;
#ifdef _WIN32
- WSADATA wsaData;
+ WSADATA wsaData;
+ LPWSTR *wc_argv;
+ int wc_argc;
#endif /* _WIN32 */
char *gpf_path, *pf_path;
@@ -453,6 +459,16 @@ main(int argc, char *argv[])
static const char optstring[] = OPTSTRING_INIT;
+#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.
*/
diff --git a/text2pcap.c b/text2pcap.c
index 4b0ee8a236..cb3d3737a0 100644
--- a/text2pcap.c
+++ b/text2pcap.c
@@ -138,6 +138,11 @@
#include "text2pcap.h"
#include "svnversion.h"
+#ifdef _WIN32
+#include <windows.h>
+#include <shellapi.h>
+#endif /* _WIN32 */
+
/*--- Options --------------------------------------------------------------------*/
/* Debug level */
@@ -1108,6 +1113,20 @@ parse_options (int argc, char *argv[])
{
int c;
char *p;
+#ifdef _WIN32
+ LPWSTR *wc_argv;
+ int wc_argc, i;
+#endif /* _WIN32 */
+
+#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 */
/* Scan CLI parameters */
while ((c = getopt(argc, argv, "dhqe:i:l:m:o:u:s:S:t:T:")) != -1) {
@@ -1351,7 +1370,8 @@ parse_options (int argc, char *argv[])
}
}
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
{
parse_options(argc, argv);
diff --git a/tshark.c b/tshark.c
index ac81ba007d..276872e867 100644
--- a/tshark.c
+++ b/tshark.c
@@ -96,6 +96,7 @@
#ifdef _WIN32
#include "capture-wpcap.h"
#include "capture_errs.h"
+#include <shellapi.h>
#endif /* _WIN32 */
#include "capture_sync.h"
#endif /* HAVE_LIBPCAP */
@@ -765,6 +766,8 @@ main(int argc, char *argv[])
#ifdef _WIN32
WSADATA wsaData;
+ LPWSTR *wc_argv;
+ int wc_argc, i;
#endif /* _WIN32 */
char *gpf_path, *pf_path;
@@ -816,6 +819,16 @@ main(int argc, char *argv[])
static const char optstring[] = OPTSTRING;
+#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.
*/