mirror of
https://github.com/neovim/neovim.git
synced 2025-09-13 23:08:16 +00:00
Additional FOR_ALL_WINDOWS usage
This commit is contained in:
@@ -1763,13 +1763,16 @@ buflist_findpat (
|
||||
if (curtab_only) {
|
||||
/* Ignore the match if the buffer is not open in
|
||||
* the current tab. */
|
||||
win_T *wp;
|
||||
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
if (wp->w_buffer == buf)
|
||||
bool found_window = false;
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_buffer == buf) {
|
||||
found_window = true;
|
||||
break;
|
||||
if (wp == NULL)
|
||||
}
|
||||
}
|
||||
if (!found_window) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (match >= 0) { /* already found a match */
|
||||
match = -2;
|
||||
@@ -2020,22 +2023,22 @@ static void buflist_setfpos(buf_T *buf, win_T *win, linenr_T lnum, colnr_T col,
|
||||
|
||||
|
||||
/*
|
||||
* Return TRUE when "wip" has 'diff' set and the diff is only for another tab
|
||||
* Return true when "wip" has 'diff' set and the diff is only for another tab
|
||||
* page. That's because a diff is local to a tab page.
|
||||
*/
|
||||
static int wininfo_other_tab_diff(wininfo_T *wip)
|
||||
static bool wininfo_other_tab_diff(wininfo_T *wip)
|
||||
{
|
||||
win_T *wp;
|
||||
|
||||
if (wip->wi_opt.wo_diff) {
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
/* return FALSE when it's a window in the current tab page, thus
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
/* return false when it's a window in the current tab page, thus
|
||||
* the buffer was in diff mode here */
|
||||
if (wip->wi_win == wp)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
if (wip->wi_win == wp) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3601,7 +3604,6 @@ do_arg_all (
|
||||
)
|
||||
{
|
||||
int i;
|
||||
win_T *wp, *wpnext;
|
||||
char_u *opened; /* Array of weight for which args are open:
|
||||
* 0: not opened
|
||||
* 1: opened in other tab
|
||||
@@ -3651,8 +3653,9 @@ do_arg_all (
|
||||
if (had_tab > 0)
|
||||
goto_tabpage_tp(first_tabpage, TRUE, TRUE);
|
||||
for (;; ) {
|
||||
win_T *wpnext = NULL;
|
||||
tpnext = curtab->tp_next;
|
||||
for (wp = firstwin; wp != NULL; wp = wpnext) {
|
||||
for (win_T *wp = firstwin; wp != NULL; wp = wpnext) {
|
||||
wpnext = wp->w_next;
|
||||
buf = wp->w_buffer;
|
||||
if (buf->b_ffname == NULL
|
||||
@@ -3762,13 +3765,14 @@ do_arg_all (
|
||||
if (opened[i] > 0) {
|
||||
/* Move the already present window to below the current window */
|
||||
if (curwin->w_arg_idx != i) {
|
||||
for (wpnext = firstwin; wpnext != NULL; wpnext = wpnext->w_next) {
|
||||
if (wpnext->w_arg_idx == i) {
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_arg_idx == i) {
|
||||
if (keep_tabs) {
|
||||
new_curwin = wpnext;
|
||||
new_curwin = wp;
|
||||
new_curtab = curtab;
|
||||
} else
|
||||
win_move_after(wpnext, curwin);
|
||||
} else {
|
||||
win_move_after(wp, curwin);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -87,14 +87,14 @@ void diff_buf_adjust(win_T *win)
|
||||
if (!win->w_p_diff) {
|
||||
// When there is no window showing a diff for this buffer, remove
|
||||
// it from the diffs.
|
||||
win_T *wp;
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next) {
|
||||
bool found_win = false;
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if ((wp->w_buffer == win->w_buffer) && wp->w_p_diff) {
|
||||
break;
|
||||
found_win = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (wp == NULL) {
|
||||
if (!found_win) {
|
||||
int i = diff_buf_idx(win->w_buffer);
|
||||
if (i != DB_COUNT) {
|
||||
curtab->tp_diffbuf[i] = NULL;
|
||||
@@ -581,8 +581,7 @@ static int diff_check_sanity(tabpage_T *tp, diff_T *dp)
|
||||
/// @param dofold Also recompute the folds
|
||||
static void diff_redraw(int dofold)
|
||||
{
|
||||
win_T *wp;
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next) {
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_p_diff) {
|
||||
redraw_win_later(wp, SOME_VALID);
|
||||
if (dofold && foldmethodIsDiff(wp)) {
|
||||
@@ -1111,8 +1110,7 @@ void ex_diffoff(exarg_T *eap)
|
||||
win_T *old_curwin = curwin;
|
||||
int diffwin = FALSE;
|
||||
|
||||
win_T *wp;
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next) {
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (eap->forceit ? wp->w_p_diff : (wp == curwin)) {
|
||||
// Set 'diff', 'scrollbind' off and 'wrap' on. If option values
|
||||
// were saved in diff_win_options() restore them.
|
||||
@@ -2364,10 +2362,8 @@ void ex_diffgetput(exarg_T *eap)
|
||||
/// @param skip_idx
|
||||
static void diff_fold_update(diff_T *dp, int skip_idx)
|
||||
{
|
||||
win_T *wp;
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next) {
|
||||
int i;
|
||||
for (i = 0; i < DB_COUNT; ++i) {
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
for (int i = 0; i < DB_COUNT; ++i) {
|
||||
if ((curtab->tp_diffbuf[i] == wp->w_buffer) && (i != skip_idx)) {
|
||||
foldUpdate(wp, dp->df_lnum[i], dp->df_lnum[i] + dp->df_count[i]);
|
||||
}
|
||||
|
@@ -7361,19 +7361,20 @@ static void f_bufnr(typval_T *argvars, typval_T *rettv)
|
||||
*/
|
||||
static void f_bufwinnr(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
win_T *wp;
|
||||
int winnr = 0;
|
||||
buf_T *buf;
|
||||
|
||||
(void)get_tv_number(&argvars[0]); /* issue errmsg if type error */
|
||||
++emsg_off;
|
||||
buf = get_buf_tv(&argvars[0], TRUE);
|
||||
for (wp = firstwin; wp; wp = wp->w_next) {
|
||||
|
||||
buf_T *buf = get_buf_tv(&argvars[0], TRUE);
|
||||
int winnr = 0;
|
||||
bool found_buf = false;
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
++winnr;
|
||||
if (wp->w_buffer == buf)
|
||||
if (wp->w_buffer == buf) {
|
||||
found_buf = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
rettv->vval.v_number = (wp != NULL ? winnr : -1);
|
||||
rettv->vval.v_number = (found_buf ? winnr : -1);
|
||||
--emsg_off;
|
||||
}
|
||||
|
||||
@@ -14750,13 +14751,12 @@ static void f_winnr(typval_T *argvars, typval_T *rettv)
|
||||
*/
|
||||
static void f_winrestcmd(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
win_T *wp;
|
||||
int winnr = 1;
|
||||
garray_T ga;
|
||||
char_u buf[50];
|
||||
|
||||
ga_init(&ga, (int)sizeof(char), 70);
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next) {
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
sprintf((char *)buf, "%dresize %d|", winnr, wp->w_height);
|
||||
ga_concat(&ga, buf);
|
||||
sprintf((char *)buf, "vert %dresize %d|", winnr, wp->w_width);
|
||||
|
@@ -4610,19 +4610,19 @@ prepare_tagpreview (
|
||||
bool undo_sync /* sync undo when leaving the window */
|
||||
)
|
||||
{
|
||||
win_T *wp;
|
||||
|
||||
|
||||
/*
|
||||
* If there is already a preview window open, use that one.
|
||||
*/
|
||||
if (!curwin->w_p_pvw) {
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
if (wp->w_p_pvw)
|
||||
bool found_win = false;
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_p_pvw) {
|
||||
win_enter(wp, undo_sync);
|
||||
found_win = true;
|
||||
break;
|
||||
if (wp != NULL)
|
||||
win_enter(wp, undo_sync);
|
||||
else {
|
||||
}
|
||||
}
|
||||
if (!found_win) {
|
||||
/*
|
||||
* There is no preview window open yet. Create one.
|
||||
*/
|
||||
|
@@ -1228,7 +1228,7 @@ check_changed_any (
|
||||
/* buf in other tab */
|
||||
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) {
|
||||
if (tp != curtab) {
|
||||
for (wint_T *wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next) {
|
||||
for (win_T *wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next) {
|
||||
add_bufnum(bufnrs, &bufnum, wp->w_buffer->b_fnum);
|
||||
}
|
||||
}
|
||||
@@ -1282,8 +1282,8 @@ check_changed_any (
|
||||
}
|
||||
|
||||
/* Try to find a window that contains the buffer. */
|
||||
if (buf != curbuf)
|
||||
wint_T *wp;
|
||||
if (buf != curbuf) {
|
||||
win_T *wp;
|
||||
FOR_ALL_TAB_WINDOWS(tp, wp) {
|
||||
if (wp->w_buffer == buf) {
|
||||
goto_tabpage_win(tp, wp);
|
||||
@@ -1294,6 +1294,7 @@ check_changed_any (
|
||||
goto buf_found;
|
||||
}
|
||||
}
|
||||
}
|
||||
buf_found:
|
||||
|
||||
/* Open the changed buffer in the current window. */
|
||||
|
@@ -5188,13 +5188,12 @@ static void ex_close(exarg_T *eap)
|
||||
*/
|
||||
static void ex_pclose(exarg_T *eap)
|
||||
{
|
||||
win_T *win;
|
||||
|
||||
for (win = firstwin; win != NULL; win = win->w_next)
|
||||
FOR_ALL_WINDOWS(win) {
|
||||
if (win->w_p_pvw) {
|
||||
ex_win_close(eap->forceit, win, NULL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -6119,7 +6118,6 @@ static void ex_swapname(exarg_T *eap)
|
||||
*/
|
||||
static void ex_syncbind(exarg_T *eap)
|
||||
{
|
||||
win_T *wp;
|
||||
win_T *save_curwin = curwin;
|
||||
buf_T *save_curbuf = curbuf;
|
||||
long topline;
|
||||
@@ -6133,15 +6131,17 @@ static void ex_syncbind(exarg_T *eap)
|
||||
*/
|
||||
if (curwin->w_p_scb) {
|
||||
topline = curwin->w_topline;
|
||||
for (wp = firstwin; wp; wp = wp->w_next) {
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_p_scb && wp->w_buffer) {
|
||||
y = wp->w_buffer->b_ml.ml_line_count - p_so;
|
||||
if (topline > y)
|
||||
if (topline > y) {
|
||||
topline = y;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (topline < 1)
|
||||
if (topline < 1) {
|
||||
topline = 1;
|
||||
}
|
||||
} else {
|
||||
topline = 1;
|
||||
}
|
||||
|
@@ -6177,12 +6177,17 @@ aucmd_prepbuf (
|
||||
int save_acd;
|
||||
|
||||
/* Find a window that is for the new buffer */
|
||||
if (buf == curbuf) /* be quick when buf is curbuf */
|
||||
if (buf == curbuf) { /* be quick when buf is curbuf */
|
||||
win = curwin;
|
||||
else
|
||||
for (win = firstwin; win != NULL; win = win->w_next)
|
||||
if (win->w_buffer == buf)
|
||||
} else {
|
||||
win = NULL;
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_buffer == buf) {
|
||||
win = wp;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Allocate "aucmd_win" when needed. If this fails (out of memory) fall
|
||||
* back to using the current window. */
|
||||
|
@@ -471,11 +471,10 @@ int main(int argc, char **argv)
|
||||
edit_buffers(¶ms);
|
||||
|
||||
if (params.diff_mode) {
|
||||
win_T *wp;
|
||||
|
||||
/* set options in each window for "vimdiff". */
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
diff_win_options(wp, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -1877,16 +1877,16 @@ void changed_bytes(linenr_T lnum, colnr_T col)
|
||||
|
||||
/* Diff highlighting in other diff windows may need to be updated too. */
|
||||
if (curwin->w_p_diff) {
|
||||
win_T *wp;
|
||||
linenr_T wlnum;
|
||||
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_p_diff && wp != curwin) {
|
||||
redraw_win_later(wp, VALID);
|
||||
wlnum = diff_lnum_win(lnum, wp);
|
||||
if (wlnum > 0)
|
||||
changedOneline(wp->w_buffer, wlnum);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1973,17 +1973,18 @@ changed_lines (
|
||||
/* When the number of lines doesn't change then mark_adjust() isn't
|
||||
* called and other diff buffers still need to be marked for
|
||||
* displaying. */
|
||||
win_T *wp;
|
||||
linenr_T wlnum;
|
||||
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_p_diff && wp != curwin) {
|
||||
redraw_win_later(wp, VALID);
|
||||
wlnum = diff_lnum_win(lnum, wp);
|
||||
if (wlnum > 0)
|
||||
if (wlnum > 0) {
|
||||
changed_lines_buf(wp->w_buffer, wlnum,
|
||||
lnume - lnum + wlnum, 0L);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
changed_common(lnum, col, lnume, xtra);
|
||||
@@ -2214,14 +2215,14 @@ unchanged (
|
||||
*/
|
||||
void check_status(buf_T *buf)
|
||||
{
|
||||
win_T *wp;
|
||||
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_buffer == buf && wp->w_status_height) {
|
||||
wp->w_redr_status = TRUE;
|
||||
if (must_redraw < VALID)
|
||||
if (must_redraw < VALID) {
|
||||
must_redraw = VALID;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -5075,9 +5075,7 @@ set_bool_option (
|
||||
/* There can be only one window with 'previewwindow' set. */
|
||||
else if ((int *)varp == &curwin->w_p_pvw) {
|
||||
if (curwin->w_p_pvw) {
|
||||
win_T *win;
|
||||
|
||||
for (win = firstwin; win != NULL; win = win->w_next) {
|
||||
FOR_ALL_WINDOWS(win) {
|
||||
if (win->w_p_pvw && win != curwin) {
|
||||
curwin->w_p_pvw = FALSE;
|
||||
return (char_u *)N_("E590: A preview window already exists");
|
||||
|
@@ -1379,14 +1379,16 @@ void qf_jump(qf_info_T *qi, int dir, int errornr, int forceit)
|
||||
* For ":helpgrep" find a help window or open one.
|
||||
*/
|
||||
if (qf_ptr->qf_type == 1 && (!curwin->w_buffer->b_help || cmdmod.tab != 0)) {
|
||||
win_T *wp;
|
||||
win_T *wp = NULL;
|
||||
|
||||
if (cmdmod.tab != 0)
|
||||
wp = NULL;
|
||||
else
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
if (wp->w_buffer != NULL && wp->w_buffer->b_help)
|
||||
if (cmdmod.tab == 0) {
|
||||
FOR_ALL_WINDOWS(wp2) {
|
||||
if (wp2->w_buffer != NULL && wp2->w_buffer->b_help) {
|
||||
wp = wp2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (wp != NULL && wp->w_buffer->b_nwindows > 0)
|
||||
win_enter(wp, true);
|
||||
else {
|
||||
|
@@ -4553,13 +4553,13 @@ void rl_mirror(char_u *str)
|
||||
*/
|
||||
void status_redraw_all(void)
|
||||
{
|
||||
win_T *wp;
|
||||
|
||||
for (wp = firstwin; wp; wp = wp->w_next)
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_status_height) {
|
||||
wp->w_redr_status = TRUE;
|
||||
redraw_later(VALID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -4567,13 +4567,12 @@ void status_redraw_all(void)
|
||||
*/
|
||||
void status_redraw_curbuf(void)
|
||||
{
|
||||
win_T *wp;
|
||||
|
||||
for (wp = firstwin; wp; wp = wp->w_next)
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_status_height != 0 && wp->w_buffer == curbuf) {
|
||||
wp->w_redr_status = TRUE;
|
||||
redraw_later(VALID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -4581,11 +4580,11 @@ void status_redraw_curbuf(void)
|
||||
*/
|
||||
void redraw_statuslines(void)
|
||||
{
|
||||
win_T *wp;
|
||||
|
||||
for (wp = firstwin; wp; wp = wp->w_next)
|
||||
if (wp->w_redr_status)
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_redr_status) {
|
||||
win_redr_status(wp);
|
||||
}
|
||||
}
|
||||
if (redraw_tabline)
|
||||
draw_tabline();
|
||||
}
|
||||
|
@@ -4155,8 +4155,6 @@ void spell_free_all(void)
|
||||
// Used after 'encoding' is set and when ":mkspell" was used.
|
||||
void spell_reload(void)
|
||||
{
|
||||
win_T *wp;
|
||||
|
||||
// Initialize the table for spell_iswordp().
|
||||
init_spell_chartab();
|
||||
|
||||
@@ -4164,7 +4162,7 @@ void spell_reload(void)
|
||||
spell_free_all();
|
||||
|
||||
// Go through all buffers and handle 'spelllang'.
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next) {
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
// Only load the wordlists when 'spelllang' is set and there is a
|
||||
// window for this buffer in which 'spell' is set.
|
||||
if (*wp->w_s->b_p_spl != NUL) {
|
||||
|
@@ -982,13 +982,13 @@ static void win_init_some(win_T *newp, win_T *oldp)
|
||||
*/
|
||||
int win_valid(win_T *win)
|
||||
{
|
||||
win_T *wp;
|
||||
|
||||
if (win == NULL)
|
||||
return FALSE;
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
if (wp == win)
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp == win) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -997,11 +997,11 @@ int win_valid(win_T *win)
|
||||
*/
|
||||
int win_count(void)
|
||||
{
|
||||
win_T *wp;
|
||||
int count = 0;
|
||||
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
++count;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
@@ -3475,14 +3475,14 @@ static void win_enter_ext(win_T *wp, bool undo_sync, int curwin_invalid, int tri
|
||||
*/
|
||||
win_T *buf_jump_open_win(buf_T *buf)
|
||||
{
|
||||
win_T *wp;
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_buffer == buf) {
|
||||
win_enter(wp, false);
|
||||
return wp;
|
||||
}
|
||||
}
|
||||
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
if (wp->w_buffer == buf)
|
||||
break;
|
||||
if (wp != NULL)
|
||||
win_enter(wp, false);
|
||||
return wp;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3784,11 +3784,9 @@ void shell_new_columns(void)
|
||||
void win_size_save(garray_T *gap)
|
||||
|
||||
{
|
||||
win_T *wp;
|
||||
|
||||
ga_init(gap, (int)sizeof(int), 1);
|
||||
ga_grow(gap, win_count() * 2);
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next) {
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
((int *)gap->ga_data)[gap->ga_len++] =
|
||||
wp->w_width + wp->w_vsep_width;
|
||||
((int *)gap->ga_data)[gap->ga_len++] = wp->w_height;
|
||||
@@ -3801,11 +3799,9 @@ void win_size_save(garray_T *gap)
|
||||
*/
|
||||
void win_size_restore(garray_T *gap)
|
||||
{
|
||||
win_T *wp;
|
||||
|
||||
if (win_count() * 2 == gap->ga_len) {
|
||||
int i = 0;
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next) {
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
frame_setwidth(wp->w_frame, ((int *)gap->ga_data)[i++]);
|
||||
win_setheight_win(((int *)gap->ga_data)[i++], wp);
|
||||
}
|
||||
@@ -4233,14 +4229,14 @@ void win_setminheight(void)
|
||||
{
|
||||
int room;
|
||||
int first = TRUE;
|
||||
win_T *wp;
|
||||
|
||||
/* loop until there is a 'winminheight' that is possible */
|
||||
while (p_wmh > 0) {
|
||||
/* TODO: handle vertical splits */
|
||||
room = -p_wh;
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
room += wp->w_height - p_wmh;
|
||||
}
|
||||
if (room >= 0)
|
||||
break;
|
||||
--p_wmh;
|
||||
@@ -4931,20 +4927,21 @@ int min_rows(void)
|
||||
int only_one_window(void)
|
||||
{
|
||||
int count = 0;
|
||||
win_T *wp;
|
||||
|
||||
/* If there is another tab page there always is another window. */
|
||||
if (first_tabpage->tp_next != NULL)
|
||||
return FALSE;
|
||||
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
FOR_ALL_WINDOWS(wp) {
|
||||
if (wp->w_buffer != NULL
|
||||
&& (!((wp->w_buffer->b_help && !curbuf->b_help)
|
||||
|| wp->w_p_pvw
|
||||
) || wp == curwin)
|
||||
&& wp != aucmd_win
|
||||
)
|
||||
) {
|
||||
++count;
|
||||
}
|
||||
}
|
||||
return count <= 1;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user