mirror of
https://github.com/vim/vim.git
synced 2025-10-01 04:54:07 -04:00
patch 8.1.1492: MS-Windows: when "!" is in 'guioptions' ":!start" fails
Problem: MS-Windows: when "!" is in 'guioptions' ":!start" fails. Solution: Do not use a terminal window when the shell command begins with "!start". (Yasuhiro Matsumoto, closes #4504)
This commit is contained in:
@@ -3251,7 +3251,11 @@ call_shell(char_u *cmd, int opt)
|
||||
/* The external command may update a tags file, clear cached tags. */
|
||||
tag_freematch();
|
||||
|
||||
if (cmd == NULL || *p_sxq == NUL)
|
||||
if (cmd == NULL || *p_sxq == NUL
|
||||
#if defined(FEAT_GUI_MSWIN) && defined(FEAT_TERMINAL)
|
||||
|| vim_strchr(p_go, GO_TERMINAL) != NULL
|
||||
#endif
|
||||
)
|
||||
retval = mch_call_shell(cmd, opt);
|
||||
else
|
||||
{
|
||||
|
@@ -4640,7 +4640,7 @@ mch_call_shell(
|
||||
}
|
||||
#endif
|
||||
#if defined(FEAT_GUI) && defined(FEAT_TERMINAL)
|
||||
/* TODO: make the terminal window work with input or output redirected. */
|
||||
// TODO: make the terminal window work with input or output redirected.
|
||||
if (
|
||||
# ifdef VIMDLL
|
||||
gui.in_use &&
|
||||
@@ -4648,13 +4648,23 @@ mch_call_shell(
|
||||
vim_strchr(p_go, GO_TERMINAL) != NULL
|
||||
&& (options & (SHELL_FILTER|SHELL_DOOUT|SHELL_WRITE|SHELL_READ)) == 0)
|
||||
{
|
||||
/* Use a terminal window to run the command in. */
|
||||
char_u *cmdbase = cmd;
|
||||
|
||||
// Skip a leading quote and (.
|
||||
while (*cmdbase == '"' || *cmdbase == '(')
|
||||
++cmdbase;
|
||||
|
||||
// Check the command does not begin with "start "
|
||||
if (STRNICMP(cmdbase, "start", 5) != 0 || !VIM_ISWHITE(cmdbase[5]))
|
||||
{
|
||||
// Use a terminal window to run the command in.
|
||||
x = mch_call_shell_terminal(cmd, options);
|
||||
# ifdef FEAT_TITLE
|
||||
resettitle();
|
||||
# endif
|
||||
return x;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@@ -767,6 +767,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1492,
|
||||
/**/
|
||||
1491,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user