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:
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -764,6 +764,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
172,
|
||||
/**/
|
||||
171,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user