mingw: make argv2 in try_shell_exec() non-const

Prepare for a stricter type check in COPY_ARRAY by removing the const qualifier of argv2, like we already do to placate Visual Studio. We have to add it back using explicit casts when actually using the variable, unfortunately, because GCC (rightly) refuses to add it implicitly. Similar casts are already used in mingw_execv(). Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

René Scharfe committed Jan 8, 2023 at 11:10 UTC 09884f352eb36cf2579d819595e9b7e1656a28b6
1 file changed +2 -5
compat/mingw.c
+2 -5
@@ -1839,16 +1839,13 @@ static int try_shell_exec(const char *cmd, char *const *argv)
1839 if (prog) {
1840 int exec_id;
1841 int argc = 0;
1842 -#ifndef _MSC_VER
1843 - const
1844 -#endif
1842 char **argv2;
1843 while (argv[argc]) argc++;
1844 ALLOC_ARRAY(argv2, argc + 1);
1845 argv2[0] = (char *)cmd; /* full path to the script file */
1846 COPY_ARRAY(&argv2[1], &argv[1], argc);
1850 - exec_id = trace2_exec(prog, argv2);
1851 - pid = mingw_spawnv(prog, argv2, 1);
1847 + exec_id = trace2_exec(prog, (const char **)argv2);
1848 + pid = mingw_spawnv(prog, (const char **)argv2, 1);
1849 if (pid >= 0) {
1850 int status;
1851 if (waitpid(pid, &status, 0) < 0)