comparison src/eval.c @ 9649:fd9727ae3c49 v7.4.2101

commit https://github.com/vim/vim/commit/2932359000b2f918d5fade79ea4d124d5943cd07 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 24 22:04:11 2016 +0200 patch 7.4.2101 Problem: Looping over windows, buffers and tab pages is inconsistant. Solution: Use FOR_ALL_ macros everywhere. (Yegappan Lakshmanan)
author Christian Brabandt <cb@256bit.org>
date Sun, 24 Jul 2016 22:15:07 +0200
parents ccbb8e393d80
children 8c2553beff0f
comparison
equal deleted inserted replaced
9648:227649fd4301 9649:fd9727ae3c49
5251 /* script-local variables */ 5251 /* script-local variables */
5252 for (i = 1; i <= ga_scripts.ga_len; ++i) 5252 for (i = 1; i <= ga_scripts.ga_len; ++i)
5253 abort = abort || set_ref_in_ht(&SCRIPT_VARS(i), copyID, NULL); 5253 abort = abort || set_ref_in_ht(&SCRIPT_VARS(i), copyID, NULL);
5254 5254
5255 /* buffer-local variables */ 5255 /* buffer-local variables */
5256 for (buf = firstbuf; buf != NULL; buf = buf->b_next) 5256 FOR_ALL_BUFFERS(buf)
5257 abort = abort || set_ref_in_item(&buf->b_bufvar.di_tv, copyID, 5257 abort = abort || set_ref_in_item(&buf->b_bufvar.di_tv, copyID,
5258 NULL, NULL); 5258 NULL, NULL);
5259 5259
5260 /* window-local variables */ 5260 /* window-local variables */
5261 FOR_ALL_TAB_WINDOWS(tp, wp) 5261 FOR_ALL_TAB_WINDOWS(tp, wp)
5267 NULL, NULL); 5267 NULL, NULL);
5268 #endif 5268 #endif
5269 5269
5270 #ifdef FEAT_WINDOWS 5270 #ifdef FEAT_WINDOWS
5271 /* tabpage-local variables */ 5271 /* tabpage-local variables */
5272 for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) 5272 FOR_ALL_TABPAGES(tp)
5273 abort = abort || set_ref_in_item(&tp->tp_winvar.di_tv, copyID, 5273 abort = abort || set_ref_in_item(&tp->tp_winvar.di_tv, copyID,
5274 NULL, NULL); 5274 NULL, NULL);
5275 #endif 5275 #endif
5276 5276
5277 /* global variables */ 5277 /* global variables */
8301 if (nr < 0) 8301 if (nr < 0)
8302 return NULL; 8302 return NULL;
8303 if (nr == 0) 8303 if (nr == 0)
8304 return curwin; 8304 return curwin;
8305 8305
8306 for (wp = (tp == NULL || tp == curtab) ? firstwin : tp->tp_firstwin; 8306 FOR_ALL_WINDOWS_IN_TAB(tp, wp)
8307 wp != NULL; wp = wp->w_next) 8307 {
8308 if (nr >= LOWEST_WIN_ID) 8308 if (nr >= LOWEST_WIN_ID)
8309 { 8309 {
8310 if (wp->w_id == nr) 8310 if (wp->w_id == nr)
8311 return wp; 8311 return wp;
8312 } 8312 }
8313 else if (--nr <= 0) 8313 else if (--nr <= 0)
8314 break; 8314 break;
8315 }
8315 if (nr >= LOWEST_WIN_ID) 8316 if (nr >= LOWEST_WIN_ID)
8316 return NULL; 8317 return NULL;
8317 return wp; 8318 return wp;
8318 #else 8319 #else
8319 if (nr == 0 || nr == 1 || nr == curwin->w_id) 8320 if (nr == 0 || nr == 1 || nr == curwin->w_id)