Author: stsp
Date: Tue Oct  8 09:10:08 2024
New Revision: 1921180

URL: http://svn.apache.org/viewvc?rev=1921180&view=rev
Log:
tagging Subversion 1.14.4

Equivalent to 1.14.x@1920901 with the patch for CVE-2024-45720 applied.

Added:
    subversion/tags/1.14.4/   (props changed)
      - copied from r1920901, subversion/branches/1.14.x/
Modified:
    subversion/tags/1.14.4/CHANGES
    subversion/tags/1.14.4/build.conf
    subversion/tags/1.14.4/subversion/include/private/svn_cmdline_private.h
    subversion/tags/1.14.4/subversion/libsvn_subr/cmdline.c
    subversion/tags/1.14.4/subversion/svn/svn.c
    subversion/tags/1.14.4/subversion/svnadmin/svnadmin.c
    subversion/tags/1.14.4/subversion/svnbench/svnbench.c
    subversion/tags/1.14.4/subversion/svndumpfilter/svndumpfilter.c
    subversion/tags/1.14.4/subversion/svnfsfs/svnfsfs.c
    subversion/tags/1.14.4/subversion/svnlook/svnlook.c
    subversion/tags/1.14.4/subversion/svnmucc/svnmucc.c
    subversion/tags/1.14.4/subversion/svnrdump/svnrdump.c
    subversion/tags/1.14.4/subversion/svnserve/svnserve.c
    subversion/tags/1.14.4/subversion/svnsync/svnsync.c
    subversion/tags/1.14.4/subversion/svnversion/svnversion.c
    
subversion/tags/1.14.4/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c
    subversion/tags/1.14.4/tools/client-side/svnconflict/svnconflict.c
    subversion/tags/1.14.4/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c
    subversion/tags/1.14.4/tools/dev/wc-ng/svn-wc-db-tester.c
    subversion/tags/1.14.4/tools/server-side/svnauthz.c

Propchange: subversion/tags/1.14.4/
------------------------------------------------------------------------------
--- svn:auto-props (added)
+++ svn:auto-props Tue Oct  8 09:10:08 2024
@@ -0,0 +1,13 @@
+*.c = svn:eol-style=native
+*.cpp = svn:eol-style=native
+*.h = svn:eol-style=native
+*.hpp = svn:eol-style=native
+*.java = svn:eol-style=native
+*.py = svn:eol-style=native
+*.pl = svn:eol-style=native
+*.rb = svn:eol-style=native
+*.sql = svn:eol-style=native
+*.txt = svn:eol-style=native
+README = svn:eol-style=native
+BRANCH-README = svn:eol-style=native
+STATUS = svn:eol-style=native

Propchange: subversion/tags/1.14.4/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Oct  8 09:10:08 2024
@@ -0,0 +1,59 @@
+ChangeLog*
+Makefile
+config.cache
+config.log
+config.nice
+config.status
+configure
+libtool
+.gdb_history
+.swig_checked
+*.orig
+*.rej
+TAGS
+tags
+neon
+build-outputs.mk
+aclocal.m4
+autogen-standalone.mk
+autom4te.cache
+gen-make.opts
+tests.log*
+fails.log*
+db4-win32
+db
+*.o
+*~
+.*~
+apr
+apr-util
+apr-iconv
+Release
+Debug
+ipch
+subversion_msvc.dsw
+subversion_msvc.ncb
+subversion_msvc.opt
+subversion_msvc.plg
+subversion_vcnet.*
+mkmf.log
+.project
+.classpath
+.cdtproject
+.settings
+.cproject
+py3c
+zlib
+sqlite-amalgamation
+serf
+googlemock
+.git
+.gitignore
+.idea
+compile_commands.json
+.kdev4
+*.kdev4
+.vs
+.swig_pl_checked
+.swig_py_checked
+.swig_rb_checked

