Skip to content

Commit

Permalink
text: improve and simplify inner word text object
Browse files Browse the repository at this point in the history
Previously words ending in special symbols would wrongly be included
in range.
  • Loading branch information
martanne committed Aug 31, 2020
1 parent 4b2aa76 commit 1b9d70e
Showing 1 changed file with 14 additions and 21 deletions.
35 changes: 14 additions & 21 deletions text-objects.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,33 +27,26 @@ static Filerange text_object_customword(Text *txt, size_t pos, int (*isboundary)
if (space(c)) {
r.start = text_char_next(txt, text_customword_end_prev(txt, pos, isboundary));
r.end = text_customword_start_next(txt, pos, isboundary);
} else if (boundary(prev) && boundary(next)) {
if ((space(prev) && space(next)) || !boundary(c)) {
/* on a single character */
} else if (boundary(c)) {
if (boundary(prev) && !space(prev))
r.start = text_customword_start_prev(txt, pos, isboundary);
else
r.start = pos;

if (boundary(next) && !space(next))
r.end = text_char_next(txt, text_customword_end_next(txt, pos, isboundary));
else
r.end = text_char_next(txt, pos);
} else if (space(prev)) {
} else {
if (boundary(prev))
r.start = pos;
r.end = text_char_next(txt, text_customword_end_next(txt, pos, isboundary));
} else if (space(next)) {
else
r.start = text_customword_start_prev(txt, pos, isboundary);

if (boundary(next))
r.end = text_char_next(txt, pos);
} else {
r.start = text_customword_start_prev(txt, pos, isboundary);
else
r.end = text_char_next(txt, text_customword_end_next(txt, pos, isboundary));
}
} else if (boundary(prev)) {
/* at start of a word */
r.start = pos;
r.end = text_char_next(txt, text_customword_end_next(txt, pos, isboundary));
} else if (boundary(next)) {
/* at end of a word */
r.start = text_customword_start_prev(txt, pos, isboundary);
r.end = text_char_next(txt, pos);
} else {
/* in the middle of a word */
r.start = text_customword_start_prev(txt, pos, isboundary);
r.end = text_char_next(txt, text_customword_end_next(txt, pos, isboundary));
}

return r;
Expand Down

0 comments on commit 1b9d70e

Please sign in to comment.