forked from aniani/vim
patch 8.1.2037: can call win_gotoid() in cmdline window
Problem: Can call win_gotoid() in cmdline window. Solution: Disallow switching windows. (Yasuhiro Matsumoto, closes #4940)
This commit is contained in:
parent
1ac90b4fa6
commit
a046b37c22
@ -50,22 +50,6 @@ win_getid(typval_T *argvars)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
win_gotoid(typval_T *argvars)
|
||||
{
|
||||
win_T *wp;
|
||||
tabpage_T *tp;
|
||||
int id = tv_get_number(&argvars[0]);
|
||||
|
||||
FOR_ALL_TAB_WINDOWS(tp, wp)
|
||||
if (wp->w_id == id)
|
||||
{
|
||||
goto_tabpage_win(tp, wp);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
win_id2tabwin(typval_T *argvars, list_T *list)
|
||||
{
|
||||
@ -705,7 +689,24 @@ f_win_getid(typval_T *argvars, typval_T *rettv)
|
||||
void
|
||||
f_win_gotoid(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
rettv->vval.v_number = win_gotoid(argvars);
|
||||
win_T *wp;
|
||||
tabpage_T *tp;
|
||||
int id = tv_get_number(&argvars[0]);
|
||||
|
||||
#ifdef FEAT_CMDWIN
|
||||
if (cmdwin_type != 0)
|
||||
{
|
||||
emsg(_(e_cmdwin));
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
FOR_ALL_TAB_WINDOWS(tp, wp)
|
||||
if (wp->w_id == id)
|
||||
{
|
||||
goto_tabpage_win(tp, wp);
|
||||
rettv->vval.v_number = 1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -734,3 +734,13 @@ func Test_cmdline_overstrike()
|
||||
|
||||
let &encoding = encoding_save
|
||||
endfunc
|
||||
|
||||
func Test_cmdwin_bug()
|
||||
let winid = win_getid()
|
||||
sp
|
||||
try
|
||||
call feedkeys("q::call win_gotoid(" .. winid .. ")\<CR>:q\<CR>", 'x!')
|
||||
catch /^Vim\%((\a\+)\)\=:E11/
|
||||
endtry
|
||||
bw!
|
||||
endfunc
|
||||
|
@ -757,6 +757,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2037,
|
||||
/**/
|
||||
2036,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user