Propchange: subversion/tags/1.14.4/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Tue Oct  8 09:10:08 2024
@@ -0,0 +1,115 @@
+/subversion/branches/1.10-cache-improvements:1669168-1694487
+/subversion/branches/1.11.x:1841316,1841548
+/subversion/branches/1.14.x-r1880374-fsfs:1880459-1880915
+/subversion/branches/1.14.x-r1881534-no-crlf:1885959-1899431
+/subversion/branches/1.14.x-r1894491:1899400-1899435
+/subversion/branches/1.14.x-r1899227:1899228-1899373
+/subversion/branches/1.14.x-r1903267:1903268-1905329
+/subversion/branches/1.5.x-r30215:870312
+/subversion/branches/1.7.x-fs-verify:1146708,1161180
+/subversion/branches/1.9-cache-improvements:1678948-1679863
+/subversion/branches/1.9.x:1735680
+/subversion/branches/10Gb:1388102,1388163-1388190,1388195,1388202,1388205,1388211,1388276,1388362,1388375,1388394,1388636,1388639-1388640,1388643-1388644,1388654,1388720,1388789,1388795,1388801,1388805,1388807,1388810,1388816,1389044,1389276,1389289,1389662,1389867,1390017,1390209,1390216,1390407,1390409,1390414,1390419,1390955
+/subversion/branches/atomic-revprop:965046-1000689
+/subversion/branches/authzperf:1613053-1776831
+/subversion/branches/auto-props-sdc:1384106-1401643
+/subversion/branches/bdb-reverse-deltas:872050-872529
+/subversion/branches/cache-server:1458643-1476567
+/subversion/branches/decouple-shelving-cli:1874630-1875035
+/subversion/branches/diff-callbacks3:870059-870761
+/subversion/branches/diff-optimizations:1031270-1037352
+/subversion/branches/diff-optimizations-bytes:1037353-1067789
+/subversion/branches/dont-save-plaintext-passwords-by-default:870728-871118
+/subversion/branches/double-delete:870511-872970
+/subversion/branches/dump-load-cross-check:1654853-1657295
+/subversion/branches/ev2-export:1325914,1332738,1413107
+/subversion/branches/explore-wc:875486,875493,875497,875507,875511,875514,875559,875580-875581,875584,875587,875611,875627,875647,875667-875668,875711-875712,875733-875734,875736,875744-875748,875751,875758,875782,875795-875796,875830,875836,875838,875842,875852,875855,875864,875870,875873,875880,875885-875888,875890,875897-875898,875905,875907-875909,875935,875943-875944,875946,875979,875982-875983,875985-875986,875990,875997
+/subversion/branches/file-externals:871779-873302
+/subversion/branches/fs-rep-sharing:869036-873803
+/subversion/branches/fsfs-format7:1426304,1430673,1433848,1438408,1438982,1441129,1442051,1442068,1442504,1442910,1443171,1443803,1444690,1444693,1444695,1445040,1445080,1446103,1451129,1453590,1454307,1460579,1461851,1461865,1462837,1462904,1463120,1467362,1467382,1469487,1471208,1477166,1478055,1481447,1489817,1489949,1490673-1490674,1491784,1493042,1498029,1498103,1498155,1500054,1507729-1507731,1507735-1507736
+/subversion/branches/fsfs-improvements:1499981-1547039
+/subversion/branches/fsfs-lock-many:1571740-1577217
+/subversion/branches/fsfs-pack:873717-874575
+/subversion/branches/fsx:1507845-1509914
+/subversion/branches/fsx-1.10:1658219-1694500
+/subversion/branches/fsx-id:1645603-1649011
+/subversion/branches/gnome-keyring:870558-871410
+/subversion/branches/gpg-agent-password-store:1005036-1150766
+/subversion/branches/gtest_addition:1452117-1502138
+/subversion/branches/http-protocol-v2:874395-876041
+/subversion/branches/in-memory-cache:869829-871452
+/subversion/branches/in-repo-authz:1414342-1424779
+/subversion/branches/inheritable-props:1297080-1395089
+/subversion/branches/integrate-cache-item-serialization:1068724-1068739
+/subversion/branches/integrate-cache-membuffer:998649-998852
+/subversion/branches/integrate-compression-level:1068651-1072287
+/subversion/branches/integrate-io-improvements:1068684-1072297
+/subversion/branches/integrate-is-cachable:1072568-1074082
+/subversion/branches/integrate-partial-getter:1072558-1076552
+/subversion/branches/integrate-readline-speedup:1072553-1072555
+/subversion/branches/integrate-stream-api-extensions:1068695-1072516
+/subversion/branches/integrate-string-improvements:1068251-1190617
+/subversion/branches/integrate-txdelta-caching:1072541-1078213
+/subversion/branches/issue-2779-dev:965496-984198
+/subversion/branches/issue-2843-dev:871432-874179
+/subversion/branches/issue-3000:871713,871716-871719,871721-871726,871728,871734
+/subversion/branches/issue-3067-deleted-subtrees:873375-874084
+/subversion/branches/issue-3148-dev:875193-875204
+/subversion/branches/issue-3220-dev:872210-872226
+/subversion/branches/issue-3242-dev:879653-896436
+/subversion/branches/issue-3334-dirs:875156-875867
+/subversion/branches/issue-3975:1152931-1160746
+/subversion/branches/issue-4116-dev:1424719-1425040
+/subversion/branches/issue-4194-dev:1410507-1414880
+/subversion/branches/issue-4869:1885862-1885981
+/subversion/branches/issue-4908:1903812-1904192
+/subversion/branches/java10-compat:1840620-1841179
+/subversion/branches/javahl-1.14-fixes:1882126-1886028
+/subversion/branches/javahl-ra:991978-1494640
+/subversion/branches/kwallet:870785-871314
+/subversion/branches/log-addressing:1509279-1546844
+/subversion/branches/log-g-performance:870941-871032
+/subversion/branches/merge-skips-obstructions:874525-874615
+/subversion/branches/move-tracking-2:1606692-1714632
+/subversion/branches/multi-layer-moves:1239019-1300930
+/subversion/branches/nfc-nfd-aware-client:870276,870376
+/subversion/branches/node_pool:1304828-1305388
+/subversion/branches/patch-exec:1692717-1705390
+/subversion/branches/performance:979193,980118,981087,981090,981189,981194,981287,981684,981827,982043,982355,983398,983406,983430,983474,983488,983490,983760,983764,983766,983770,984927,984973,984984,985014,985037,985046,985472,985477,985482,985487-985488,985493,985497,985500,985514,985601,985603,985606,985669,985673,985695,985697,986453,986465,986485,986491-986492,986517,986521,986605,986608,986817,986832,987865,987868-987869,987872,987886-987888,987893,988319,988898,990330,990533,990535-990537,990541,990568,990572,990574-990575,990600,990759,992899,992904,992911,993127,993141,994956,995478,995507,995603,998012,998858,999098,1001413,1001417,1004291,1022668,1022670,1022676,1022715,1022719,1025660,1025672,1027193,1027203,1027206,1027214,1027227,1028077,1028092,1028094,1028104,1028107,1028111,1028354,1029038,1029042-1029043,1029054-1029055,1029062-1029063,1029078,1029080,1029090,1029092-1029093,1029111,1029151,1029158,1029229-1029230,1029232,1029335-1029336,1029339-1029340,1029342,10
 
