diff options
| author | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-11-19 21:10:52 -0500 | 
|---|---|---|
| committer | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-11-19 21:16:26 -0500 | 
| commit | a5637597a6df1465df50584d853dbd8d77cb24da (patch) | |
| tree | 2ebf6ae116fc86813fda46908e6017774e824b98 /src/nvim/quickfix.c | |
| parent | e53ae88e7ecb20f39f9f9c73cd9b39bc12a665ab (diff) | |
| download | rneovim-a5637597a6df1465df50584d853dbd8d77cb24da.tar.gz rneovim-a5637597a6df1465df50584d853dbd8d77cb24da.tar.bz2 rneovim-a5637597a6df1465df50584d853dbd8d77cb24da.zip | |
vim-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 vim/vim#2496)
https://github.com/vim/vim/commit/de04654ddc865af94ef04b1738b335a924be7923
Diffstat (limited to 'src/nvim/quickfix.c')
| -rw-r--r-- | src/nvim/quickfix.c | 16 | 
1 files changed, 12 insertions, 4 deletions
| diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c index 51a7dd670f..d9e307bb71 100644 --- a/src/nvim/quickfix.c +++ b/src/nvim/quickfix.c @@ -2661,6 +2661,8 @@ void ex_copen(exarg_T *eap)        }      }    } else { +    int flags = 0; +      qf_buf = qf_find_buf(qi);      /* The current window becomes the previous window afterwards. */ @@ -2668,11 +2670,17 @@ void ex_copen(exarg_T *eap)      if ((eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow)          && cmdmod.split == 0) -      /* Create the new window at the very bottom, except when -       * :belowright or :aboveleft is used. */ +      // Create the new quickfix window at the very bottom, except when +      // :belowright or :aboveleft is used.        win_goto(lastwin); -    if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL) -      return;                   /* not enough room for window */ +    // 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 +    }      RESET_BINDING(curwin);      if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow) { | 
