subversion/include/ subversion/libsvn_subr/ subversion/svn/ subversion/svnadmin/ subversion/svndumpfilter/ subversion/svnlook/
subversion/svnmucc/ subversion/svnrdump/ subversion/svnserve/ subversion/svn MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Windows 5.0, 5.1 and 5.2 (2000, XP and 2003) are still in use and are now identified as vista, 7 and 8 and the next version might just be 7.0, so I would recommend checking the major version before attaching names. Bert Huijben (Cell phone) From: [email protected] Sent: 8-8-2012 17:37 To: [email protected] Subject: svn commit: r1370813 - in /subversion/trunk: ./ subversion/include/ subversion/libsvn_subr/ subversion/svn/ subversion/svnadmin/ subversion/svndumpfilter/ subversion/svnlook/ subversion/svnmucc/ subversion/svnrdump/ subversion/svnserve/ subversion/svns... Author: brane Date: Wed Aug 8 15:36:25 2012 New Revision: 1370813 URL: http://svn.apache.org/viewvc?rev=3D1370813&view=3Drev Log: Expand "svn --version" output with information about the running system when --verbose is also given on the command line. Currently available: - Minimal running system info on systems with uname(). - System info and commercial release name on Windows. * build.conf (libsvn_subr): Require kernel32.lib on Windows. * configure.ac: Check for uname() in sys/utsname.h. * subversion/include/svn_opt.h (svn_opt_print_help4): New, with verbose opt= ion. (svn_opt_print_help3): Deprecate. * subversion/libsvn_subr/sysinfo.c, subversion/libsvn_subr/sysinfo.h: New. * subversion/libsvn_subr/opt.h (svn_opt__print_version_info): Add "verbose"= . * subversion/libsvn_subr/opt.c: Include sysinfo.h. (svn_opt__print_version_info): In verbose mode, print svn_sysinfo__*. (svn_opt_print_help4): Implement. (svn_opt_print_help3): Remove. * subversion/libsvn_subr/deprecated.c (svn_opt_print_help3, svn_opt_print_help3): Reimplenment in terms of svn_opt_print_help4. (svn_opt_print_help): Update call to svn_opt__print_version_info. * subversion/svn/main.c: Add --verbose option to "svn --version". * subversion/svnlook/main.c: Add --verbose option to "svn --version". Use svn_opt_print_help4 instead of svn_opt_print_help3. * subversion/svn/help-cmd.c, subversion/svnadmin/main.c, subversion/svndumpfilter/main.c, subversion/svnmucc/svnmucc.c, subversion/svnrdump/svnrdump.c, subversion/svnserve/main.c, subversion/svnsync/main.c, subversion/svnversion/main.c, tools/dev/svnraisetreeconflict/main.c, tools/server-side/svn-rep-sharing-stats.c: Use svn_opt_print_help4 instead of svn_opt_print_help3. Added: subversion/trunk/subversion/libsvn_subr/sysinfo.c subversion/trunk/subversion/libsvn_subr/sysinfo.h Modified: subversion/trunk/build.conf subversion/trunk/configure.ac subversion/trunk/subversion/include/svn_opt.h subversion/trunk/subversion/libsvn_subr/deprecated.c subversion/trunk/subversion/libsvn_subr/opt.c subversion/trunk/subversion/libsvn_subr/opt.h subversion/trunk/subversion/svn/help-cmd.c subversion/trunk/subversion/svn/main.c subversion/trunk/subversion/svnadmin/main.c subversion/trunk/subversion/svndumpfilter/main.c subversion/trunk/subversion/svnlook/main.c subversion/trunk/subversion/svnmucc/svnmucc.c subversion/trunk/subversion/svnrdump/svnrdump.c subversion/trunk/subversion/svnserve/main.c subversion/trunk/subversion/svnsync/main.c subversion/trunk/subversion/svnversion/main.c subversion/trunk/tools/dev/svnraisetreeconflict/main.c subversion/trunk/tools/server-side/svn-rep-sharing-stats.c Modified: subversion/trunk/build.conf URL: http://svn.apache.org/viewvc/subversion/trunk/build.conf?rev=3D1370813= &r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/build.conf (original) +++ subversion/trunk/build.conf Wed Aug 8 15:36:25 2012 @@ -296,7 +296,7 @@ type =3D lib install =3D fsmod-lib path =3D subversion/libsvn_subr libs =3D aprutil apriconv apr xml zlib apr_memcache sqlite magic -msvc-libs =3D advapi32.lib shfolder.lib ole32.lib crypt32.lib version.lib +msvc-libs =3D kernel32.lib advapi32.lib shfolder.lib ole32.lib crypt32.lib= version.lib msvc-export =3D=20 svn_auth.h svn_base64.h svn_cache_config.h svn_checksum.h svn_cmdl= ine.h svn_compat.h svn_config.h svn_ctype.h svn_dirent_uri.h svn_dso.h= =20 Modified: subversion/trunk/configure.ac URL: http://svn.apache.org/viewvc/subversion/trunk/configure.ac?rev=3D13708= 13&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/configure.ac (original) +++ subversion/trunk/configure.ac Wed Aug 8 15:36:25 2012 @@ -877,6 +877,8 @@ AC_FUNC_VPRINTF dnl check for functions needed in special file handling AC_CHECK_FUNCS(symlink readlink) =20 +dnl check for uname +AC_CHECK_HEADERS(sys/utsname.h, AC_CHECK_FUNCS(uname), []) =20 dnl Process some configuration options ---------- =20 Modified: subversion/trunk/subversion/include/svn_opt.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_o= pt.h?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/include/svn_opt.h (original) +++ subversion/trunk/subversion/include/svn_opt.h Wed Aug 8 15:36:25 2012 @@ -680,7 +680,8 @@ svn_opt_parse_path(svn_opt_revision_t *r * Else, if @a print_version is TRUE, then print version info, in * brief form if @a quiet is also TRUE; if @a quiet is FALSE, then if * @a version_footer is non-NULL, print it following the version - * information. + * information. If @a verbose is TRUE, also print information about + * the running system and loaded shared libraries, where available. * * Else, if @a os is not @c NULL and does not contain arguments, print * generic help, via svn_opt_print_generic_help2() with the @a header, @@ -695,8 +696,30 @@ svn_opt_parse_path(svn_opt_revision_t *r * --version flag *and* subcommand arguments on a help command line. * The logic for handling such a situation should be in one place. * - * @since New in 1.5. + * @since New in 1.8. */ + +svn_error_t * +svn_opt_print_help4(apr_getopt_t *os, + const char *pgm_name, + svn_boolean_t print_version, + svn_boolean_t quiet, + svn_boolean_t verbose, + const char *version_footer, + const char *header, + const svn_opt_subcommand_desc2_t *cmd_table, + const apr_getopt_option_t *option_table, + const int *global_options, + const char *footer, + apr_pool_t *pool); + +/** + * Same as svn_opt_print_help4(), but with @a verbose always @c FALSE. + * + * @deprecated Provided for backward compatibility with the 1.7 API. + */ + +SVN_DEPRECATED svn_error_t * svn_opt_print_help3(apr_getopt_t *os, const char *pgm_name, Modified: subversion/trunk/subversion/libsvn_subr/deprecated.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/d= eprecated.c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/libsvn_subr/deprecated.c (original) +++ subversion/trunk/subversion/libsvn_subr/deprecated.c Wed Aug 8 15:36:2= 5 2012 @@ -524,6 +524,33 @@ svn_opt_args_to_target_array(apr_array_h } =20 svn_error_t * +svn_opt_print_help3(apr_getopt_t *os, + const char *pgm_name, + svn_boolean_t print_version, + svn_boolean_t quiet, + const char *version_footer, + const char *header, + const svn_opt_subcommand_desc2_t *cmd_table, + const apr_getopt_option_t *option_table, + const int *global_options, + const char *footer, + apr_pool_t *pool) +{ + return svn_error_trace(svn_opt_print_help4(os, + pgm_name, + print_version, + quiet, + FALSE, + version_footer, + header, + cmd_table, + option_table, + global_options, + footer, + pool)); +} + +svn_error_t * svn_opt_print_help2(apr_getopt_t *os, const char *pgm_name, svn_boolean_t print_version, @@ -535,10 +562,11 @@ svn_opt_print_help2(apr_getopt_t *os, const char *footer, apr_pool_t *pool) { - return svn_error_trace(svn_opt_print_help3(os, + return svn_error_trace(svn_opt_print_help4(os, pgm_name, print_version, quiet, + FALSE, version_footer, header, cmd_table, @@ -576,8 +604,8 @@ svn_opt_print_help(apr_getopt_t *os, } } else if (print_version) /* just --version */ - SVN_ERR(svn_opt__print_version_info(pgm_name, version_footer, quiet, - pool)); + SVN_ERR(svn_opt__print_version_info(pgm_name, version_footer, + quiet, FALSE, pool)); else if (os && !targets->nelts) /* `-h', `--help', or `help' = */ svn_opt_print_generic_help(header, cmd_table, Modified: subversion/trunk/subversion/libsvn_subr/opt.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/o= pt.c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/libsvn_subr/opt.c (original) +++ subversion/trunk/subversion/libsvn_subr/opt.c Wed Aug 8 15:36:25 2012 @@ -49,6 +49,7 @@ #include "private/svn_opt_private.h" =20 #include "opt.h" +#include "sysinfo.h" #include "svn_private_config.h" =20 =0C @@ -1105,6 +1106,7 @@ svn_error_t * svn_opt__print_version_info(const char *pgm_name, const char *footer, svn_boolean_t quiet, + svn_boolean_t verbose, apr_pool_t *pool) { if (quiet) @@ -1128,15 +1130,38 @@ svn_opt__print_version_info(const char * SVN_ERR(svn_cmdline_printf(pool, "%s\n", footer)); } =20 + if (verbose) + { + const char *const host =3D svn_sysinfo__canonical_host(pool); + const char *const relname =3D svn_sysinfo__release_name(pool); + const char *const dlibs =3D svn_sysinfo__loaded_libs(pool); + + SVN_ERR(svn_cmdline_fputs(_("System information:\n\n"), stdout, pool= )); + if (relname) + SVN_ERR(svn_cmdline_printf(pool, _("* running on %s\n" + " - %s\n"), + host, relname)); + else + SVN_ERR(svn_cmdline_printf(pool, _("* running on %s\n"), host)); + + if (dlibs) + { + SVN_ERR(svn_cmdline_fputs(_("\nLoaded shared libraries:\n"), + stdout, pool)); + SVN_ERR(svn_cmdline_printf(pool, "\n%s\n", dlibs)); + } + } + return SVN_NO_ERROR; } =20 =20 svn_error_t * -svn_opt_print_help3(apr_getopt_t *os, +svn_opt_print_help4(apr_getopt_t *os, const char *pgm_name, svn_boolean_t print_version, svn_boolean_t quiet, + svn_boolean_t verbose, const char *version_footer, const char *header, const svn_opt_subcommand_desc2_t *cmd_table, @@ -1162,8 +1187,8 @@ svn_opt_print_help3(apr_getopt_t *os, } } else if (print_version) /* just --version */ - SVN_ERR(svn_opt__print_version_info(pgm_name, version_footer, quiet, - pool)); + SVN_ERR(svn_opt__print_version_info(pgm_name, version_footer, + quiet, verbose, pool)); else if (os && !targets->nelts) /* `-h', `--help', or `help' = */ svn_opt_print_generic_help2(header, cmd_table, Modified: subversion/trunk/subversion/libsvn_subr/opt.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/o= pt.h?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/libsvn_subr/opt.h (original) +++ subversion/trunk/subversion/libsvn_subr/opt.h Wed Aug 8 15:36:25 2012 @@ -33,7 +33,7 @@ extern "C" { /* Print version info for PGM_NAME. If QUIET is true, print in * brief. Else if QUIET is not true, print the version more * verbosely, and if FOOTER is non-null, print it following the - * version information. + * version information. If VERBOSE is true, print running system info. * * Use POOL for temporary allocations. */ @@ -41,6 +41,7 @@ svn_error_t * svn_opt__print_version_info(const char *pgm_name, const char *footer, svn_boolean_t quiet, + svn_boolean_t verbose, apr_pool_t *pool); =20 #ifdef __cplusplus Added: subversion/trunk/subversion/libsvn_subr/sysinfo.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/s= ysinfo.c?rev=3D1370813&view=3Dauto =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/libsvn_subr/sysinfo.c (added) +++ subversion/trunk/subversion/libsvn_subr/sysinfo.c Wed Aug 8 15:36:25 2= 012 @@ -0,0 +1,470 @@ +/* + * sysinfo.c : information about the running system + * + * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + */ + + +=0C +#ifdef WIN32 +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#endif + +#define APR_WANT_STRFUNC +#include <apr_want.h> + +#include <apr_lib.h> +#include <apr_pools.h> + +#include "svn_ctype.h" +#include "svn_error.h" +#include "svn_utf.h" + +#include "sysinfo.h" +#include "svn_private_config.h" + +#if HAVE_SYS_UTSNAME_H +#include <sys/utsname.h> +#endif + +#if HAVE_UNAME +static const char* canonical_host_from_uname(apr_pool_t *pool); +#endif + +#ifdef WIN32 +static const char * win32_canonical_host(apr_pool_t *pool); +static const char * win32_release_name(apr_pool_t *pool); +#endif /* WIN32 */ + + +const char * +svn_sysinfo__canonical_host(apr_pool_t *pool) +{ +#if HAVE_UNAME + return canonical_host_from_uname(pool); +#elif defined(WIN32) + return win32_canonical_host(pool); +#else + return "unknown-unknown-unknown"; +#endif +} + + +const char * +svn_sysinfo__release_name(apr_pool_t *pool) +{ +#ifdef WIN32 + return win32_release_name(pool); +#else + return NULL; +#endif +} + + +const char * +svn_sysinfo__loaded_libs(apr_pool_t *pool) +{ + return NULL; +} + +=0C +#if HAVE_UNAME +static const char* +canonical_host_from_uname(apr_pool_t *pool) +{ + const char *machine =3D "unknown"; + const char *vendor =3D "unknown"; + const char *sysname =3D "unknown"; + const char *sysver =3D ""; + struct utsname info; + + if (0 <=3D uname(&info)) + { + svn_error_t *err; + const char *tmp; + + err =3D svn_utf_cstring_to_utf8(&tmp, info.machine, pool); + if (err) + svn_error_clear(err); + else + machine =3D tmp; + + err =3D svn_utf_cstring_to_utf8(&tmp, info.sysname, pool); + if (err) + svn_error_clear(err); + else + { + char *lwr =3D apr_pstrdup(pool, tmp); + char *it =3D lwr; + while (*it) + { + if (svn_ctype_isupper(*it)) + *it =3D apr_tolower(*it); + ++it; + } + sysname =3D lwr; + } + + if (0 =3D=3D strcmp(sysname, "darwin")) + vendor =3D "apple"; + + err =3D svn_utf_cstring_to_utf8(&tmp, info.release, pool); + if (err) + svn_error_clear(err); + else + sysver =3D tmp; + } + + return apr_psprintf(pool, "%s-%s-%s%s", machine, vendor, sysname, sysver= ); +} +#endif /* HAVE_UNAME */ + +=0C +#ifdef WIN32 +typedef DWORD (WINAPI *FNGETNATIVESYSTEMINFO)(LPSYSTEM_INFO); +typedef BOOL (WINAPI *FNGETPRODUCTINFO)(DWORD, DWORD, DWORD, DWORD, PDWORD= ); + +static BOOL +system_info(SYSTEM_INFO *sysinfo, + SYSTEM_INFO *local_sysinfo, + OSVERSIONINFOEXW *osinfo) +{ + FNGETNATIVESYSTEMINFO GetNativeSystemInfo_ =3D (FNGETNATIVESYSTEMINFO) + GetProcAddress(GetModuleHandleA("kernel32.dll"), "GetNativeSystemInfo"= ); + + ZeroMemory(sysinfo, sizeof *sysinfo); + if (local_sysinfo) + { + ZeroMemory(local_sysinfo, sizeof *local_sysinfo); + GetSystemInfo(local_sysinfo); + if (GetNativeSystemInfo_) + GetNativeSystemInfo_(sysinfo); + else + memcpy(sysinfo, local_sysinfo, sizeof *sysinfo); + } + else + GetSystemInfo(sysinfo); + + ZeroMemory(osinfo, sizeof *osinfo); + osinfo->dwOSVersionInfoSize =3D sizeof *osinfo; + if (!GetVersionExW((LPVOID)osinfo)) + return FALSE; + + return TRUE; +} + +static const char * +processor_name(SYSTEM_INFO *sysinfo) +{ + switch (sysinfo->wProcessorArchitecture) + { + case PROCESSOR_ARCHITECTURE_AMD64: return "x86_64"; + case PROCESSOR_ARCHITECTURE_IA64: return "ia64"; + case PROCESSOR_ARCHITECTURE_INTEL: return "x86"; + case PROCESSOR_ARCHITECTURE_MIPS: return "mips"; + case PROCESSOR_ARCHITECTURE_ALPHA: return "alpha32"; + case PROCESSOR_ARCHITECTURE_PPC: return "powerpc"; + case PROCESSOR_ARCHITECTURE_SHX: return "shx"; + case PROCESSOR_ARCHITECTURE_ARM: return "arm"; + case PROCESSOR_ARCHITECTURE_ALPHA64: return "alpha"; + case PROCESSOR_ARCHITECTURE_MSIL: return "msil"; + case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64: return "x86_wow64"; + default: return "unknown"; + } +} + +static char * +default_release_name(OSVERSIONINFOEXW *osinfo, apr_pool_t *pool) +{ + return apr_psprintf(pool, "Windows v%u.%u", + (unsigned int)osinfo->dwMajorVersion, + (unsigned int)osinfo->dwMinorVersion); +} + +static const char * +win32_canonical_host(apr_pool_t *pool) +{ + SYSTEM_INFO sysinfo; + SYSTEM_INFO local_sysinfo; + OSVERSIONINFOEXW osinfo; + + if (system_info(&sysinfo, &local_sysinfo, &osinfo)) + { + const char *arch =3D processor_name(&local_sysinfo); + const char *machine =3D processor_name(&sysinfo); + const char *vendor =3D "microsoft"; + const char *sysname =3D "windows"; + const char *sysver =3D apr_psprintf(pool, "%u.%u.%u", + (unsigned int)osinfo.dwMajorVersio= n, + (unsigned int)osinfo.dwMinorVersio= n, + (unsigned int)osinfo.dwBuildNumber= ); + + if (sysinfo.wProcessorArchitecture + =3D=3D local_sysinfo.wProcessorArchitecture) + return apr_psprintf(pool, "%s-%s-%s%s", + machine, vendor, sysname, sysver); + return apr_psprintf(pool, "%s/%s-%s-%s%s", + arch, machine, vendor, sysname, sysver); + } + + return "unknown-microsoft-windows"; +} + +static const char * +win32_release_name(apr_pool_t *pool) +{ + SYSTEM_INFO sysinfo; + OSVERSIONINFOEXW osinfo; + char *relname =3D NULL; + + if (!system_info(&sysinfo, NULL, &osinfo)) + return NULL; + + if (6 =3D=3D osinfo.dwMajorVersion) + { + FNGETPRODUCTINFO GetProductInfo_ =3D (FNGETPRODUCTINFO) + GetProcAddress(GetModuleHandleA("kernel32.dll"), "GetProductInfo")= ; + DWORD product_type; + + if (osinfo.wProductType =3D=3D VER_NT_WORKSTATION) + switch (osinfo.dwMinorVersion) + { + case 2: relname =3D "Windows 8"; break; + case 1: relname =3D "Windows 7"; break; + case 0: relname =3D "Windows Vista"; break; + } + else + switch (osinfo.dwMinorVersion) + { + case 2: relname =3D "Windows Server 2012"; break; + case 1: relname =3D "Windows Server 2008 R2"; break; + case 0: relname =3D "Windows Server 2008"; break; + } + if (!relname) + relname =3D default_release_name(&osinfo, pool); + + GetProductInfo_(osinfo.dwMajorVersion, osinfo.dwMinorVersion, + 0, 0, &product_type); + switch (product_type) + { + case PRODUCT_ULTIMATE: + relname =3D apr_pstrcat(pool, relname, " Ultimate Edition", NULL= ); + break; + case PRODUCT_PROFESSIONAL: + relname =3D apr_pstrcat(pool, relname, " Professional", NULL); + break; + case PRODUCT_HOME_PREMIUM: + relname =3D apr_pstrcat(pool, relname, " Home Premium Edition", = NULL); + break; + case PRODUCT_HOME_BASIC: + relname =3D apr_pstrcat(pool, relname, " Home Basic Edition", NU= LL); + break; + case PRODUCT_ENTERPRISE: + relname =3D apr_pstrcat(pool, relname, " Enterprise Edition", NU= LL); + break; + case PRODUCT_BUSINESS: + relname =3D apr_pstrcat(pool, relname, " Business Edition", NULL= ); + break; + case PRODUCT_STARTER: + relname =3D apr_pstrcat(pool, relname, " Starter Edition", NULL)= ; + break; + case PRODUCT_CLUSTER_SERVER: + relname =3D apr_pstrcat(pool, relname, + " Cluster Server Edition", NULL); + break; + case PRODUCT_DATACENTER_SERVER: + relname =3D apr_pstrcat(pool, relname, " Datacenter Edition", NU= LL); + break; + case PRODUCT_DATACENTER_SERVER_CORE: + relname =3D apr_pstrcat(pool, relname, + " Datacenter Edition (core installation)", + NULL); + break; + case PRODUCT_ENTERPRISE_SERVER: + relname =3D apr_pstrcat(pool, relname, " Enterprise Edition", NU= LL); + break; + case PRODUCT_ENTERPRISE_SERVER_CORE: + relname =3D apr_pstrcat(pool, relname, + " Enterprise Edition (core installation)", + NULL); + break; + case PRODUCT_ENTERPRISE_SERVER_IA64: + relname =3D apr_pstrcat(pool, relname, + " Enterprise Edition for Itanium", NULL); + break; + case PRODUCT_SMALLBUSINESS_SERVER: + relname =3D apr_pstrcat(pool, relname, + " Small Business Server Edition", NULL); + break; + case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM: + relname =3D apr_pstrcat(pool, relname, + " Small Business Server Premium Edition", + NULL); + break; + case PRODUCT_STANDARD_SERVER: + relname =3D apr_pstrcat(pool, relname, " Standard Edition", NULL= ); + break; + case PRODUCT_STANDARD_SERVER_CORE: + relname =3D apr_pstrcat(pool, relname, + " Standard Edition (core installation)", + NULL); + break; + case PRODUCT_WEB_SERVER: + relname =3D apr_pstrcat(pool, relname, " Web Server Edition", NU= LL); + break; + } + } + else if (5 =3D=3D osinfo.dwMajorVersion) + { + switch (osinfo.dwMinorVersion) + { + case 2: + if (GetSystemMetrics(SM_SERVERR2)) + relname =3D "Windows Server 2003 R2"; + else if (osinfo.wSuiteMask & VER_SUITE_STORAGE_SERVER) + relname =3D "Windows Storage Server 2003"; + else if (osinfo.wSuiteMask & VER_SUITE_WH_SERVER) + relname =3D "Windows Home Server"; + else if (osinfo.wProductType =3D=3D VER_NT_WORKSTATION + && (sysinfo.wProcessorArchitecture + =3D=3D PROCESSOR_ARCHITECTURE_AMD64)) + relname =3D "Windows XP Professional x64 Edition"; + else + relname =3D "Windows Server 2003"; + + if (osinfo.wProductType !=3D VER_NT_WORKSTATION) + switch (sysinfo.wProcessorArchitecture) + { + case PROCESSOR_ARCHITECTURE_IA64: + if (osinfo.wSuiteMask & VER_SUITE_DATACENTER) + relname =3D apr_pstrcat(pool, relname, + " Datacenter Edition for Itanium", + NULL); + else if (osinfo.wSuiteMask & VER_SUITE_ENTERPRISE) + relname =3D apr_pstrcat(pool, relname, + " Enterprise Edition for Itanium", + NULL); + break; + + case PROCESSOR_ARCHITECTURE_AMD64: + if (osinfo.wSuiteMask & VER_SUITE_DATACENTER) + relname =3D apr_pstrcat(pool, relname, + " Datacenter x64 Edition", NULL); + else if (osinfo.wSuiteMask & VER_SUITE_ENTERPRISE) + relname =3D apr_pstrcat(pool, relname, + " Enterprise x64 Edition", NULL); + else + relname =3D apr_pstrcat(pool, relname, + " Standard x64 Edition", NULL); + break; + + default: + if (osinfo.wSuiteMask & VER_SUITE_COMPUTE_SERVER) + relname =3D apr_pstrcat(pool, relname, + " Compute Cluster Edition", NULL); + else if (osinfo.wSuiteMask & VER_SUITE_DATACENTER) + relname =3D apr_pstrcat(pool, relname, + " Datacenter Edition", NULL); + else if (osinfo.wSuiteMask & VER_SUITE_ENTERPRISE) + relname =3D apr_pstrcat(pool, relname, + " Enterprise Edition", NULL); + else if (osinfo.wSuiteMask & VER_SUITE_BLADE) + relname =3D apr_pstrcat(pool, relname, " Web Edition", N= ULL); + else + relname =3D apr_pstrcat(pool, relname, + " Standard Edition", NULL); + } + break; + + case 1: + if (osinfo.wSuiteMask & VER_SUITE_PERSONAL) + relname =3D "Windows XP Home"; + else + relname =3D "Windows XP Professional"; + break; + + case 0: + if (osinfo.wProductType =3D=3D VER_NT_WORKSTATION) + relname =3D "Windows 2000 Professional"; + else + { + if (osinfo.wSuiteMask & VER_SUITE_DATACENTER) + relname =3D "Windows 2000 Datacenter Server"; + else if (osinfo.wSuiteMask & VER_SUITE_ENTERPRISE) + relname =3D "Windows 2000 Advanced Server"; + else + relname =3D "Windows 2000 Server"; + } + break; + + default: + relname =3D default_release_name(&osinfo, pool); + } + } + else if (5 > osinfo.dwMajorVersion) + { + relname =3D apr_psprintf(pool, "Windows NT %d.%d%s", + (unsigned int)osinfo.dwMajorVersion, + (unsigned int)osinfo.dwMinorVersion, + (osinfo.wProductType !=3D VER_NT_WORKSTATION + ? " Server" : "")); + } + else + { + relname =3D default_release_name(&osinfo, pool); + } + + if (*osinfo.szCSDVersion) + { + const int bufsize =3D WideCharToMultiByte(CP_UTF8, 0, + osinfo.szCSDVersion, -1, + NULL, 0, NULL, NULL); + if (bufsize > 0) + { + char *const servicepack =3D apr_palloc(pool, bufsize + 1); + WideCharToMultiByte(CP_UTF8, 0, + osinfo.szCSDVersion, -1, + servicepack, bufsize, + NULL, NULL); + relname =3D apr_psprintf(pool, "%s, %s, build %d", + relname, servicepack, + (unsigned int)osinfo.dwBuildNumber); + } + /* Assume wServicePackMajor > 0 if szCSDVersion is not empty */ + else if (osinfo.wServicePackMinor) + relname =3D apr_psprintf(pool, "%s SP%d.%d, build %d", relname, + (unsigned int)osinfo.wServicePackMajor, + (unsigned int)osinfo.wServicePackMinor, + (unsigned int)osinfo.dwBuildNumber); + else + relname =3D apr_psprintf(pool, "%s SP%d, build %d", relname, + (unsigned int)osinfo.wServicePackMajor, + (unsigned int)osinfo.dwBuildNumber); + } + else + { + relname =3D apr_psprintf(pool, "%s, build %d", relname, + (unsigned int)osinfo.dwBuildNumber); + } + + return relname; +} +#endif /* WIN32 */ Added: subversion/trunk/subversion/libsvn_subr/sysinfo.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/s= ysinfo.h?rev=3D1370813&view=3Dauto =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/libsvn_subr/sysinfo.h (added) +++ subversion/trunk/subversion/libsvn_subr/sysinfo.h Wed Aug 8 15:36:25 2= 012 @@ -0,0 +1,59 @@ +/* + * sysinfo.h: share svn_sysinfo__* functions + * + * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + */ + +#ifndef SVN_LIBSVN_SUBR_SYSINFO_H +#define SVN_LIBSVN_SUBR_SYSINFO_H + +#include <apr_pools.h> + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* Return a canonical name similar to the output of config.guess, + * identifying the running system. + * + * All allocations are done in POOL. + */ +const char *svn_sysinfo__canonical_host(apr_pool_t *pool); + +/* Return the release name (i.e., marketing name) of the running + * system, or NULL if it's not available. + * + * All allocations are done in POOL. + */ +const char *svn_sysinfo__release_name(apr_pool_t *pool); + +/* Return a string containing a list of shared libraries loaded by the + * running process, including their versions where applicable, or NULL + * if the information is not available. + * + * All allocations are done in POOL. + */ +const char *svn_sysinfo__loaded_libs(apr_pool_t *pool); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* SVN_LIBSVN_SUBR_SYSINFO_H */ Modified: subversion/trunk/subversion/svn/help-cmd.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/help-cmd.= c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/svn/help-cmd.c (original) +++ subversion/trunk/subversion/svn/help-cmd.c Wed Aug 8 15:36:25 2012 @@ -79,10 +79,11 @@ svn_cl__help(apr_getopt_t *os, version_footer =3D svn_stringbuf_create(ra_desc_start, pool); SVN_ERR(svn_ra_print_modules(version_footer, pool)); =20 - return svn_opt_print_help3(os, + return svn_opt_print_help4(os, "svn", /* ### erm, derive somehow? */ opt_state ? opt_state->version : FALSE, opt_state ? opt_state->quiet : FALSE, + opt_state ? opt_state->verbose : FALSE, version_footer->data, help_header, /* already gettext()'d */ svn_cl__cmd_table, Modified: subversion/trunk/subversion/svn/main.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/main.c?re= v=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/svn/main.c (original) +++ subversion/trunk/subversion/svn/main.c Wed Aug 8 15:36:25 2012 @@ -2187,6 +2187,7 @@ sub_main(int argc, const char *argv[], a { "--version", svn_cl__help, {0}, "", {opt_version, /* must accept its own option */ 'q', /* brief output */ + 'v', /* verbose output */ opt_config_dir /* all commands accept this */ } }; =20 Modified: subversion/trunk/subversion/svnadmin/main.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnadmin/main= .c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/svnadmin/main.c (original) +++ subversion/trunk/subversion/svnadmin/main.c Wed Aug 8 15:36:25 2012 @@ -990,9 +990,10 @@ subcommand_help(apr_getopt_t *os, void * version_footer =3D svn_stringbuf_create(fs_desc_start, pool); SVN_ERR(svn_fs_print_modules(version_footer, pool)); =20 - SVN_ERR(svn_opt_print_help3(os, "svnadmin", + SVN_ERR(svn_opt_print_help4(os, "svnadmin", opt_state ? opt_state->version : FALSE, opt_state ? opt_state->quiet : FALSE, + /*###opt_state ? opt_state->verbose :*/ FALS= E, version_footer->data, header, cmd_table, options_table, NULL, NULL= , pool)); Modified: subversion/trunk/subversion/svndumpfilter/main.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svndumpfilter= /main.c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/svndumpfilter/main.c (original) +++ subversion/trunk/subversion/svndumpfilter/main.c Wed Aug 8 15:36:25 20= 12 @@ -1135,11 +1135,12 @@ subcommand_help(apr_getopt_t *os, void * "\n" "Available subcommands:\n"); =20 - SVN_ERR(svn_opt_print_help3(os, "svndumpfilter", + SVN_ERR(svn_opt_print_help4(os, "svndumpfilter", opt_state ? opt_state->version : FALSE, - opt_state ? opt_state->quiet : FALSE, NULL, - header, cmd_table, options_table, NULL, - NULL, pool)); + opt_state ? opt_state->quiet : FALSE, + /*###opt_state ? opt_state->verbose :*/ FALS= E, + NULL, header, cmd_table, options_table, + NULL, NULL, pool)); =20 return SVN_NO_ERROR; } Modified: subversion/trunk/subversion/svnlook/main.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnlook/main.= c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/svnlook/main.c (original) +++ subversion/trunk/subversion/svnlook/main.c Wed Aug 8 15:36:25 2012 @@ -2049,9 +2049,10 @@ subcommand_help(apr_getopt_t *os, void * version_footer =3D svn_stringbuf_create(fs_desc_start, pool); SVN_ERR(svn_fs_print_modules(version_footer, pool)); =20 - SVN_ERR(svn_opt_print_help3(os, "svnlook", + SVN_ERR(svn_opt_print_help4(os, "svnlook", opt_state ? opt_state->version : FALSE, opt_state ? opt_state->quiet : FALSE, + opt_state ? opt_state->verbose : FALSE, version_footer->data, header, cmd_table, options_table, NULL, NULL, pool)); @@ -2447,7 +2448,7 @@ main(int argc, const char *argv[]) static const svn_opt_subcommand_desc2_t pseudo_cmd =3D { "--version", subcommand_help, {0}, "", {svnlook__version, /* must accept its own option */ - 'q', + 'q', 'v', } }; =20 subcommand =3D &pseudo_cmd; Modified: subversion/trunk/subversion/svnmucc/svnmucc.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnmucc/svnmu= cc.c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/svnmucc/svnmucc.c (original) +++ subversion/trunk/subversion/svnmucc/svnmucc.c Wed Aug 8 15:36:25 2012 @@ -940,7 +940,8 @@ display_version(apr_getopt_t *os, apr_po version_footer =3D svn_stringbuf_create(ra_desc_start, pool); SVN_ERR(svn_ra_print_modules(version_footer, pool)); =20 - SVN_ERR(svn_opt_print_help3(os, "svnmucc", TRUE, FALSE, version_footer->= data, + SVN_ERR(svn_opt_print_help4(os, "svnmucc", TRUE, FALSE, FALSE, + version_footer->data, NULL, NULL, NULL, NULL, NULL, pool)); =20 return SVN_NO_ERROR; Modified: subversion/trunk/subversion/svnrdump/svnrdump.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnrdump/svnr= dump.c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/svnrdump/svnrdump.c (original) +++ subversion/trunk/subversion/svnrdump/svnrdump.c Wed Aug 8 15:36:25 201= 2 @@ -505,8 +505,8 @@ version(const char *progname, pool); =20 SVN_ERR(svn_ra_print_modules(version_footer, pool)); - return svn_opt_print_help3(NULL, ensure_appname(progname, pool), - TRUE, quiet, version_footer->data, + return svn_opt_print_help4(NULL, ensure_appname(progname, pool), + TRUE, quiet, FALSE, version_footer->data, NULL, NULL, NULL, NULL, NULL, pool); } =20 @@ -579,9 +579,9 @@ help_cmd(apr_getopt_t *os, "\n" "Available subcommands:\n"); =20 - return svn_opt_print_help3(os, "svnrdump", FALSE, FALSE, NULL, header, - svnrdump__cmd_table, svnrdump__options, NULL, - NULL, pool); + return svn_opt_print_help4(os, "svnrdump", FALSE, FALSE, FALSE, NULL, + header, svnrdump__cmd_table, svnrdump__option= s, + NULL, NULL, pool); } =20 /* Examine the OPT_BATON's 'start_revision' and 'end_revision' Modified: subversion/trunk/subversion/svnserve/main.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnserve/main= .c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/svnserve/main.c (original) +++ subversion/trunk/subversion/svnserve/main.c Wed Aug 8 15:36:25 2012 @@ -327,7 +327,8 @@ static svn_error_t * version(svn_boolean _("\nCyrus SASL authentication is available.\n"= )); #endif =20 - return svn_opt_print_help3(NULL, "svnserve", TRUE, quiet, version_footer= ->data, + return svn_opt_print_help4(NULL, "svnserve", TRUE, quiet, FALSE, + version_footer->data, NULL, NULL, NULL, NULL, NULL, pool); } =20 Modified: subversion/trunk/subversion/svnsync/main.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnsync/main.= c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/svnsync/main.c (original) +++ subversion/trunk/subversion/svnsync/main.c Wed Aug 8 15:36:25 2012 @@ -1857,9 +1857,10 @@ help_cmd(apr_getopt_t *os, void *baton,=20 =20 SVN_ERR(svn_ra_print_modules(version_footer, pool)); =20 - SVN_ERR(svn_opt_print_help3(os, "svnsync", + SVN_ERR(svn_opt_print_help4(os, "svnsync", opt_baton ? opt_baton->version : FALSE, opt_baton ? opt_baton->quiet : FALSE, + /*###opt_state ? opt_state->verbose :*/ FALS= E, version_footer->data, header, svnsync_cmd_table, svnsync_options, NULL, NULL, pool)); Modified: subversion/trunk/subversion/svnversion/main.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnversion/ma= in.c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/subversion/svnversion/main.c (original) +++ subversion/trunk/subversion/svnversion/main.c Wed Aug 8 15:36:25 2012 @@ -37,8 +37,8 @@ static svn_error_t * version(svn_boolean_t quiet, apr_pool_t *pool) { - return svn_opt_print_help3(NULL, "svnversion", TRUE, quiet, NULL, NULL, - NULL, NULL, NULL, NULL, pool); + return svn_opt_print_help4(NULL, "svnversion", TRUE, quiet, FALSE, + NULL, NULL, NULL, NULL, NULL, NULL, pool); } =20 static void Modified: subversion/trunk/tools/dev/svnraisetreeconflict/main.c URL: http://svn.apache.org/viewvc/subversion/trunk/tools/dev/svnraisetreeco= nflict/main.c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/tools/dev/svnraisetreeconflict/main.c (original) +++ subversion/trunk/tools/dev/svnraisetreeconflict/main.c Wed Aug 8 15:36= :25 2012 @@ -67,8 +67,8 @@ static svn_error_t * version(apr_pool_t *pool) { - return svn_opt_print_help3(NULL, "svnraisetreeconflict", TRUE, FALSE, NU= LL, - NULL, NULL, NULL, NULL, NULL, pool); + return svn_opt_print_help4(NULL, "svnraisetreeconflict", TRUE, FALSE, FA= LSE, + NULL, NULL, NULL, NULL, NULL, NULL, pool); } =20 static void Modified: subversion/trunk/tools/server-side/svn-rep-sharing-stats.c URL: http://svn.apache.org/viewvc/subversion/trunk/tools/server-side/svn-re= p-sharing-stats.c?rev=3D1370813&r1=3D1370812&r2=3D1370813&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- subversion/trunk/tools/server-side/svn-rep-sharing-stats.c (original) +++ subversion/trunk/tools/server-side/svn-rep-sharing-stats.c Wed Aug 8 1= 5:36:25 2012 @@ -42,8 +42,8 @@ static svn_error_t * version(apr_pool_t *pool) { - return svn_opt_print_help3(NULL, "svn-rep-sharing-stats", TRUE, FALSE, N= ULL, - NULL, NULL, NULL, NULL, NULL, pool); + return svn_opt_print_help4(NULL, "svn-rep-sharing-stats", TRUE, FALSE, F= ALSE, + NULL, NULL, NULL, NULL, NULL, NULL, pool); } =20 static void