29344,1030763,1030827,1031203,1031235,1032285,1032333,1033040,1033057,1033294,1035869,1035882,1039511,1043705,1053735,1056015,1066452,1067683,1067697-1078365
+/subversion/branches/pin-externals:1643757-1659392
+/subversion/branches/py-tests-as-modules:956579-1033052
+/subversion/branches/ra-svn-tuning:1658201-1694489
+/subversion/branches/ra_serf-digest-authn:875693-876404
+/subversion/branches/reintegrate-improvements:873853-874164
+/subversion/branches/remote-only-status:1581845-1586090
+/subversion/branches/resolve-incoming-add:1762797-1764284
+/subversion/branches/revprop-cache:1298521-1326293
+/subversion/branches/revprop-caching-ng:1620597,1620599
+/subversion/branches/revprop-packing:1143907,1143971,1143997,1144017,1144499,1144568,1146145
+/subversion/branches/shelve:1802592-1815226
+/subversion/branches/shelve-checkpoint:1801593-1801923,1801970,1817320,1828508,1828521
+/subversion/branches/shelving-v3:1853394-1853901
+/subversion/branches/subtree-mergeinfo:876734-878766
+/subversion/branches/svn-auth-x509:1603509-1655900
+/subversion/branches/svn-info-detail:1660035-1662618
+/subversion/branches/svn-mergeinfo-enhancements:870119-870195,870197-870288
+/subversion/branches/svn-mergeinfo-normalizer:1642232-1695991
+/subversion/branches/svn-patch-improvements:918519-934609
+/subversion/branches/svn_mutex:1141683-1182099
+/subversion/branches/svnpatch-diff:865738-876477
+/subversion/branches/svnraisetc:874709-875149
+/subversion/branches/svnserve-logging:869828-870893
+/subversion/branches/swig-py3:1813660-1869353
+/subversion/branches/tc-issue-3334:874697-874773
+/subversion/branches/tc-merge-notify:874017-874062
+/subversion/branches/tc-resolve:874191-874239
+/subversion/branches/tc_url_rev:874351-874483
+/subversion/branches/tree-conflicts:868291-873154
+/subversion/branches/tree-conflicts-notify:873926-874008
+/subversion/branches/tristate-chunked-request:1502394-1502681
+/subversion/branches/tweak-build-take-two:1424288-1425049,1425051-1425613
+/subversion/branches/uris-as-urls:1060426-1064427
+/subversion/branches/verify-at-commit:1462039-1462408
+/subversion/branches/verify-keep-going:1439280-1546110
+/subversion/branches/wc-collate-path:1402685-1480384
+/subversion/trunk:1875675,1875680,1875726,1875742,1875762,1875918,1875921,1875925,1875973,1876010,1876016,1876020,1876050,1876054,1876068,1876410,1876662,1876707,1876734,1876906,1877072,1877259,1877310,1877318,1877338,1877712,1877788,1877794,1877960,1878141-1878144,1878379,1878413,1878855,1878859,1878909,1878918,1878950,1878997,1879192,1879198,1879474,1879959,1880192,1880886,1881534,1881958,1881985,1882105,1882115,1882128,1882157,1882234,1882326,1883335,1883337,1883355,1883570,1883719,1883722,1883838,1883989,1884427,1884474,1884610,1884642,1885112,1885199,1885557,1885600,1885656,1885784-1885785,1885795,1885953,1885983,1886019,1886029,1886460,1886582,1886708,1887641,1887704,1887710,1889487,1889629,1890013,1890231,1891908,1892121,1892470-1892471,1892541,1894491,1894734,1896609,1896877,1897449,1898633,1899227,1899487,1900882,1900890,1903245,1903267,1904167,1904193,1904198,1904287,1904472,1904936,1904938,1906502,1907124,1908926,1910098,1910464,1911278,1912500-1912503,1912515,1912517,191
 
