mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -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:
@@ -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);
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
@@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user