aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_docmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/ex_docmd.c')
-rw-r--r--src/nvim/ex_docmd.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 41cc7d70f7..ba0e8295bf 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -5851,7 +5851,7 @@ static void ex_quit_all(exarg_T *eap)
*/
static void ex_close(exarg_T *eap)
{
- win_T *win;
+ win_T *win = NULL;
int winnr = 0;
if (cmdwin_type != 0)
cmdwin_result = Ctrl_C;
@@ -5859,10 +5859,12 @@ static void ex_close(exarg_T *eap)
if (eap->addr_count == 0)
ex_win_close(eap->forceit, curwin, NULL);
else {
- for (win = firstwin; win != NULL; win = win->w_next) {
+ FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {
winnr++;
- if (winnr == eap->line2)
+ if (winnr == eap->line2) {
+ win = wp;
break;
+ }
}
if (win == NULL)
win = lastwin;
@@ -6074,12 +6076,14 @@ static void ex_hide(exarg_T *eap)
win_close(curwin, FALSE); /* don't free buffer */
else {
int winnr = 0;
- win_T *win;
+ win_T *win = NULL;
- for (win = firstwin; win != NULL; win = win->w_next) {
+ FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {
winnr++;
- if (winnr == eap->line2)
+ if (winnr == eap->line2) {
+ win = wp;
break;
+ }
}
if (win == NULL)
win = lastwin;
@@ -6846,7 +6850,8 @@ static void ex_syncbind(exarg_T *eap)
/*
* Set all scrollbind windows to the same topline.
*/
- for (curwin = firstwin; curwin; curwin = curwin->w_next) {
+ FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {
+ curwin = wp;
if (curwin->w_p_scb) {
curbuf = curwin->w_buffer;
y = topline - curwin->w_topline;