0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.4233: crash when recording and using Select mode

Problem:    Crash when recording and using Select mode.
Solution:   When deleting the last recorded character check there is something
            to delete.
This commit is contained in:
Bram Moolenaar 2022-01-27 19:27:16 +00:00
parent 98cd30383a
commit a4bc2dd7cc
3 changed files with 15 additions and 1 deletions

View File

@ -252,8 +252,11 @@ add_buff(
static void
delete_buff_tail(buffheader_T *buf, int slen)
{
int len = (int)STRLEN(buf->bh_curr->b_str);
int len;
if (buf->bh_curr == NULL || buf->bh_curr->b_str == NULL)
return; // nothing to delete
len = (int)STRLEN(buf->bh_curr->b_str);
if (len >= slen)
{
buf->bh_curr->b_str[len - slen] = NUL;

View File

@ -739,6 +739,15 @@ func Test_record_in_insert_mode()
bwipe!
endfunc
func Test_record_in_select_mode()
new
call setline(1, 'text')
sil norm q00
sil norm q
call assert_equal('0ext', getline(1))
bwipe!
endfunc
" Make sure that y_append is correctly reset
" and the previous register is working as expected
func Test_register_y_append_reset()

View File

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