diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2014-09-22 13:38:58 -0400 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2014-09-22 13:38:58 -0400 |
commit | 1c84a0e09093d728408024a6baa9967df596be54 (patch) | |
tree | 3038828072136affc9de36257ac49ba069ede25b /src/nvim/eval.c | |
parent | a4b9e0df67ae95777f8f7d833e7d4c6b8fc3840c (diff) | |
parent | 22bd722c011b04a5fff3182c370c877d82e0fbe0 (diff) | |
download | rneovim-1c84a0e09093d728408024a6baa9967df596be54.tar.gz rneovim-1c84a0e09093d728408024a6baa9967df596be54.tar.bz2 rneovim-1c84a0e09093d728408024a6baa9967df596be54.zip |
Merge pull request #1108 from war1025/dev/for_all_tabs
FOR_ALL_TAB_WINDOWS cleanup. Add FOR_ALL_TABS and FOR_ALL_WINDOWS_IN_TAB.
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 0dd261f53a..28f16d0e92 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -5403,11 +5403,9 @@ 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; - tabpage_T *tp; /* Only do this once. */ want_garbage_collect = FALSE; @@ -5442,14 +5440,16 @@ int garbage_collect(void) } /* window-local variables */ - 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); /* tabpage-local variables */ - for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) + FOR_ALL_TABS(tp) { set_ref_in_item(&tp->tp_winvar.di_tv, copyID); + } /* global variables */ set_ref_in_ht(&globvarht, copyID); @@ -9588,21 +9588,27 @@ find_win_by_nr ( tabpage_T *tp /* NULL for current tab page */ ) { - win_T *wp; - int nr; - - nr = get_tv_number_chk(vp, NULL); + int 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; } /* |