diff options
author | Christian Brabandt <cb@256bit.org> | 2024-06-19 20:26:51 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-06-19 20:26:51 +0200 |
commit | ca7f93e6f351b310c17cfc8f88acf21c839d6116 (patch) | |
tree | 1109927a7cde057e3c749c48f8e36ddc8c83d795 /src/textobject.c | |
parent | 43eef882ff42e673af1e753892801ba20c5d002a (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.c | 11 |
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 |