Mercurial > vim
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 } |