0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

patch 8.1.1295: when vimrun.exe does not exist external command may fail

Problem:    When vimrun.exe does not exist external command may fail.
Solution:   Use "cmd /c" twice to get the same behavior. (Ken Takata,
            closes #4355)
This commit is contained in:
Bram Moolenaar
2019-05-07 23:01:39 +02:00
parent 93d77b2cbe
commit 98ffe4c6d8
2 changed files with 18 additions and 3 deletions

View File

@@ -4827,11 +4827,14 @@ mch_call_shell(
} }
else else
{ {
cmdlen = ( cmdlen =
#ifdef FEAT_GUI_MSWIN #ifdef FEAT_GUI_MSWIN
(gui.in_use ? (!p_stmp ? 0 : STRLEN(vimrun_path)) : 0) + (gui.in_use ?
(!s_dont_use_vimrun && p_stmp ?
STRLEN(vimrun_path) : STRLEN(p_sh) + STRLEN(p_shcf))
: 0) +
#endif #endif
STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10); STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10;
newcmd = lalloc(cmdlen, TRUE); newcmd = lalloc(cmdlen, TRUE);
if (newcmd != NULL) if (newcmd != NULL)
@@ -4869,9 +4872,19 @@ mch_call_shell(
? "-s " : "", ? "-s " : "",
p_sh, p_shcf, cmd); p_sh, p_shcf, cmd);
else else
# ifdef VIMDLL
if (gui.in_use)
# endif
vim_snprintf((char *)newcmd, cmdlen, "%s %s %s %s %s",
p_sh, p_shcf, p_sh, p_shcf, cmd);
# ifdef VIMDLL
else
# endif
#endif #endif
#if !defined(FEAT_GUI_MSWIN) || defined(VIMDLL)
vim_snprintf((char *)newcmd, cmdlen, "%s %s %s", vim_snprintf((char *)newcmd, cmdlen, "%s %s %s",
p_sh, p_shcf, cmd); p_sh, p_shcf, cmd);
#endif
x = mch_system((char *)newcmd, options); x = mch_system((char *)newcmd, options);
vim_free(newcmd); vim_free(newcmd);
} }

View File

@@ -767,6 +767,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1295,
/**/ /**/
1294, 1294,
/**/ /**/