0
0
mirror of https://github.com/vim/vim.git synced 2025-09-29 04:34:16 -04:00

patch 8.0.0172: command line window does not work

Problem:    The command selected in the command line window is not executed.
            (Andrey Starodubtsev)
Solution:   Save and restore the command line at a lower level. (closes #1370)
This commit is contained in:
Bram Moolenaar
2017-01-11 22:40:19 +01:00
parent ee142add22
commit 1d669c233c
3 changed files with 21 additions and 6 deletions

View File

@@ -773,9 +773,7 @@ getcmdline(
/*
* Open a window to edit the command line (and history).
*/
save_cmdline(&save_ccline);
c = ex_window();
restore_cmdline(&save_ccline);
some_key_typed = TRUE;
}
}
@@ -6904,9 +6902,7 @@ ex_window(void)
redraw_later(SOME_VALID);
/* Save the command line info, can be used recursively. */
save_ccline = ccline;
ccline.cmdbuff = NULL;
ccline.cmdprompt = NULL;
save_cmdline(&save_ccline);
/* No Ex mode here! */
exmode_active = 0;
@@ -6953,7 +6949,7 @@ ex_window(void)
# endif
/* Restore the command line info. */
ccline = save_ccline;
restore_cmdline(&save_ccline);
cmdwin_type = 0;
exmode_active = save_exmode;

View File

@@ -87,3 +87,20 @@ function Test_History()
call assert_equal(-1, histnr('abc'))
call assert_fails('call histnr([])', 'E730:')
endfunction
function Test_Search_history_window()
new
call setline(1, ['a', 'b', 'a', 'b'])
1
call feedkeys("/a\<CR>", 'xt')
call assert_equal('a', getline('.'))
1
call feedkeys("/b\<CR>", 'xt')
call assert_equal('b', getline('.'))
1
" select the previous /a command
call feedkeys("q/kk\<CR>", 'x!')
call assert_equal('a', getline('.'))
call assert_equal('a', @/)
bwipe!
endfunc

View File

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