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)
diff --git a/src/evalwindow.c b/src/evalwindow.c
index 08bdb95..6df14c5 100644
--- a/src/evalwindow.c
+++ b/src/evalwindow.c
@@ -50,22 +50,6 @@
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 @@
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;
+ }
}
/*