aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-09-22 13:38:58 -0400
committerJustin M. Keyes <justinkz@gmail.com>2014-09-22 13:38:58 -0400
commit1c84a0e09093d728408024a6baa9967df596be54 (patch)
tree3038828072136affc9de36257ac49ba069ede25b /src/nvim/eval.c
parenta4b9e0df67ae95777f8f7d833e7d4c6b8fc3840c (diff)
parent22bd722c011b04a5fff3182c370c877d82e0fbe0 (diff)
downloadrneovim-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.c38
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;
}
/*