diff options
-rw-r--r-- | src/getchar.c | 5 | ||||
-rw-r--r-- | src/testdir/test_registers.vim | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/getchar.c b/src/getchar.c index c0dfc2b0b..49eb3d7df 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -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; diff --git a/src/testdir/test_registers.vim b/src/testdir/test_registers.vim index bbc7c1911..89d9d7cad 100644 --- a/src/testdir/test_registers.vim +++ b/src/testdir/test_registers.vim @@ -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() diff --git a/src/version.c b/src/version.c index 2f872e981..bc956cee0 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4233, +/**/ 4232, /**/ 4231, |