2632,1912691,1912724,1912743,1914220,1914222,1914250,1914518,1915236,1915239,1915316,1917864,1917944,1917946,1918138-1918139,1920880

Modified: subversion/tags/1.14.4/CHANGES
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/CHANGES?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/CHANGES (original)
+++ subversion/tags/1.14.4/CHANGES Tue Oct  8 09:10:08 2024
@@ -9,6 +9,7 @@ Version 1.14.4
 https://svn.apache.org/repos/asf/subversion/tags/1.14.4
  User-visible changes:
   - Client-side improvements and bugfixes:
+    * Fix CVE-2024-45720: command line argument injection on Windows
     * Fix unbounded memory usage in propget and proplist --xml (r1918138, -39)
     * Fix cmdline parsing bugs in --change (-c) argument (r1917864, -944)
     * Improve help message for svnmucc PUT (r1914222)

Modified: subversion/tags/1.14.4/build.conf
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/build.conf?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/build.conf (original)
+++ subversion/tags/1.14.4/build.conf Tue Oct  8 09:10:08 2024
@@ -153,7 +153,7 @@ libs = libsvn_client libsvn_wc libsvn_ra
        apriconv apr
 manpages = subversion/svn/svn.1
 install = bin
-msvc-libs = setargv.obj
+msvc-libs = wsetargv.obj
 
 # The subversion repository administration tool
 [svnadmin]
@@ -163,7 +163,7 @@ path = subversion/svnadmin
 install = bin
 manpages = subversion/svnadmin/svnadmin.1
 libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr
-msvc-libs = setargv.obj
+msvc-libs = wsetargv.obj
 
 # The subversion repository dump filtering tool
 [svndumpfilter]

Modified: 
subversion/tags/1.14.4/subversion/include/private/svn_cmdline_private.h
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/include/private/svn_cmdline_private.h?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/include/private/svn_cmdline_private.h 
(original)
+++ subversion/tags/1.14.4/subversion/include/private/svn_cmdline_private.h Tue 
Oct  8 09:10:08 2024
@@ -278,6 +278,34 @@ svn_cmdline__stdin_readline(const char *
                             apr_pool_t *result_pool,
                             apr_pool_t *scratch_pool);
 
