Mercurial > vim
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); |