Mercurial > vim
changeset 14554:e7f92d1a3fcd v8.1.0290
patch 8.1.0290: "cit" on an empty HTML tag changes the whole tag
commit https://github.com/vim/vim/commit/b476cb7d8d1a8c02409f110dea8b166aa9334e18
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Aug 16 21:37:50 2018 +0200
patch 8.1.0290: "cit" on an empty HTML tag changes the whole tag
Problem: "cit" on an empty HTML tag changes the whole tag.
Solution: Only adjust the area in Visual mode. (Andy Massimino,
closes #3332)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 16 Aug 2018 21:45:05 +0200 |
parents | 8e7e7fa5b79b |
children | b8dad604cb54 |
files | src/search.c src/testdir/test_textobjects.vim src/version.c |
diffstat | 3 files changed, 23 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/search.c +++ b/src/search.c @@ -4106,9 +4106,10 @@ again: } curwin->w_cursor = end_pos; - /* If we now have the same text as before reset "do_include" and try - * again. */ - if (EQUAL_POS(start_pos, old_start) && EQUAL_POS(end_pos, old_end)) + // If we are in Visual mode and now have the same text as before set + // "do_include" and try again. + if (VIsual_active && EQUAL_POS(start_pos, old_start) + && EQUAL_POS(end_pos, old_end)) { do_include = TRUE; curwin->w_cursor = old_start;
--- a/src/testdir/test_textobjects.vim +++ b/src/testdir/test_textobjects.vim @@ -121,6 +121,23 @@ func Test_string_html_objects() enew! endfunc +func Test_empty_html_tag() + new + call setline(1, '<div></div>') + normal 0citxxx + call assert_equal('<div>xxx</div>', getline(1)) + + call setline(1, '<div></div>') + normal 0f<cityyy + call assert_equal('<div>yyy</div>', getline(1)) + + call setline(1, '<div></div>') + normal 0f<vitsaaa + call assert_equal('aaa', getline(1)) + + bwipe! +endfunc + " Tests for match() and matchstr() func Test_match() call assert_equal("b", matchstr("abcd", ".", 0, 2))