aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorWayne Rowcliffe <war1025@gmail.com>2014-08-23 12:03:14 -0500
committerWayne Rowcliffe <war1025@gmail.com>2014-09-22 09:31:09 -0500
commit683bc797a0d427d818f69dd4772e149cf94e6b12 (patch)
tree8bc73873f033b5a37696168c0ddc165869822770 /src/nvim/eval.c
parentb4ec6c1a4bacd6eaef958e242310ffaee94805dd (diff)
downloadrneovim-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.c36
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;
}
/*