comparison src/evalfunc.c @ 14966:d65790af8514 v8.1.0494

patch 8.1.0494: functions do not check for a window ID in other tabs commit https://github.com/vim/vim/commit/babfcf54ae9bf9570eddf4958a553635cd589e21 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Oct 25 13:11:16 2018 +0200 patch 8.1.0494: functions do not check for a window ID in other tabs Problem: Functions do not check for a window ID in other tabs. Solution: Also find the window ID in other than the current tab.
author Bram Moolenaar <Bram@vim.org>
date Thu, 25 Oct 2018 13:15:05 +0200
parents 2c0bfa167468
children c338c91086b9
comparison
equal deleted inserted replaced
14965:0d072760c182 14966:d65790af8514
5289 f_getloclist(typval_T *argvars UNUSED, typval_T *rettv UNUSED) 5289 f_getloclist(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
5290 { 5290 {
5291 #ifdef FEAT_QUICKFIX 5291 #ifdef FEAT_QUICKFIX
5292 win_T *wp; 5292 win_T *wp;
5293 5293
5294 wp = find_win_by_nr(&argvars[0], NULL); 5294 wp = find_win_by_nr_or_id(&argvars[0]);
5295 get_qf_loc_list(FALSE, wp, &argvars[1], rettv); 5295 get_qf_loc_list(FALSE, wp, &argvars[1], rettv);
5296 #endif 5296 #endif
5297 } 5297 }
5298 5298
5299 /* 5299 /*
5794 win_T *wp; 5794 win_T *wp;
5795 5795
5796 if (rettv_list_alloc(rettv) == FAIL) 5796 if (rettv_list_alloc(rettv) == FAIL)
5797 return; 5797 return;
5798 5798
5799 wp = find_win_by_nr(&argvars[0], NULL); 5799 wp = find_win_by_nr_or_id(&argvars[0]);
5800 list_append_number(rettv->vval.v_list, wp == NULL ? 0 : wp->w_winrow + 1); 5800 list_append_number(rettv->vval.v_list, wp == NULL ? 0 : wp->w_winrow + 1);
5801 list_append_number(rettv->vval.v_list, wp == NULL ? 0 : wp->w_wincol + 1); 5801 list_append_number(rettv->vval.v_list, wp == NULL ? 0 : wp->w_wincol + 1);
5802 } 5802 }
5803 5803
5804 /* 5804 /*
8026 *conceal_char = get_dict_string(tv->vval.v_dict, 8026 *conceal_char = get_dict_string(tv->vval.v_dict,
8027 (char_u *)"conceal", FALSE); 8027 (char_u *)"conceal", FALSE);
8028 8028
8029 if ((di = dict_find(tv->vval.v_dict, (char_u *)"window", -1)) != NULL) 8029 if ((di = dict_find(tv->vval.v_dict, (char_u *)"window", -1)) != NULL)
8030 { 8030 {
8031 *win = find_win_by_nr(&di->di_tv, NULL); 8031 *win = find_win_by_nr_or_id(&di->di_tv);
8032 if (*win == NULL) 8032 if (*win == NULL)
8033 { 8033 {
8034 EMSG(_("E957: Invalid window number")); 8034 EMSG(_("E957: Invalid window number"));
8035 return FAIL; 8035 return FAIL;
8036 } 8036 }
10783 { 10783 {
10784 win_T *win; 10784 win_T *win;
10785 10785
10786 rettv->vval.v_number = -1; 10786 rettv->vval.v_number = -1;
10787 10787
10788 win = find_win_by_nr(&argvars[0], NULL); 10788 win = find_win_by_nr_or_id(&argvars[0]);
10789 if (win != NULL) 10789 if (win != NULL)
10790 set_qf_ll_list(win, &argvars[1], &argvars[2], &argvars[3], rettv); 10790 set_qf_ll_list(win, &argvars[1], &argvars[2], &argvars[3], rettv);
10791 } 10791 }
10792 10792
10793 /* 10793 /*
13841 static void 13841 static void
13842 f_winbufnr(typval_T *argvars, typval_T *rettv) 13842 f_winbufnr(typval_T *argvars, typval_T *rettv)
13843 { 13843 {
13844 win_T *wp; 13844 win_T *wp;
13845 13845
13846 wp = find_win_by_nr(&argvars[0], NULL); 13846 wp = find_win_by_nr_or_id(&argvars[0]);
13847 if (wp == NULL) 13847 if (wp == NULL)
13848 rettv->vval.v_number = -1; 13848 rettv->vval.v_number = -1;
13849 else 13849 else
13850 rettv->vval.v_number = wp->w_buffer->b_fnum; 13850 rettv->vval.v_number = wp->w_buffer->b_fnum;
13851 } 13851 }
13866 static void 13866 static void
13867 f_winheight(typval_T *argvars, typval_T *rettv) 13867 f_winheight(typval_T *argvars, typval_T *rettv)
13868 { 13868 {
13869 win_T *wp; 13869 win_T *wp;
13870 13870
13871 wp = find_win_by_nr(&argvars[0], NULL); 13871 wp = find_win_by_nr_or_id(&argvars[0]);
13872 if (wp == NULL) 13872 if (wp == NULL)
13873 rettv->vval.v_number = -1; 13873 rettv->vval.v_number = -1;
13874 else 13874 else
13875 rettv->vval.v_number = wp->w_height; 13875 rettv->vval.v_number = wp->w_height;
13876 } 13876 }
14033 static void 14033 static void
14034 f_winwidth(typval_T *argvars, typval_T *rettv) 14034 f_winwidth(typval_T *argvars, typval_T *rettv)
14035 { 14035 {
14036 win_T *wp; 14036 win_T *wp;
14037 14037
14038 wp = find_win_by_nr(&argvars[0], NULL); 14038 wp = find_win_by_nr_or_id(&argvars[0]);
14039 if (wp == NULL) 14039 if (wp == NULL)
14040 rettv->vval.v_number = -1; 14040 rettv->vval.v_number = -1;
14041 else 14041 else
14042 rettv->vval.v_number = wp->w_width; 14042 rettv->vval.v_number = wp->w_width;
14043 } 14043 }