Mercurial > vim
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) |