diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-10-25 12:32:11 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-10-25 12:32:11 +0200 |
commit | e6e3989c1b3f18907a0c305712b867e9a3821369 (patch) | |
tree | 4809dda0c07ac5d06047b9c474d6507cf1fa68b0 /src/eval.c | |
parent | bf9679ae4684cb0c4e6ef2c24da0f83955d53e57 (diff) |
patch 8.1.0493: argv() and argc() only work on the current argument listv8.1.0493
Problem: argv() and argc() only work on the current argument list.
Solution: Add a window ID argument. (Yegappan Lakshmanan, closes #832)
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/eval.c b/src/eval.c index 7c462fb6a2..e70bfd8ab3 100644 --- a/src/eval.c +++ b/src/eval.c @@ -8193,9 +8193,7 @@ find_win_by_nr( tabpage_T *tp) /* NULL for current tab page */ { win_T *wp; - int nr; - - nr = (int)get_tv_number_chk(vp, NULL); + int nr = (int)get_tv_number_chk(vp, NULL); if (nr < 0) return NULL; @@ -8218,6 +8216,20 @@ find_win_by_nr( } /* + * Find a window: When using a Window ID in any tab page, when using a number + * in the current tab page. + */ + win_T * +find_win_by_nr_or_id(typval_T *vp) +{ + int nr = (int)get_tv_number_chk(vp, NULL); + + if (nr >= LOWEST_WIN_ID) + return win_id2wp(vp); + return find_win_by_nr(vp, NULL); +} + +/* * Find window specified by "wvp" in tabpage "tvp". */ win_T * |