forked from aniani/vim
patch 9.1.0692: Wrong patlen value in ex_substitute()
Problem: Wrong patlen value in ex_substitute() (after 9.1.0426).
Solution: Compute patlen after finding end separator.
(zeertzjq)
Add a more explicit test. The test already passes as the only case
where a overlarge patlen value matters was fixed by patch 9.1.0689.
closes: #15565
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
3f7024cf86
commit
d1c8d2de4b
@@ -1747,6 +1747,37 @@ func Test_search_with_no_last_pat()
|
||||
call delete('Xresult')
|
||||
endfunc
|
||||
|
||||
" Test for using the last substitute pattern without last search pattern.
|
||||
func Test_search_with_last_substitute_pat()
|
||||
let lines =<< trim [SCRIPT]
|
||||
new
|
||||
set shortmess+=S
|
||||
call setline(1, repeat(['foofoo'], 3))
|
||||
%s/foo/bar/
|
||||
call assert_equal(repeat(['barfoo'], 3), getline(1, '$'))
|
||||
|
||||
call cursor(1, 1)
|
||||
call assert_equal("/foo", execute('call feedkeys("/\r", "tx")', '')->trim())
|
||||
call assert_equal([0, 1, 4, 0], getpos('.'))
|
||||
|
||||
if has('rightleft')
|
||||
set rightleft rightleftcmd=search
|
||||
call cursor(1, 1)
|
||||
call assert_equal("oof/", execute('call feedkeys("/\r", "tx")', '')->trim())
|
||||
call assert_equal([0, 1, 4, 0], getpos('.'))
|
||||
endif
|
||||
|
||||
call writefile(v:errors, 'Xresult')
|
||||
qall!
|
||||
[SCRIPT]
|
||||
call writefile(lines, 'Xscript', 'D')
|
||||
|
||||
if RunVim([], [], '--clean -S Xscript')
|
||||
call assert_equal([], readfile('Xresult'))
|
||||
endif
|
||||
call delete('Xresult')
|
||||
endfunc
|
||||
|
||||
" Test for using tilde (~) atom in search. This should use the last used
|
||||
" substitute pattern
|
||||
func Test_search_tilde_pat()
|
||||
|
||||
Reference in New Issue
Block a user