vim-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 vim/vim#3332)
b476cb7d8d
This commit is contained in:
Jan Edmund Lazo
2018-08-20 10:03:08 -04:00
parent 953c3fcfee
commit 7763c19a70
2 changed files with 22 additions and 3 deletions

View File

@@ -3445,9 +3445,11 @@ again:
} }
curwin->w_cursor = end_pos; curwin->w_cursor = end_pos;
/* If we now have the same text as before reset "do_include" and try // If we are in Visual mode and now have the same text as before set
* again. */ // "do_include" and try again.
if (equalpos(start_pos, old_start) && equalpos(end_pos, old_end)) { if (VIsual_active
&& equalpos(start_pos, old_start)
&& equalpos(end_pos, old_end)) {
do_include = TRUE; do_include = TRUE;
curwin->w_cursor = old_start; curwin->w_cursor = old_start;
count = count_arg; count = count_arg;

View File

@@ -121,6 +121,23 @@ func Test_string_html_objects()
enew! enew!
endfunc 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() " Tests for match() and matchstr()
func Test_match() func Test_match()
call assert_equal("b", matchstr("abcd", ".", 0, 2)) call assert_equal("b", matchstr("abcd", ".", 0, 2))