+#if defined(WIN32)
+/* Normalizes Windows-specific command line arguments, such as those passed
+   to wmain(), to the environment-specific code page. */
+svn_error_t *
+svn_cmdline__win32_get_cstring_argv(const char **cstring_argv_p[],
+                                    int argc,
+                                    const wchar_t *argv[],
+                                    apr_pool_t *result_pool);
+#endif
+
+/* Default platform-agnostic handler that normalizes command line arguments
+   to the environment-specific code page. */
+svn_error_t *
+svn_cmdline__default_get_cstring_argv(const char **cstring_argv_p[],
+                                      int argc,
+                                      const char *argv[],
+                                      apr_pool_t *result_pool);
+
+#if defined(WIN32) && defined(_MSC_VER)
+typedef wchar_t svn_cmdline__argv_char_t;
+#define SVN_CMDLINE__MAIN wmain
+#define svn_cmdline__get_cstring_argv svn_cmdline__win32_get_cstring_argv
+#else
+typedef char svn_cmdline__argv_char_t;
+#define SVN_CMDLINE__MAIN main
+#define svn_cmdline__get_cstring_argv svn_cmdline__default_get_cstring_argv
+#endif
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/tags/1.14.4/subversion/libsvn_subr/cmdline.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/libsvn_subr/cmdline.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/libsvn_subr/cmdline.c (original)
+++ subversion/tags/1.14.4/subversion/libsvn_subr/cmdline.c Tue Oct  8 09:10:08 
2024
@@ -1898,3 +1898,60 @@ svn_cmdline__cancellation_exit(void)
 #endif
     }
 }
+
+#if defined(WIN32)
+
+svn_error_t *
+svn_cmdline__win32_get_cstring_argv(const char **cstring_argv_p[],
+                                    int argc,
+                                    const wchar_t *argv[],
+                                    apr_pool_t *result_pool)
+{
+  apr_array_header_t *cstring_argv;
+  int i;
+
+  cstring_argv = apr_array_make(result_pool, argc + 1, sizeof(const char *));
+
+  for (i = 0; i < argc; i++)
+    {
+      const wchar_t *arg = argv[i];
+      char *cstring_arg;
+      int rv;
+
+      /* Passing -1 for the string length guarantees that the returned length
+         will account for a terminating null character. */
+      rv = WideCharToMultiByte(CP_ACP, 0, arg, -1, NULL, 0, NULL, NULL);
+      if (rv <= 0)
+        {
+          return svn_error_wrap_apr(apr_get_os_error(),
+                                    _("Conversion from UTF-16 failed"));
+        }
+
+      cstring_arg = apr_palloc(result_pool, rv);
+      rv = WideCharToMultiByte(CP_ACP, 0, arg, -1, cstring_arg, rv, NULL, 
NULL);
+      if (rv <= 0)
+        {
+          return svn_error_wrap_apr(apr_get_os_error(),
+                                    _("Conversion from UTF-16 failed"));
+        }
+
+      APR_ARRAY_PUSH(cstring_argv, const char *) = cstring_arg;
+    }
+
+  APR_ARRAY_PUSH(cstring_argv, const char *) = NULL;
+
+  *cstring_argv_p = (const char **)cstring_argv->elts;
+  return SVN_NO_ERROR;
+}
+
+#endif
+
+svn_error_t *
+svn_cmdline__default_get_cstring_argv(const char **cstring_argv_p[],
+                                      int argc,
+                                      const char *argv[],
+                                      apr_pool_t *result_pool)
+{
+  *cstring_argv_p = argv;
+  return SVN_NO_ERROR;
+}

Modified: subversion/tags/1.14.4/subversion/svn/svn.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/svn/svn.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/svn/svn.c (original)
+++ subversion/tags/1.14.4/subversion/svn/svn.c Tue Oct  8 09:10:08 2024
@@ -2019,7 +2019,10 @@ add_commands(const svn_opt_subcommand_de
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   svn_error_t *err;
   int opt_id;
@@ -2045,12 +2048,15 @@ sub_main(int *exit_code, int argc, const
   apr_hash_t *cfg_hash;
   svn_membuf_t buf;
   svn_boolean_t read_pass_from_stdin = FALSE;
+  const char **argv;
 
   received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int));
 
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
 #if defined(WIN32) || defined(__CYGWIN__)
   /* Set the working copy administrative directory name. */
   if (getenv("SVN_ASP_DOT_NET_HACK"))
@@ -3324,7 +3330,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/subversion/svnadmin/svnadmin.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/svnadmin/svnadmin.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/svnadmin/svnadmin.c (original)
+++ subversion/tags/1.14.4/subversion/svnadmin/svnadmin.c Tue Oct  8 09:10:08 
2024
@@ -3053,7 +3053,10 @@ subcommand_build_repcache(apr_getopt_t *
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   svn_error_t *err;
   apr_status_t apr_err;
@@ -3065,12 +3068,15 @@ sub_main(int *exit_code, int argc, const
   apr_array_header_t *received_opts;
   int i;
   svn_boolean_t dash_F_arg = FALSE;
+  const char **argv;
 
   received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int));
 
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
   /* Initialize the FS library. */
   SVN_ERR(svn_fs_initialize(pool));
 
