summaryrefslogtreecommitdiffstats
path: root/src/textobject.c
diff options
context:
space:
mode:
authorChristian Brabandt <cb@256bit.org>2024-06-19 20:26:51 +0200
committerChristian Brabandt <cb@256bit.org>2024-06-19 20:26:51 +0200
commitca7f93e6f351b310c17cfc8f88acf21c839d6116 (patch)
tree1109927a7cde057e3c749c48f8e36ddc8c83d795 /src/textobject.c
parent43eef882ff42e673af1e753892801ba20c5d002a (diff)
patch 9.1.0504: inner-tag textobject confused about ">" in attributesv9.1.0504
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>
Diffstat (limited to 'src/textobject.c')
-rw-r--r--src/textobject.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/textobject.c b/src/textobject.c
index 1890d7c83f..aa2db07709 100644
--- a/src/textobject.c
+++ b/src/textobject.c
@@ -1426,15 +1426,22 @@ again:
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;
while (inc_cursor() >= 0)
- if (*ml_get_cursor() == '>')
+ {
+ p = ml_get_cursor();
+ if (*p == '>' && !in_quotes)
{
inc_cursor();
start_pos = curwin->w_cursor;
break;
}
+ else if (*p == '"' || *p == '\'')
+ in_quotes = !in_quotes;
+ }
curwin->w_cursor = end_pos;
// If we are in Visual mode and now have the same text as before set