changeset 26096:e353ace59e62 v8.2.3581

patch 8.2.3581: reading character past end of line Commit: https://github.com/vim/vim/commit/0b5b06cb4777d1401fdf83e7d48d287662236e7e Author: Bram Moolenaar <Bram@vim.org> Date: Thu Nov 4 15:10:11 2021 +0000 patch 8.2.3581: reading character past end of line Problem: Reading character past end of line. Solution: Correct the cursor column.
author Bram Moolenaar <Bram@vim.org>
date Thu, 04 Nov 2021 16:15:04 +0100
parents ffcc5500ef27
children cc33435a9f8b
files src/ex_docmd.c src/testdir/test_put.vim src/version.c
diffstat 3 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7774,6 +7774,7 @@ ex_put(exarg_T *eap)
 	eap->forceit = TRUE;
     }
     curwin->w_cursor.lnum = eap->line2;
+    check_cursor_col();
     do_put(eap->regname, NULL, eap->forceit ? BACKWARD : FORWARD, 1L,
 						       PUT_LINE|PUT_CURSLINE);
 }
--- a/src/testdir/test_put.vim
+++ b/src/testdir/test_put.vim
@@ -159,5 +159,14 @@ func Test_very_large_count()
   bwipe!
 endfunc
 
+func Test_put_above_first_line()
+  new
+  let @" = 'text'
+  silent! normal 0o00
+  0put
+  call assert_equal('text', getline(1))
+  bwipe!
+endfunc
+
 
 " vim: shiftwidth=2 sts=2 expandtab
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3581,
+/**/
     3580,
 /**/
     3579,