From b476cb7d8d1a8c02409f110dea8b166aa9334e18 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 16 Aug 2018 21:37:50 +0200 Subject: [PATCH] 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) --- src/search.c | 7 ++++--- src/testdir/test_textobjects.vim | 17 +++++++++++++++++ src/version.c | 2 ++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/search.c b/src/search.c index 66ae64718..a12a1d33c 100644 --- 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; diff --git a/src/testdir/test_textobjects.vim b/src/testdir/test_textobjects.vim index f02619fc0..6a2f5044c 100644 --- 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, '
') + normal 0citxxx + call assert_equal('
xxx
', getline(1)) + + call setline(1, '
') + normal 0fyyy', getline(1)) + + call setline(1, '
') + normal 0f