@@ -3450,7 +3456,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/subversion/svnbench/svnbench.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/svnbench/svnbench.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/svnbench/svnbench.c (original)
+++ subversion/tags/1.14.4/subversion/svnbench/svnbench.c Tue Oct  8 09:10:08 
2024
@@ -386,7 +386,10 @@ add_search_pattern_group(svn_cl__opt_sta
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   svn_error_t *err;
   int opt_id;
@@ -405,6 +408,7 @@ sub_main(int *exit_code, int argc, const
   ra_progress_baton_t ra_progress_baton = {0};
   svn_membuf_t buf;
   svn_boolean_t read_pass_from_stdin = FALSE;
+  const char **argv;
 
   received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int));
 
@@ -414,6 +418,8 @@ sub_main(int *exit_code, int argc, const
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
 #if defined(WIN32) || defined(__CYGWIN__)
   /* Set the working copy administrative directory name. */
   if (getenv("SVN_ASP_DOT_NET_HACK"))
@@ -1039,7 +1045,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/subversion/svndumpfilter/svndumpfilter.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/svndumpfilter/svndumpfilter.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/svndumpfilter/svndumpfilter.c (original)
+++ subversion/tags/1.14.4/subversion/svndumpfilter/svndumpfilter.c Tue Oct  8 
09:10:08 2024
@@ -1291,7 +1291,10 @@ subcommand_include(apr_getopt_t *os, voi
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   svn_error_t *err;
   apr_status_t apr_err;
@@ -1302,10 +1305,13 @@ sub_main(int *exit_code, int argc, const
   int opt_id;
   apr_array_header_t *received_opts;
   int i;
+  const char **argv;
 
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
   received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int));
 
   /* Initialize the FS library. */
@@ -1564,7 +1570,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/subversion/svnfsfs/svnfsfs.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/svnfsfs/svnfsfs.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/svnfsfs/svnfsfs.c (original)
+++ subversion/tags/1.14.4/subversion/svnfsfs/svnfsfs.c Tue Oct  8 09:10:08 2024
@@ -228,7 +228,10 @@ subcommand__help(apr_getopt_t *os, void
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   svn_error_t *err;
   apr_status_t apr_err;
@@ -239,12 +242,15 @@ sub_main(int *exit_code, int argc, const
   int opt_id;
   apr_array_header_t *received_opts;
   int i;
+  const char **argv;
 
   received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int));
 
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
   /* Initialize the FS library. */
   SVN_ERR(svn_fs_initialize(pool));
 
@@ -473,7 +479,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/subversion/svnlook/svnlook.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/svnlook/svnlook.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/svnlook/svnlook.c (original)
+++ subversion/tags/1.14.4/subversion/svnlook/svnlook.c Tue Oct  8 09:10:08 2024
@@ -2466,7 +2466,10 @@ subcommand_uuid(apr_getopt_t *os, void *
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   svn_error_t *err;
   apr_status_t apr_err;
@@ -2477,12 +2480,15 @@ sub_main(int *exit_code, int argc, const
   int opt_id;
   apr_array_header_t *received_opts;
   int i;
+  const char **argv;
 
   received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int));
 
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
   /* Initialize the FS library. */
   SVN_ERR(svn_fs_initialize(pool));
 
@@ -2849,7 +2855,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/subversion/svnmucc/svnmucc.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/svnmucc/svnmucc.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/svnmucc/svnmucc.c (original)
+++ subversion/tags/1.14.4/subversion/svnmucc/svnmucc.c Tue Oct  8 09:10:08 2024
@@ -467,7 +467,10 @@ log_message_func(const char **log_msg,
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   apr_array_header_t *actions = apr_array_make(pool, 1,
                                                sizeof(struct action *));
@@ -533,10 +536,13 @@ sub_main(int *exit_code, int argc, const
   struct log_message_baton lmb;
   int i;
   svn_boolean_t read_pass_from_stdin = FALSE;
+  const char **argv;
 
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
   /* Initialize the RA library. */
   SVN_ERR(svn_ra_initialize(pool));
 
@@ -980,7 +986,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/subversion/svnrdump/svnrdump.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/svnrdump/svnrdump.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/svnrdump/svnrdump.c (original)
+++ subversion/tags/1.14.4/subversion/svnrdump/svnrdump.c Tue Oct  8 09:10:08 
2024
@@ -784,7 +784,10 @@ validate_and_resolve_revisions(opt_baton
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   svn_error_t *err = SVN_NO_ERROR;
   const svn_opt_subcommand_desc3_t *subcommand = NULL;
@@ -806,6 +809,9 @@ sub_main(int *exit_code, int argc, const
   apr_array_header_t *received_opts;
   int i;
   svn_boolean_t read_pass_from_stdin = FALSE;
+  const char **argv;
+
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
 
   opt_baton = apr_pcalloc(pool, sizeof(*opt_baton));
   opt_baton->start_revision.kind = svn_opt_revision_unspecified;
@@ -1155,7 +1161,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/subversion/svnserve/svnserve.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/svnserve/svnserve.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/svnserve/svnserve.c (original)
+++ subversion/tags/1.14.4/subversion/svnserve/svnserve.c Tue Oct  8 09:10:08 
2024
@@ -703,7 +703,10 @@ check_lib_versions(void)
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   enum run_mode run_mode = run_mode_unspecified;
   svn_boolean_t foreground = FALSE;
@@ -742,6 +745,8 @@ sub_main(int *exit_code, int argc, const
   svn_node_kind_t kind;
   apr_size_t min_thread_count = THREADPOOL_MIN_SIZE;
   apr_size_t max_thread_count = THREADPOOL_MAX_SIZE;
+  const char **argv;
+
 #ifdef SVN_HAVE_SASL
   SVN_ERR(cyrus_init(pool));
 #endif
@@ -749,6 +754,8 @@ sub_main(int *exit_code, int argc, const
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
   /* Initialize the FS library. */
   SVN_ERR(svn_fs_initialize(pool));
 
@@ -1395,7 +1402,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/subversion/svnsync/svnsync.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/svnsync/svnsync.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/svnsync/svnsync.c (original)
+++ subversion/tags/1.14.4/subversion/svnsync/svnsync.c Tue Oct  8 09:10:08 2024
@@ -1963,7 +1963,10 @@ help_cmd(apr_getopt_t *os, void *baton,
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   const svn_opt_subcommand_desc3_t *subcommand = NULL;
   apr_array_header_t *received_opts;
@@ -1978,10 +1981,13 @@ sub_main(int *exit_code, int argc, const
   apr_array_header_t *config_options = NULL;
   const char *source_prop_encoding = NULL;
   svn_boolean_t force_interactive = FALSE;
+  const char **argv;
 
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
   SVN_ERR(svn_ra_initialize(pool));
 
   /* Initialize the option baton. */
@@ -2402,7 +2408,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/subversion/svnversion/svnversion.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/subversion/svnversion/svnversion.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/subversion/svnversion/svnversion.c (original)
+++ subversion/tags/1.14.4/subversion/svnversion/svnversion.c Tue Oct  8 
09:10:08 2024
@@ -124,7 +124,10 @@ check_lib_versions(void)
  * program.  Obviously we don't want to have to run svn when building svn.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   const char *wc_path, *trail_url;
   const char *local_abspath;
@@ -146,10 +149,13 @@ sub_main(int *exit_code, int argc, const
        N_("no progress (only errors) to stderr")},
       {0,             0,  0,  0}
     };
+  const char **argv;
 
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
 #if defined(WIN32) || defined(__CYGWIN__)
   /* Set the working copy administrative directory name. */
   if (getenv("SVN_ASP_DOT_NET_HACK"))
@@ -289,7 +295,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: 
subversion/tags/1.14.4/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- 
subversion/tags/1.14.4/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c
 (original)
+++ 
subversion/tags/1.14.4/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c
 Tue Oct  8 09:10:08 2024
@@ -408,7 +408,10 @@ svn_min__check_cancel(void *baton)
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   svn_error_t *err;
   int opt_id;
@@ -425,12 +428,15 @@ sub_main(int *exit_code, int argc, const
   svn_boolean_t force_interactive = FALSE;
   apr_hash_t *cfg_hash;
   svn_boolean_t read_pass_from_stdin = FALSE;
+  const char **argv;
 
   received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int));
 
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
 #if defined(WIN32) || defined(__CYGWIN__)
   /* Set the working copy administrative directory name. */
   if (getenv("SVN_ASP_DOT_NET_HACK"))
@@ -946,7 +952,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/tools/client-side/svnconflict/svnconflict.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/tools/client-side/svnconflict/svnconflict.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/tools/client-side/svnconflict/svnconflict.c 
(original)
+++ subversion/tags/1.14.4/tools/client-side/svnconflict/svnconflict.c Tue Oct  
8 09:10:08 2024
@@ -632,7 +632,10 @@ svnconflict_resolve_tree(apr_getopt_t *o
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   svn_error_t *err;
   int opt_id;
@@ -647,12 +650,15 @@ sub_main(int *exit_code, int argc, const
   svn_config_t *cfg_config;
   apr_hash_t *cfg_hash;
   svn_boolean_t read_pass_from_stdin = FALSE;
+  const char **argv;
 
   received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int));
 
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
 #if defined(WIN32) || defined(__CYGWIN__)
   /* Set the working copy administrative directory name. */
   if (getenv("SVN_ASP_DOT_NET_HACK"))
@@ -949,7 +955,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: 
subversion/tags/1.14.4/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- 
subversion/tags/1.14.4/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c 
(original)
+++ 
subversion/tags/1.14.4/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c 
Tue Oct  8 09:10:08 2024
@@ -302,7 +302,10 @@ check_lib_versions(void)
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   apr_getopt_t *os;
   const apr_getopt_option_t options[] =
@@ -313,10 +316,13 @@ sub_main(int *exit_code, int argc, const
       {0,             0,  0,  0}
     };
   apr_array_header_t *remaining_argv;
+  const char **argv;
 
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
 #if defined(WIN32) || defined(__CYGWIN__)
   /* Set the working copy administrative directory name. */
   if (getenv("SVN_ASP_DOT_NET_HACK"))
@@ -383,7 +389,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/tools/dev/wc-ng/svn-wc-db-tester.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/tools/dev/wc-ng/svn-wc-db-tester.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/tools/dev/wc-ng/svn-wc-db-tester.c (original)
+++ subversion/tags/1.14.4/tools/dev/wc-ng/svn-wc-db-tester.c Tue Oct  8 
09:10:08 2024
@@ -156,7 +156,10 @@ check_lib_versions(void)
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   apr_getopt_t *os;
   const apr_getopt_option_t options[] =
@@ -167,10 +170,13 @@ sub_main(int *exit_code, int argc, const
       {0,             0,  0,  0}
     };
   apr_array_header_t *remaining_argv;
+  const char **argv;
 
   /* Check library versions */
   SVN_ERR(check_lib_versions());
 
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
+
 #if defined(WIN32) || defined(__CYGWIN__)
   /* Set the working copy administrative directory name. */
   if (getenv("SVN_ASP_DOT_NET_HACK"))
@@ -237,7 +243,7 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;

Modified: subversion/tags/1.14.4/tools/server-side/svnauthz.c
URL: 
http://svn.apache.org/viewvc/subversion/tags/1.14.4/tools/server-side/svnauthz.c?rev=1921180&r1=1920901&r2=1921180&view=diff
==============================================================================
--- subversion/tags/1.14.4/tools/server-side/svnauthz.c (original)
+++ subversion/tags/1.14.4/tools/server-side/svnauthz.c Tue Oct  8 09:10:08 2024
@@ -490,7 +490,10 @@ canonicalize_access_file(const char **ca
  * return SVN_NO_ERROR.
  */
 static svn_error_t *
-sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
+sub_main(int *exit_code,
+         int argc,
+         const svn_cmdline__argv_char_t *cmdline_argv[],
+         apr_pool_t *pool)
 {
   svn_error_t *err;
 
@@ -499,6 +502,9 @@ sub_main(int *exit_code, int argc, const
   apr_getopt_t *os;
   apr_array_header_t *received_opts;
   int i;
+  const char **argv;
+
+  SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool));
 
   /* Initialize the FS library. */
   SVN_ERR(svn_fs_initialize(pool));
@@ -752,14 +758,14 @@ sub_main(int *exit_code, int argc, const
 }
 
 int
-main(int argc, const char *argv[])
+SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[])
 {
   apr_pool_t *pool;
   int exit_code = EXIT_SUCCESS;
   svn_error_t *err;
 
   /* Initialize the app.  Send all error messages to 'stderr'.  */
-  if (svn_cmdline_init(argv[0], stderr) != EXIT_SUCCESS)
+  if (svn_cmdline_init("svnauthz", stderr) != EXIT_SUCCESS)
     return EXIT_FAILURE;
 
   pool = svn_pool_create(NULL);



Reply via email to