mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.2.5148: invalid memory access when using expression on command line
Problem: Invalid memory access when using an expression on the command line. Solution: Make sure the position does not go negative.
This commit is contained in:
@@ -1206,6 +1206,7 @@ cmdline_insert_reg(int *gotesc UNUSED)
|
||||
{
|
||||
int i;
|
||||
int c;
|
||||
int save_new_cmdpos = new_cmdpos;
|
||||
|
||||
#ifdef USE_ON_FLY_SCROLL
|
||||
dont_scroll = TRUE; // disallow scrolling here
|
||||
@@ -1224,8 +1225,6 @@ cmdline_insert_reg(int *gotesc UNUSED)
|
||||
#ifdef FEAT_EVAL
|
||||
/*
|
||||
* Insert the result of an expression.
|
||||
* Need to save the current command line, to be able to enter
|
||||
* a new one...
|
||||
*/
|
||||
new_cmdpos = -1;
|
||||
if (c == '=')
|
||||
@@ -1266,6 +1265,8 @@ cmdline_insert_reg(int *gotesc UNUSED)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
new_cmdpos = save_new_cmdpos;
|
||||
|
||||
// remove the double quote
|
||||
redrawcmd();
|
||||
|
||||
|
@@ -1987,6 +1987,11 @@ func Test_cmdline_expr()
|
||||
call assert_equal("\"e \<C-\>\<C-Y>", @:)
|
||||
endfunc
|
||||
|
||||
" This was making the insert position negative
|
||||
func Test_cmdline_expr_register()
|
||||
exe "sil! norm! ?\<C-\>e0\<C-R>0\<Esc>?\<C-\>e0\<CR>"
|
||||
endfunc
|
||||
|
||||
" Test for 'imcmdline' and 'imsearch'
|
||||
" This test doesn't actually test the input method functionality.
|
||||
func Test_cmdline_inputmethod()
|
||||
|
@@ -734,6 +734,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
5148,
|
||||
/**/
|
||||
5147,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user