mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.2.3167: get E12 in a job callback when searching for tags
Problem: Get E12 in a job callback when searching for tags. (Andy Stewart) Solution: Use the sandbox only for executing a command, not for searching. (closes #8511)
This commit is contained in:
parent
b5841b99e6
commit
547f94f330
24
src/tag.c
24
src/tag.c
@ -3312,7 +3312,6 @@ jumpto_tag(
|
|||||||
int forceit, // :ta with !
|
int forceit, // :ta with !
|
||||||
int keep_help) // keep help flag (FALSE for cscope)
|
int keep_help) // keep help flag (FALSE for cscope)
|
||||||
{
|
{
|
||||||
int save_secure;
|
|
||||||
optmagic_T save_magic_overruled;
|
optmagic_T save_magic_overruled;
|
||||||
int save_p_ws, save_p_scs, save_p_ic;
|
int save_p_ws, save_p_scs, save_p_ic;
|
||||||
linenr_T save_lnum;
|
linenr_T save_lnum;
|
||||||
@ -3500,11 +3499,6 @@ jumpto_tag(
|
|||||||
curwin->w_set_curswant = TRUE;
|
curwin->w_set_curswant = TRUE;
|
||||||
postponed_split = 0;
|
postponed_split = 0;
|
||||||
|
|
||||||
save_secure = secure;
|
|
||||||
secure = 1;
|
|
||||||
#ifdef HAVE_SANDBOX
|
|
||||||
++sandbox;
|
|
||||||
#endif
|
|
||||||
save_magic_overruled = magic_overruled;
|
save_magic_overruled = magic_overruled;
|
||||||
magic_overruled = OPTION_MAGIC_OFF; // always execute with 'nomagic'
|
magic_overruled = OPTION_MAGIC_OFF; // always execute with 'nomagic'
|
||||||
#ifdef FEAT_SEARCH_EXTRA
|
#ifdef FEAT_SEARCH_EXTRA
|
||||||
@ -3621,22 +3615,28 @@ jumpto_tag(
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
int save_secure = secure;
|
||||||
|
|
||||||
|
// Setup the sandbox for executing the command from the tags file.
|
||||||
|
secure = 1;
|
||||||
|
#ifdef HAVE_SANDBOX
|
||||||
|
++sandbox;
|
||||||
|
#endif
|
||||||
curwin->w_cursor.lnum = 1; // start command in line 1
|
curwin->w_cursor.lnum = 1; // start command in line 1
|
||||||
do_cmdline_cmd(pbuf);
|
do_cmdline_cmd(pbuf);
|
||||||
retval = OK;
|
retval = OK;
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
// When the command has done something that is not allowed make
|
||||||
* When the command has done something that is not allowed make sure
|
// sure the error message can be seen.
|
||||||
* the error message can be seen.
|
|
||||||
*/
|
|
||||||
if (secure == 2)
|
if (secure == 2)
|
||||||
wait_return(TRUE);
|
wait_return(TRUE);
|
||||||
secure = save_secure;
|
secure = save_secure;
|
||||||
magic_overruled = save_magic_overruled;
|
|
||||||
#ifdef HAVE_SANDBOX
|
#ifdef HAVE_SANDBOX
|
||||||
--sandbox;
|
--sandbox;
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
magic_overruled = save_magic_overruled;
|
||||||
#ifdef FEAT_SEARCH_EXTRA
|
#ifdef FEAT_SEARCH_EXTRA
|
||||||
// restore no_hlsearch when keeping the old search pattern
|
// restore no_hlsearch when keeping the old search pattern
|
||||||
if (search_options)
|
if (search_options)
|
||||||
|
@ -755,6 +755,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 */
|
||||||
|
/**/
|
||||||
|
3167,
|
||||||
/**/
|
/**/
|
||||||
3166,
|
3166,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user