mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:7.4.1956
Problem: When using CTRL-W f and pressing "q" at the ATTENTION dialog the
newly opened window is not closed.
Solution: Close the window and go back to the original one. (Norio Takagi,
Hirohito Higashi)
5d2ca04029
This commit is contained in:
parent
9af8cd768d
commit
34efe443ac
@ -34,4 +34,37 @@ func Test_window_cmd_cmdwin_with_vsp()
|
||||
set ls&vim
|
||||
endfunc
|
||||
|
||||
function Test_window_cmd_wincmd_gf()
|
||||
let fname = 'test_gf.txt'
|
||||
let swp_fname = '.' . fname . '.swp'
|
||||
call writefile([], fname)
|
||||
call writefile([], swp_fname)
|
||||
function s:swap_exists()
|
||||
let v:swapchoice = s:swap_choice
|
||||
endfunc
|
||||
augroup test_window_cmd_wincmd_gf
|
||||
autocmd!
|
||||
exec "autocmd SwapExists " . fname . " call s:swap_exists()"
|
||||
augroup END
|
||||
|
||||
call setline(1, fname)
|
||||
" (E)dit anyway
|
||||
let s:swap_choice = 'e'
|
||||
wincmd gf
|
||||
call assert_equal(2, tabpagenr())
|
||||
call assert_equal(fname, bufname("%"))
|
||||
quit!
|
||||
|
||||
" (Q)uit
|
||||
let s:swap_choice = 'q'
|
||||
wincmd gf
|
||||
call assert_equal(1, tabpagenr())
|
||||
call assert_notequal(fname, bufname("%"))
|
||||
new | only!
|
||||
|
||||
call delete(fname)
|
||||
call delete(swp_fname)
|
||||
augroup! test_window_cmd_wincmd_gf
|
||||
endfunc
|
||||
|
||||
" vim: sw=2 et
|
||||
|
@ -486,7 +486,7 @@ static int included_patches[] = {
|
||||
// 1959 NA
|
||||
// 1958 NA
|
||||
// 1957 NA
|
||||
// 1956,
|
||||
1956,
|
||||
// 1955,
|
||||
// 1954,
|
||||
// 1953,
|
||||
|
@ -385,12 +385,16 @@ wingotofile:
|
||||
|
||||
ptr = grab_file_name(Prenum1, &lnum);
|
||||
if (ptr != NULL) {
|
||||
tabpage_T *oldtab = curtab;
|
||||
win_T *oldwin = curwin;
|
||||
setpcmark();
|
||||
if (win_split(0, 0) == OK) {
|
||||
RESET_BINDING(curwin);
|
||||
(void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
|
||||
ECMD_HIDE, NULL);
|
||||
if (nchar == 'F' && lnum >= 0) {
|
||||
if (do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL, ECMD_HIDE, NULL) == FAIL) {
|
||||
// Failed to open the file, close the window opened for it.
|
||||
win_close(curwin, false);
|
||||
goto_tabpage_win(oldtab, oldwin);
|
||||
} else if (nchar == 'F' && lnum >= 0) {
|
||||
curwin->w_cursor.lnum = lnum;
|
||||
check_cursor_lnum();
|
||||
beginline(BL_SOL | BL_FIX);
|
||||
|
Loading…
Reference in New Issue
Block a user