comparison 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
comparison
equal deleted inserted replaced
17669:89ab05784a7e 17670:1be29c149103
5724 */ 5724 */
5725 static void 5725 static void
5726 f_win_execute(typval_T *argvars, typval_T *rettv) 5726 f_win_execute(typval_T *argvars, typval_T *rettv)
5727 { 5727 {
5728 int id = (int)tv_get_number(argvars); 5728 int id = (int)tv_get_number(argvars);
5729 win_T *wp = win_id2wp(id); 5729 tabpage_T *tp;
5730 win_T *wp = win_id2wp_tp(id, &tp);
5730 win_T *save_curwin; 5731 win_T *save_curwin;
5731 tabpage_T *save_curtab; 5732 tabpage_T *save_curtab;
5732 5733
5733 if (wp != NULL) 5734 if (wp != NULL && tp != NULL)
5734 { 5735 {
5735 if (switch_win_noblock(&save_curwin, &save_curtab, wp, curtab, TRUE) 5736 if (switch_win_noblock(&save_curwin, &save_curtab, wp, tp, TRUE) == OK)
5736 == OK)
5737 { 5737 {
5738 check_cursor(); 5738 check_cursor();
5739 execute_common(argvars, rettv, 1); 5739 execute_common(argvars, rettv, 1);
5740 } 5740 }
5741 restore_win_noblock(save_curwin, save_curtab, TRUE); 5741 restore_win_noblock(save_curwin, save_curtab, TRUE);