[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r21867 - in gnunet/src: arm ats chat core dht dns exit fs g
From: |
gnunet |
Subject: |
[GNUnet-SVN] r21867 - in gnunet/src: arm ats chat core dht dns exit fs gns hostlist include integration-tests namestore nat nse peerinfo-tool pt statistics template testing_old topology transport util vpn |
Date: |
Mon, 11 Jun 2012 00:47:57 +0200 |
Author: grothoff
Date: 2012-06-11 00:47:57 +0200 (Mon, 11 Jun 2012)
New Revision: 21867
Modified:
gnunet/src/arm/gnunet-arm.c
gnunet/src/ats/perf_ats_mlp.c
gnunet/src/chat/gnunet-chat.c
gnunet/src/core/gnunet-core.c
gnunet/src/dht/gnunet-dht-get.c
gnunet/src/dht/gnunet-dht-monitor.c
gnunet/src/dht/gnunet-dht-put.c
gnunet/src/dns/gnunet-dns-monitor.c
gnunet/src/dns/gnunet-dns-redirector.c
gnunet/src/exit/gnunet-daemon-exit.c
gnunet/src/fs/gnunet-directory.c
gnunet/src/fs/gnunet-download.c
gnunet/src/fs/gnunet-fs.c
gnunet/src/fs/gnunet-helper-fs-publish.c
gnunet/src/fs/gnunet-pseudonym.c
gnunet/src/fs/gnunet-publish.c
gnunet/src/fs/gnunet-search.c
gnunet/src/fs/gnunet-unindex.c
gnunet/src/gns/gnunet-gns-fcfsd.c
gnunet/src/gns/gnunet-gns-lookup.c
gnunet/src/gns/gnunet-gns-proxy.c
gnunet/src/gns/gnunet-gns.c
gnunet/src/hostlist/gnunet-daemon-hostlist.c
gnunet/src/include/gnunet_strings_lib.h
gnunet/src/integration-tests/connection_watchdog.c
gnunet/src/namestore/gnunet-namestore.c
gnunet/src/nat/gnunet-nat-server.c
gnunet/src/nse/gnunet-nse-profiler.c
gnunet/src/peerinfo-tool/gnunet-peerinfo.c
gnunet/src/pt/gnunet-daemon-pt.c
gnunet/src/statistics/gnunet-statistics.c
gnunet/src/template/gnunet-template.c
gnunet/src/testing_old/gnunet-testing.c
gnunet/src/topology/gnunet-daemon-topology.c
gnunet/src/transport/gnunet-transport.c
gnunet/src/util/gnunet-resolver.c
gnunet/src/util/gnunet-rsa.c
gnunet/src/util/program.c
gnunet/src/util/strings.c
gnunet/src/vpn/gnunet-vpn.c
Log:
LRN: new utf8 argv converter for W32, converting strings on command-line to
UTF-8 for all command-line tools.
Modified: gnunet/src/arm/gnunet-arm.c
===================================================================
--- gnunet/src/arm/gnunet-arm.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/arm/gnunet-arm.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -431,6 +431,9 @@
if (temp_timeout_ms > 0)
timeout.rel_value = temp_timeout_ms;
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
if (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-arm",
gettext_noop
Modified: gnunet/src/ats/perf_ats_mlp.c
===================================================================
--- gnunet/src/ats/perf_ats_mlp.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/ats/perf_ats_mlp.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -360,6 +360,8 @@
GNUNET_GETOPT_OPTION_END
};
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
GNUNET_PROGRAM_run (argc, argv,
"perf_ats_mlp", "nohelp", options,
Modified: gnunet/src/chat/gnunet-chat.c
===================================================================
--- gnunet/src/chat/gnunet-chat.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/chat/gnunet-chat.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -737,6 +737,10 @@
flags |= O_NONBLOCK;
fcntl (0, F_SETFL, flags);
#endif
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-chat",
gettext_noop ("Join a chat on GNUnet."), options,
Modified: gnunet/src/core/gnunet-core.c
===================================================================
--- gnunet/src/core/gnunet-core.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/core/gnunet-core.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -89,6 +89,10 @@
static const struct GNUNET_GETOPT_CommandLineOption options[] = {
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-core",
gettext_noop
Modified: gnunet/src/dht/gnunet-dht-get.c
===================================================================
--- gnunet/src/dht/gnunet-dht-get.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/dht/gnunet-dht-get.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -226,6 +226,10 @@
int
main (int argc, char *const *argv)
{
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-dht-get",
gettext_noop
Modified: gnunet/src/dht/gnunet-dht-monitor.c
===================================================================
--- gnunet/src/dht/gnunet-dht-monitor.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/dht/gnunet-dht-monitor.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -315,6 +315,9 @@
int
main (int argc, char *const *argv)
{
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-dht-get",
gettext_noop
Modified: gnunet/src/dht/gnunet-dht-put.c
===================================================================
--- gnunet/src/dht/gnunet-dht-put.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/dht/gnunet-dht-put.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -217,6 +217,9 @@
int
main (int argc, char *const *argv)
{
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-dht-put",
gettext_noop
Modified: gnunet/src/dns/gnunet-dns-monitor.c
===================================================================
--- gnunet/src/dns/gnunet-dns-monitor.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/dns/gnunet-dns-monitor.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -342,6 +342,10 @@
GNUNET_GETOPT_OPTION_VERBOSE (&verbosity),
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-dns-monitor",
gettext_noop
Modified: gnunet/src/dns/gnunet-dns-redirector.c
===================================================================
--- gnunet/src/dns/gnunet-dns-redirector.c 2012-06-10 22:44:32 UTC (rev
21866)
+++ gnunet/src/dns/gnunet-dns-redirector.c 2012-06-10 22:47:57 UTC (rev
21867)
@@ -241,6 +241,10 @@
GNUNET_GETOPT_OPTION_VERBOSE (&verbosity),
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-dns-redirector",
gettext_noop
Modified: gnunet/src/exit/gnunet-daemon-exit.c
===================================================================
--- gnunet/src/exit/gnunet-daemon-exit.c 2012-06-10 22:44:32 UTC (rev
21866)
+++ gnunet/src/exit/gnunet-daemon-exit.c 2012-06-10 22:47:57 UTC (rev
21867)
@@ -3230,6 +3230,9 @@
GNUNET_GETOPT_OPTION_END
};
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-daemon-exit",
gettext_noop
Modified: gnunet/src/fs/gnunet-directory.c
===================================================================
--- gnunet/src/fs/gnunet-directory.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/fs/gnunet-directory.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -173,6 +173,10 @@
static struct GNUNET_GETOPT_CommandLineOption options[] = {
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-directory [OPTIONS]
FILENAME",
gettext_noop
Modified: gnunet/src/fs/gnunet-download.c
===================================================================
--- gnunet/src/fs/gnunet-download.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/fs/gnunet-download.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -272,6 +272,10 @@
0, &GNUNET_GETOPT_increment_value, &verbose},
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-download [OPTIONS] URI",
gettext_noop
Modified: gnunet/src/fs/gnunet-fs.c
===================================================================
--- gnunet/src/fs/gnunet-fs.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/fs/gnunet-fs.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -119,6 +119,10 @@
GNUNET_GETOPT_OPTION_VERBOSE (&verbose),
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-fs [OPTIONS]",
gettext_noop ("Special file-sharing operations"),
Modified: gnunet/src/fs/gnunet-helper-fs-publish.c
===================================================================
--- gnunet/src/fs/gnunet-helper-fs-publish.c 2012-06-10 22:44:32 UTC (rev
21866)
+++ gnunet/src/fs/gnunet-helper-fs-publish.c 2012-06-10 22:47:57 UTC (rev
21867)
@@ -413,7 +413,7 @@
* @return 0 on success
*/
int main(int argc,
- char **argv)
+ char *const *argv)
{
const char *filename_expanded;
const char *ex;
@@ -424,6 +424,9 @@
* binary mode.
*/
_setmode (1, _O_BINARY);
+ /* Get utf-8-encoded arguments */
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 5;
#endif
/* parse command line */
Modified: gnunet/src/fs/gnunet-pseudonym.c
===================================================================
--- gnunet/src/fs/gnunet-pseudonym.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/fs/gnunet-pseudonym.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -313,6 +313,10 @@
};
bo.expiration_time =
GNUNET_FS_year_to_time (GNUNET_FS_get_current_year () + 2);
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-pseudonym [OPTIONS]",
gettext_noop ("Manage GNUnet pseudonyms."),
Modified: gnunet/src/fs/gnunet-publish.c
===================================================================
--- gnunet/src/fs/gnunet-publish.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/fs/gnunet-publish.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -736,6 +736,10 @@
"GNUnet publish starts\n");
bo.expiration_time =
GNUNET_FS_year_to_time (GNUNET_FS_get_current_year () + 2);
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-publish [OPTIONS] FILENAME",
gettext_noop
Modified: gnunet/src/fs/gnunet-search.c
===================================================================
--- gnunet/src/fs/gnunet-search.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/fs/gnunet-search.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -302,6 +302,10 @@
1, &GNUNET_GETOPT_set_uint, &results_limit},
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-search [OPTIONS] KEYWORD",
gettext_noop
Modified: gnunet/src/fs/gnunet-unindex.c
===================================================================
--- gnunet/src/fs/gnunet-unindex.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/fs/gnunet-unindex.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -170,6 +170,10 @@
0, &GNUNET_GETOPT_set_one, &verbose},
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-unindex [OPTIONS] FILENAME",
gettext_noop
Modified: gnunet/src/gns/gnunet-gns-fcfsd.c
===================================================================
--- gnunet/src/gns/gnunet-gns-fcfsd.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/gns/gnunet-gns-fcfsd.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -797,6 +797,9 @@
int ret;
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
GNUNET_log_setup ("fcfsd", "WARNING", NULL);
ret =
(GNUNET_OK ==
Modified: gnunet/src/gns/gnunet-gns-lookup.c
===================================================================
--- gnunet/src/gns/gnunet-gns-lookup.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/gns/gnunet-gns-lookup.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -204,6 +204,9 @@
int
main (int argc, char *const *argv)
{
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-gns-get",
gettext_noop
Modified: gnunet/src/gns/gnunet-gns-proxy.c
===================================================================
--- gnunet/src/gns/gnunet-gns-proxy.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/gns/gnunet-gns-proxy.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -2320,6 +2320,9 @@
int ret;
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
GNUNET_log_setup ("gnunet-gns-proxy", "WARNING", NULL);
ret =
(GNUNET_OK ==
Modified: gnunet/src/gns/gnunet-gns.c
===================================================================
--- gnunet/src/gns/gnunet-gns.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/gns/gnunet-gns.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -248,6 +248,9 @@
int ret;
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
GNUNET_log_setup ("gnunet-gns", "WARNING", NULL);
ret =
(GNUNET_OK ==
Modified: gnunet/src/hostlist/gnunet-daemon-hostlist.c
===================================================================
--- gnunet/src/hostlist/gnunet-daemon-hostlist.c 2012-06-10 22:44:32 UTC
(rev 21866)
+++ gnunet/src/hostlist/gnunet-daemon-hostlist.c 2012-06-10 22:47:57 UTC
(rev 21867)
@@ -334,6 +334,9 @@
int ret;
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
GNUNET_log_setup ("hostlist", "WARNING", NULL);
ret =
(GNUNET_OK ==
Modified: gnunet/src/include/gnunet_strings_lib.h
===================================================================
--- gnunet/src/include/gnunet_strings_lib.h 2012-06-10 22:44:32 UTC (rev
21866)
+++ gnunet/src/include/gnunet_strings_lib.h 2012-06-10 22:47:57 UTC (rev
21867)
@@ -390,6 +390,24 @@
struct sockaddr_storage *r_buf);
+/**
+ * Returns utf-8 encoded arguments.
+ * Does nothing (returns a copy of argc and argv) on any platform
+ * other than W32.
+ * Returned argv has u8argv[u8argc] == NULL.
+ * Returned argv is a single memory block, and can be freed with a single
+ * GNUNET_free () call.
+ *
+ * @param argc argc (as given by main())
+ * @param argv argv (as given by main())
+ * @param u8argc a location to store new argc in (though it's th same as argc)
+ * @param u8argv a location to store new argv in
+ * @return GNUNET_OK on success, GNUNET_SYSERR on failure
+ */
+int
+GNUNET_STRINGS_get_utf8_args (int argc, char *const *argv, int *u8argc,
+ char *const **u8argv);
+
/* ifndef GNUNET_UTIL_STRING_H */
#endif
/* end of gnunet_util_string.h */
Modified: gnunet/src/integration-tests/connection_watchdog.c
===================================================================
--- gnunet/src/integration-tests/connection_watchdog.c 2012-06-10 22:44:32 UTC
(rev 21866)
+++ gnunet/src/integration-tests/connection_watchdog.c 2012-06-10 22:47:57 UTC
(rev 21867)
@@ -1090,6 +1090,10 @@
GNUNET_NO, &GNUNET_GETOPT_set_one, &ping},
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "cn",
gettext_noop ("help text"), options, &run,
Modified: gnunet/src/namestore/gnunet-namestore.c
===================================================================
--- gnunet/src/namestore/gnunet-namestore.c 2012-06-10 22:44:32 UTC (rev
21866)
+++ gnunet/src/namestore/gnunet-namestore.c 2012-06-10 22:47:57 UTC (rev
21867)
@@ -493,6 +493,9 @@
int ret;
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
GNUNET_log_setup ("gnunet-namestore", "WARNING", NULL);
ret =
(GNUNET_OK ==
Modified: gnunet/src/nat/gnunet-nat-server.c
===================================================================
--- gnunet/src/nat/gnunet-nat-server.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/nat/gnunet-nat-server.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -313,6 +313,9 @@
GNUNET_GETOPT_OPTION_END
};
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
if (GNUNET_OK !=
GNUNET_PROGRAM_run (argc, argv, "gnunet-nat-server [options] PORT",
_("GNUnet NAT traversal test helper daemon"),
options,
Modified: gnunet/src/nse/gnunet-nse-profiler.c
===================================================================
--- gnunet/src/nse/gnunet-nse-profiler.c 2012-06-10 22:44:32 UTC (rev
21866)
+++ gnunet/src/nse/gnunet-nse-profiler.c 2012-06-10 22:47:57 UTC (rev
21867)
@@ -914,8 +914,11 @@
int
-main (int argc, char *argv[])
+main (int argc, char *const *argv)
{
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
GNUNET_log_setup ("nse-profiler",
#if VERBOSE
"DEBUG",
Modified: gnunet/src/peerinfo-tool/gnunet-peerinfo.c
===================================================================
--- gnunet/src/peerinfo-tool/gnunet-peerinfo.c 2012-06-10 22:44:32 UTC (rev
21866)
+++ gnunet/src/peerinfo-tool/gnunet-peerinfo.c 2012-06-10 22:47:57 UTC (rev
21867)
@@ -952,6 +952,10 @@
1, &GNUNET_GETOPT_set_string, &put_uri},
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-peerinfo",
gettext_noop ("Print information about peers."),
Modified: gnunet/src/pt/gnunet-daemon-pt.c
===================================================================
--- gnunet/src/pt/gnunet-daemon-pt.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/pt/gnunet-daemon-pt.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -967,6 +967,9 @@
GNUNET_GETOPT_OPTION_END
};
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-daemon-pt",
gettext_noop
Modified: gnunet/src/statistics/gnunet-statistics.c
===================================================================
--- gnunet/src/statistics/gnunet-statistics.c 2012-06-10 22:44:32 UTC (rev
21866)
+++ gnunet/src/statistics/gnunet-statistics.c 2012-06-10 22:47:57 UTC (rev
21867)
@@ -240,6 +240,10 @@
&GNUNET_GETOPT_set_one, &watch},
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-statistics [options
[value]]",
gettext_noop
Modified: gnunet/src/template/gnunet-template.c
===================================================================
--- gnunet/src/template/gnunet-template.c 2012-06-10 22:44:32 UTC (rev
21866)
+++ gnunet/src/template/gnunet-template.c 2012-06-10 22:47:57 UTC (rev
21867)
@@ -63,6 +63,10 @@
/* FIMXE: add options here */
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-template",
gettext_noop ("help text"), options, &run,
Modified: gnunet/src/testing_old/gnunet-testing.c
===================================================================
--- gnunet/src/testing_old/gnunet-testing.c 2012-06-10 22:44:32 UTC (rev
21866)
+++ gnunet/src/testing_old/gnunet-testing.c 2012-06-10 22:47:57 UTC (rev
21867)
@@ -282,6 +282,10 @@
GNUNET_YES, &GNUNET_GETOPT_set_string, &create_cfg_template},
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-testing",
gettext_noop ("Command line tool to access the
testing library"), options, &run,
Modified: gnunet/src/topology/gnunet-daemon-topology.c
===================================================================
--- gnunet/src/topology/gnunet-daemon-topology.c 2012-06-10 22:44:32 UTC
(rev 21866)
+++ gnunet/src/topology/gnunet-daemon-topology.c 2012-06-10 22:47:57 UTC
(rev 21867)
@@ -1356,6 +1356,9 @@
};
int ret;
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
ret =
(GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-daemon-topology",
Modified: gnunet/src/transport/gnunet-transport.c
===================================================================
--- gnunet/src/transport/gnunet-transport.c 2012-06-10 22:44:32 UTC (rev
21866)
+++ gnunet/src/transport/gnunet-transport.c 2012-06-10 22:47:57 UTC (rev
21867)
@@ -639,6 +639,10 @@
GNUNET_GETOPT_OPTION_VERBOSE (&verbosity),
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-transport",
gettext_noop
Modified: gnunet/src/util/gnunet-resolver.c
===================================================================
--- gnunet/src/util/gnunet-resolver.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/util/gnunet-resolver.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -149,6 +149,10 @@
0, &GNUNET_GETOPT_set_one, &reverse },
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-resolver [hostname]",
gettext_noop ("Use build-in GNUnet stub
resolver"),
Modified: gnunet/src/util/gnunet-rsa.c
===================================================================
--- gnunet/src/util/gnunet-rsa.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/util/gnunet-rsa.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -119,6 +119,10 @@
0, &GNUNET_GETOPT_set_one, &print_short_identity },
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-rsa [OPTIONS] keyfile",
gettext_noop ("Manipulate GNUnet private RSA key
files"),
Modified: gnunet/src/util/program.c
===================================================================
--- gnunet/src/util/program.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/util/program.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -165,6 +165,7 @@
char *lpfx;
char *spc;
+
logfile = NULL;
gargs = getenv ("GNUNET_ARGS");
if (gargs != NULL)
Modified: gnunet/src/util/strings.c
===================================================================
--- gnunet/src/util/strings.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/util/strings.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -32,6 +32,7 @@
#include "gnunet_common.h"
#include "gnunet_strings_lib.h"
#include <unicase.h>
+#include <unistr.h>
#define LOG(kind,...) GNUNET_log_from (kind, "util", __VA_ARGS__)
@@ -1113,4 +1114,93 @@
return GNUNET_STRINGS_to_address_ipv4 (addr, addrlen, (struct sockaddr_in *)
r_buf);
}
+/**
+ * Makes a copy of argv that consists of a single memory chunk that can be
+ * freed with a single call to GNUNET_free ();
+ */
+static char *const *
+_make_continuous_arg_copy (int argc, char *const *argv)
+{
+ size_t argvsize = 0;
+ int i;
+ char **new_argv;
+ char *p;
+ for (i = 0; i < argc; i++)
+ argvsize += strlen (argv[i]) + 1 + sizeof (char *);
+ new_argv = GNUNET_malloc (argvsize + sizeof (char *));
+ p = (char *) &new_argv[argc + 1];
+ for (i = 0; i < argc; i++)
+ {
+ new_argv[i] = p;
+ strcpy (p, argv[i]);
+ p += strlen (argv[i]) + 1;
+ }
+ new_argv[argc] = NULL;
+ return (char *const *) new_argv;
+}
+
+/**
+ * Returns utf-8 encoded arguments.
+ * Does nothing (returns a copy of argc and argv) on any platform
+ * other than W32.
+ * Returned argv has u8argv[u8argc] == NULL.
+ * Returned argv is a single memory block, and can be freed with a single
+ * GNUNET_free () call.
+ *
+ * @param argc argc (as given by main())
+ * @param argv argv (as given by main())
+ * @param u8argc a location to store new argc in (though it's th same as argc)
+ * @param u8argv a location to store new argv in
+ * @return GNUNET_OK on success, GNUNET_SYSERR on failure
+ */
+int
+GNUNET_STRINGS_get_utf8_args (int argc, char *const *argv, int *u8argc, char
*const **u8argv)
+{
+#if WINDOWS
+ wchar_t *wcmd;
+ wchar_t **wargv;
+ int wargc;
+ int i;
+ char **split_u8argv;
+
+ wcmd = GetCommandLineW ();
+ if (NULL == wcmd)
+ return GNUNET_SYSERR;
+ wargv = CommandLineToArgvW (wcmd, &wargc);
+ if (NULL == wargv)
+ return GNUNET_SYSERR;
+
+ split_u8argv = GNUNET_malloc (argc * sizeof (char *));
+
+ for (i = 0; i < wargc; i++)
+ {
+ size_t strl;
+ /* Hopefully it will allocate us NUL-terminated strings... */
+ split_u8argv[i] = (char *) u16_to_u8 (wargv[i], wcslen (wargv[i]) + 1,
NULL, &strl);
+ if (split_u8argv == NULL)
+ {
+ int j;
+ for (j = 0; j < i; j++)
+ free (split_u8argv[j]);
+ GNUNET_free (split_u8argv);
+ LocalFree (wargv);
+ return GNUNET_SYSERR;
+ }
+ }
+
+ *u8argv = _make_continuous_arg_copy (wargc, split_u8argv);
+ *u8argc = wargc;
+
+ for (i = 0; i < wargc; i++)
+ free (split_u8argv[i]);
+ free (split_u8argv);
+ return GNUNET_OK;
+#else
+ char *const *new_argv = (char *const *) _make_continuous_arg_copy (argc,
argv);
+ *u8argv = new_argv;
+ *u8argc = argc;
+ return GNUNET_OK;
+#endif
+}
+
/* end of strings.c */
Modified: gnunet/src/vpn/gnunet-vpn.c
===================================================================
--- gnunet/src/vpn/gnunet-vpn.c 2012-06-10 22:44:32 UTC (rev 21866)
+++ gnunet/src/vpn/gnunet-vpn.c 2012-06-10 22:47:57 UTC (rev 21867)
@@ -323,6 +323,10 @@
GNUNET_GETOPT_OPTION_VERBOSE (&verbosity),
GNUNET_GETOPT_OPTION_END
};
+
+ if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+ return 2;
+
return (GNUNET_OK ==
GNUNET_PROGRAM_run (argc, argv, "gnunet-vpn",
gettext_noop
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r21867 - in gnunet/src: arm ats chat core dht dns exit fs gns hostlist include integration-tests namestore nat nse peerinfo-tool pt statistics template testing_old topology transport util vpn,
gnunet <=