mirror of
https://github.com/vim/vim.git
synced 2025-09-26 04:04:07 -04:00
patch 9.1.0504: inner-tag textobject confused about ">" in attributes
Problem: inner-tag textobject confused about ">" in attributes Solution: Skip over quoted '>' when determining the start position fixes: #15043 closes: #15049 Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@@ -201,6 +201,18 @@ func Test_string_html_objects()
|
|||||||
normal! 2k0vaty
|
normal! 2k0vaty
|
||||||
call assert_equal("<div><div\nattr=\"attr\"\n></div></div>", @", e)
|
call assert_equal("<div><div\nattr=\"attr\"\n></div></div>", @", e)
|
||||||
|
|
||||||
|
" tag, that includes a > in some attribute
|
||||||
|
let t = "<div attr=\"attr >> foo >> bar \">Hello</div>"
|
||||||
|
$put =t
|
||||||
|
normal! fHyit
|
||||||
|
call assert_equal("Hello", @", e)
|
||||||
|
|
||||||
|
" tag, that includes a > in some attribute
|
||||||
|
let t = "<div attr='attr >> foo >> bar '>Hello 123</div>"
|
||||||
|
$put =t
|
||||||
|
normal! fHyit
|
||||||
|
call assert_equal("Hello 123", @", e)
|
||||||
|
|
||||||
set quoteescape&
|
set quoteescape&
|
||||||
|
|
||||||
" this was going beyond the end of the line
|
" this was going beyond the end of the line
|
||||||
|
@@ -1426,15 +1426,22 @@ again:
|
|||||||
|
|
||||||
if (!do_include)
|
if (!do_include)
|
||||||
{
|
{
|
||||||
// Exclude the start tag.
|
// Exclude the start tag,
|
||||||
|
// but skip over '>' if it appears in quotes
|
||||||
|
int in_quotes = FALSE;
|
||||||
curwin->w_cursor = start_pos;
|
curwin->w_cursor = start_pos;
|
||||||
while (inc_cursor() >= 0)
|
while (inc_cursor() >= 0)
|
||||||
if (*ml_get_cursor() == '>')
|
{
|
||||||
|
p = ml_get_cursor();
|
||||||
|
if (*p == '>' && !in_quotes)
|
||||||
{
|
{
|
||||||
inc_cursor();
|
inc_cursor();
|
||||||
start_pos = curwin->w_cursor;
|
start_pos = curwin->w_cursor;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
else if (*p == '"' || *p == '\'')
|
||||||
|
in_quotes = !in_quotes;
|
||||||
|
}
|
||||||
curwin->w_cursor = end_pos;
|
curwin->w_cursor = end_pos;
|
||||||
|
|
||||||
// If we are in Visual mode and now have the same text as before set
|
// If we are in Visual mode and now have the same text as before set
|
||||||
|
@@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
504,
|
||||||
/**/
|
/**/
|
||||||
503,
|
503,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user