diff options
author | Wayne Rowcliffe <war1025@gmail.com> | 2014-08-23 12:03:14 -0500 |
---|---|---|
committer | Wayne Rowcliffe <war1025@gmail.com> | 2014-09-22 09:31:09 -0500 |
commit | 683bc797a0d427d818f69dd4772e149cf94e6b12 (patch) | |
tree | 8bc73873f033b5a37696168c0ddc165869822770 /src/nvim/eval.c | |
parent | b4ec6c1a4bacd6eaef958e242310ffaee94805dd (diff) | |
download | rneovim-683bc797a0d427d818f69dd4772e149cf94e6b12.tar.gz rneovim-683bc797a0d427d818f69dd4772e149cf94e6b12.tar.bz2 rneovim-683bc797a0d427d818f69dd4772e149cf94e6b12.zip |
FOR_ALL_WINDOWS_IN_TAB and local variables in FOR_ALL_TAB_WINDOWS
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 413edc9271..28f16d0e92 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -5403,7 +5403,6 @@ static int list_join(garray_T *gap, list_T *l, char_u *sep, int echo_style, int int garbage_collect(void) { int copyID; - win_T *wp; funccall_T *fc, **pfc; int did_free; int did_free_funccal = FALSE; @@ -5441,11 +5440,8 @@ int garbage_collect(void) } /* window-local variables */ - { - tabpage_T *tp; - FOR_ALL_TAB_WINDOWS(tp, wp) { - set_ref_in_item(&wp->w_winvar.di_tv, copyID); - } + FOR_ALL_TAB_WINDOWS(tp, wp) { + set_ref_in_item(&wp->w_winvar.di_tv, copyID); } if (aucmd_win != NULL) set_ref_in_item(&aucmd_win->w_winvar.di_tv, copyID); @@ -9592,21 +9588,27 @@ find_win_by_nr ( tabpage_T *tp /* NULL for current tab page */ ) { - win_T *wp; - int nr; + int nr = get_tv_number_chk(vp, NULL); - nr = get_tv_number_chk(vp, NULL); - - if (nr < 0) + if (nr < 0) { return NULL; - if (nr == 0) + } + + if (nr == 0) { return curwin; + } - for (wp = (tp == NULL || tp == curtab) ? firstwin : tp->tp_firstwin; - wp != NULL; wp = wp->w_next) - if (--nr <= 0) - break; - return wp; + // This method accepts NULL as an alias for curtab. + if (tp == NULL) { + tp = curtab; + } + + FOR_ALL_WINDOWS_IN_TAB(wp, tp) { + if (--nr <= 0) { + return wp; + } + } + return NULL; } /* |