diff src/evalfunc.c @ 17670:1be29c149103 v8.1.1832

patch 8.1.1832: win_execute() does not work in other tab commit https://github.com/vim/vim/commit/820680b9ff1de8699156c7b060f97e5c0b87ad15 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Aug 9 14:56:22 2019 +0200 patch 8.1.1832: win_execute() does not work in other tab Problem: Win_execute() does not work in other tab. (Rick Howe) Solution: Take care of the tab. (closes https://github.com/vim/vim/issues/4792)
author Bram Moolenaar <Bram@vim.org>
date Fri, 09 Aug 2019 15:00:05 +0200
parents 9efb4dda9720
children d63b44015f4d
line wrap: on
line diff
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5726,14 +5726,14 @@ f_getwininfo(typval_T *argvars, typval_T
 f_win_execute(typval_T *argvars, typval_T *rettv)
 {
     int		id = (int)tv_get_number(argvars);
-    win_T	*wp = win_id2wp(id);
+    tabpage_T	*tp;
+    win_T	*wp = win_id2wp_tp(id, &tp);
     win_T	*save_curwin;
     tabpage_T	*save_curtab;
 
-    if (wp != NULL)
-    {
-	if (switch_win_noblock(&save_curwin, &save_curtab, wp, curtab, TRUE)
-									 == OK)
+    if (wp != NULL && tp != NULL)
+    {
+	if (switch_win_noblock(&save_curwin, &save_curtab, wp, tp, TRUE) == OK)
 	{
 	    check_cursor();
 	    execute_common(argvars, rettv, 1);