Patch 8.1.2236
Problem: Ml_get error if pattern matches beyond last line.
Solution: Adjust position if needed. (Christian Brabandt, closes #5139)
Files: src/ex_cmds.c, src/testdir/test_substitute.vim
*** ../vim-8.1.2235/src/ex_cmds.c 2019-10-26 12:22:58.712730053 +0200
--- src/ex_cmds.c 2019-10-31 04:12:37.961027612 +0100
***************
*** 3947,3952 ****
--- 3947,3957 ----
VIM_CLEAR(sub_firstline);
}
+ // Match might be after the last line for "\n\zs" matching at
+ // the end of the last line.
+ if (lnum > curbuf->b_ml.ml_line_count)
+ break;
+
if (sub_firstline == NULL)
{
sub_firstline = vim_strsave(ml_get(sub_firstlnum));
*** ../vim-8.1.2235/src/testdir/test_substitute.vim 2019-09-07
19:05:02.341280926 +0200
--- src/testdir/test_substitute.vim 2019-10-31 04:35:14.566693602 +0100
***************
*** 413,418 ****
--- 413,419 ----
for t in a:tests
let start = line('.') + 1
let end = start + len(t[2]) - 1
+ " TODO: why is there a one second delay the first time we get here?
exe "normal o" . t[0]
call cursor(start, 1)
exe t[1]
***************
*** 716,718 ****
--- 717,728 ----
close!
endfunc
+
+ func Test_sub_beyond_end()
+ new
+ call setline(1, '#')
+ let @/ = '^#\n\zs'
+ s///e
+ call assert_equal('#', getline(1))
+ bwipe!
+ endfunc
*** ../vim-8.1.2235/src/version.c 2019-10-31 03:21:21.121403678 +0100
--- src/version.c 2019-10-31 04:10:59.513546788 +0100
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 2236,
/**/
--
"How is your new girlfriend?"
"90-60-90 man!"
"What, pale purple?"
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/201910310339.x9V3dLEK030670%40masaka.moolenaar.net.