Mercurial > vim
changeset 14530:60e0022e6e5d v8.1.0278
patch 8.1.0278: 'incsearch' highlighting does not accept reverse range
commit https://github.com/vim/vim/commit/60d0871000e9abf3716ee035cba5b5a9d659e327
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Aug 12 21:53:15 2018 +0200
patch 8.1.0278: 'incsearch' highlighting does not accept reverse range
Problem: 'incsearch' highlighting does not accept reverse range.
Solution: Swap the range when needed. (issue https://github.com/vim/vim/issues/3321)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 12 Aug 2018 22:00:05 +0200 |
parents | 957961c9ff99 |
children | 6d1726a06a8b |
files | src/ex_getln.c src/testdir/dumps/Test_incsearch_substitute_04.dump src/testdir/test_search.vim src/version.c |
diffstat | 4 files changed, 28 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -320,8 +320,17 @@ do_incsearch_highlighting(int firstc, in parse_cmd_address(&ea, &dummy); if (ea.addr_count > 0) { - search_first_line = ea.line1; - search_last_line = ea.line2; + // Allow for reverse match. + if (ea.line2 < ea.line1) + { + search_first_line = ea.line2; + search_last_line = ea.line1; + } + else + { + search_first_line = ea.line1; + search_last_line = ea.line2; + } } else if (*cmd == 's') {
new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_incsearch_substitute_04.dump @@ -0,0 +1,9 @@ +|f+0&#ffffff0|o@1| |1| @64 +|f+1&&|o@1| +0&&|2| @64 +|f+0&#ffff4012|o@1| +0&#ffffff0|3| @64 +|f+0&#ffff4012|o@1| +0&#ffffff0|4| @64 +|f+0&#ffff4012|o@1| +0&#ffffff0|5| @64 +|f|o@1| |6| @64 +|f|o@1| |7| @64 +|f|o@1| |8| @64 +|:|5|,|2|s|/|f|o@1> @60
--- a/src/testdir/test_search.vim +++ b/src/testdir/test_search.vim @@ -862,6 +862,12 @@ func Test_incsearch_substitute_dump() call term_sendkeys(buf, "\<BS>") sleep 100m call VerifyScreenDump(buf, 'Test_incsearch_substitute_03', {}) + call term_sendkeys(buf, "\<Esc>") + + " Reverse range is accepted + call term_sendkeys(buf, ':5,2s/foo') + sleep 100m + call VerifyScreenDump(buf, 'Test_incsearch_substitute_04', {}) call term_sendkeys(buf, "\<Esc>") call StopVimInTerminal(buf)