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

View File

@@ -87,3 +87,20 @@ function Test_History()
call assert_equal(-1, histnr('abc')) call assert_equal(-1, histnr('abc'))
call assert_fails('call histnr([])', 'E730:') call assert_fails('call histnr([])', 'E730:')
endfunction 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[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
172,
/**/ /**/
171, 171,
/**/ /**/