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)