0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.0.1427: the :leftabove modifier doesn't work for :copen

Problem:    The :leftabove modifier doesn't work for :copen.
Solution:   Respect the split modifier. (Yegappan Lakshmanan, closes #2496)
This commit is contained in:
Bram Moolenaar
2017-12-26 13:53:11 +01:00
parent 9e3dfc6501
commit de04654ddc
3 changed files with 37 additions and 2 deletions

View File

@@ -3222,6 +3222,8 @@ ex_copen(exarg_T *eap)
} }
else else
{ {
int flags = 0;
qf_buf = qf_find_buf(qi); qf_buf = qf_find_buf(qi);
/* The current window becomes the previous window afterwards. */ /* The current window becomes the previous window afterwards. */
@@ -3229,10 +3231,14 @@ ex_copen(exarg_T *eap)
if ((eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow) if ((eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow)
&& cmdmod.split == 0) && cmdmod.split == 0)
/* Create the new window at the very bottom, except when /* Create the new quickfix window at the very bottom, except when
* :belowright or :aboveleft is used. */ * :belowright or :aboveleft is used. */
win_goto(lastwin); win_goto(lastwin);
if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL) /* Default is to open the window below the current window */
if (cmdmod.split == 0)
flags = WSP_BELOW;
flags |= WSP_NEWLOC;
if (win_split(height, flags) == FAIL)
return; /* not enough room for window */ return; /* not enough room for window */
RESET_BINDING(curwin); RESET_BINDING(curwin);

View File

@@ -3078,3 +3078,30 @@ func Test_lvimgrep_crash()
augroup END augroup END
enew | only enew | only
endfunc endfunc
" Test for the position of the quickfix and location list window
func Test_qfwin_pos()
" Open two windows
new | only
new
cexpr ['F1:10:L10']
copen
" Quickfix window should be the bottom most window
call assert_equal(3, winnr())
close
" Open at the very top
wincmd t
topleft copen
call assert_equal(1, winnr())
close
" open left of the current window
wincmd t
below new
leftabove copen
call assert_equal(2, winnr())
close
" open right of the current window
rightbelow copen
call assert_equal(3, winnr())
close
endfunc

View File

@@ -771,6 +771,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1427,
/**/ /**/
1426, 1426,
/**/ /**/