[PATCH] Gettext support for svnserve
From: Kobayashi Noritada <nori1_at_dolphin.c.u-tokyo.ac.jp>
Date: 2004-11-14 13:14:16 CET
Hi,
This is a patch adding gettext support for svnserve.
--
|: Noritada KOBAYASHI
|: Dept. of General Systems Studies,
|: Graduate School of Arts and Sciences, Univ. of Tokyo
|: E-mail: nori1@dolphin.c.u-tokyo.ac.jp (preferable)
|: nori@esa.c.u-tokyo.ac.jp
Log:
Add gettext support for svnserve and use svn_cmdline_fprintf instead of
fprintf.
* subversion/svnserve/main.c:
(usage): Add a pool, which is necessary for the replacement of fprintf by
svn_cmdline_fprintf, to arguments.
--- subversion/svnserve/main.c.orig Sun Nov 14 20:23:13 2004
+++ subversion/svnserve/main.c Sun Nov 14 20:23:27 2004
@@ -39,6 +39,8 @@
#include "svn_repos.h"
#include "svn_version.h"
+#include "svn_private_config.h"
+
#include "server.h"
/* The strategy for handling incoming connections. Some of these may be
@@ -97,36 +99,38 @@
static const apr_getopt_option_t svnserve__options[] =
{
- {"daemon", 'd', 0, "daemon mode"},
+ {"daemon", 'd', 0, N_("daemon mode")},
{"listen-port", SVNSERVE_OPT_LISTEN_PORT, 1,
- "listen port (for daemon mode)"},
+ N_("listen port (for daemon mode)")},
{"listen-host", SVNSERVE_OPT_LISTEN_HOST, 1,
- "listen hostname or IP address (for daemon mode)"},
+ N_("listen hostname or IP address (for daemon mode)")},
{"foreground", SVNSERVE_OPT_FOREGROUND, 0,
- "run in foreground (useful for debugging)"},
- {"help", 'h', 0, "display this help"},
+ N_("run in foreground (useful for debugging)")},
+ {"help", 'h', 0, N_("display this help")},
{"version", SVNSERVE_OPT_VERSION, 0,
- "show version information"},
- {"inetd", 'i', 0, "inetd mode"},
- {"root", 'r', 1, "root of directory to serve"},
- {"read-only", 'R', 0, "deprecated; use repository config file"},
- {"tunnel", 't', 0, "tunnel mode"},
+ N_("show version information")},
+ {"inetd", 'i', 0, N_("inetd mode")},
+ {"root", 'r', 1, N_("root of directory to serve")},
+ {"read-only", 'R', 0, N_("deprecated; use repository config file")},
+ {"tunnel", 't', 0, N_("tunnel mode")},
{"tunnel-user", SVNSERVE_OPT_TUNNEL_USER, 1,
- "tunnel username (default is current uid's name)"},
+ N_("tunnel username (default is current uid's name)")},
#ifdef CONNECTION_HAVE_THREAD_OPTION
- {"threads", 'T', 0, "use threads instead of fork"},
+ {"threads", 'T', 0, N_("use threads instead of fork")},
#endif
- {"listen-once", 'X', 0, "listen once (useful for debugging)"},
+ {"listen-once", 'X', 0, N_("listen once (useful for debugging)")},
{0, 0, 0, 0}
};
-static void usage(const char *progname)
+static void usage(const char *progname, apr_pool_t *pool)
{
if (!progname)
progname = "svnserve";
- fprintf(stderr, "Type '%s --help' for usage.\n", progname);
+ svn_error_clear (svn_cmdline_fprintf(stderr, pool,
+ _("Type '%s --help' for usage.\n"),
+ progname));
exit(1);
}
@@ -134,9 +138,9 @@
{
apr_size_t i;
- svn_error_clear (svn_cmdline_fputs("Usage: svnserve [options]\n"
- "\n"
- "Valid options:\n",
+ svn_error_clear (svn_cmdline_fputs(_("Usage: svnserve [options]\n"
+ "\n"
+ "Valid options:\n"),
stdout, pool));
for (i = 0; svnserve__options[i].name && svnserve__options[i].optch; i++)
{
@@ -272,7 +276,7 @@
if (APR_STATUS_IS_EOF(status))
break;
if (status != APR_SUCCESS)
- usage(argv[0]);
+ usage(argv[0], pool);
switch (opt)
{
case 'h':
@@ -324,13 +328,16 @@
case 'R':
params.read_only = TRUE;
- fprintf(stderr, "Warning: -R is deprecated.\n");
- fprintf(stderr, "Anonymous access is now read-only by default.\n");
- fprintf(stderr, "To change, use conf/svnserve.conf in repos:\n");
- fprintf(stderr, " [general]\n");
- fprintf(stderr, " anon-access = read|write|none (default read)\n");
- fprintf(stderr, " auth-access = read|write|none (default write)\n");
- fprintf(stderr, "Forcing all access to read-only for now\n");
+ svn_error_clear
+ (svn_cmdline_fprintf
+ (stderr, pool,
+ _("Warning: -R is deprecated.\n"
+ "Anonymous access is now read-only by default.\n"
+ "To change, use conf/svnserve.conf in repos:\n"
+ " [general]\n"
+ " anon-access = read|write|none (default read)\n"
+ " auth-access = read|write|none (default write)\n"
+ "Forcing all access to read-only for now\n")));
break;
case 'T':
@@ -339,18 +346,23 @@
}
}
if (os->ind != argc)
- usage(argv[0]);
+ usage(argv[0], pool);
if (params.tunnel_user && run_mode != run_mode_tunnel)
{
- fprintf(stderr, "Option --tunnel-user is only valid in tunnel mode.\n");
+ svn_error_clear
+ (svn_cmdline_fprintf
+ (stderr, pool,
+ _("Option --tunnel-user is only valid in tunnel mode.\n")));
exit(1);
}
if (run_mode == run_mode_none)
{
- fprintf(stderr, "You must specify one of -d, -i, -t or -X.\n");
- usage(argv[0]);
+ svn_error_clear
+ (svn_cmdline_fprintf
+ (stderr, pool, _("You must specify one of -d, -i, -t or -X.\n")));
+ usage(argv[0], pool);
}
if (run_mode == run_mode_inetd || run_mode == run_mode_tunnel)
@@ -374,8 +386,10 @@
#endif
if (status)
{
- fprintf(stderr, "Can't create server socket: %s\n",
- apr_strerror(status, errbuf, sizeof(errbuf)));
+ svn_error_clear
+ (svn_cmdline_fprintf
+ (stderr, pool, _("Can't create server socket: %s\n"),
+ apr_strerror(status, errbuf, sizeof(errbuf))));
exit(1);
}
@@ -386,16 +400,20 @@
status = apr_sockaddr_info_get(&sa, host, APR_INET, port, 0, pool);
if (status)
{
- fprintf(stderr, "Can't get address info: %s\n",
- apr_strerror(status, errbuf, sizeof(errbuf)));
+ svn_error_clear
+ (svn_cmdline_fprintf
+ (stderr, pool, _("Can't get address info: %s\n"),
+ apr_strerror(status, errbuf, sizeof(errbuf))));
exit(1);
}
status = apr_socket_bind(sock, sa);
if (status)
{
- fprintf(stderr, "Can't bind server socket: %s\n",
- apr_strerror(status, errbuf, sizeof(errbuf)));
+ svn_error_clear
+ (svn_cmdline_fprintf
+ (stderr, pool, _("Can't bind server socket: %s\n"),
+ apr_strerror(status, errbuf, sizeof(errbuf))));
exit(1);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sun Nov 14 13:14:47 2004
|
This is an archived mail posted to the Subversion Dev mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.