}
/* if current char is not whitespace, then shrink the selection */
- if (r != ' ' && r != '\t')
+ if (r != ' ' && r != '\t') {
buf->selection.beg = buf->selection.end;
+ } else {
+ if (buf->selection.end <= sel.beg) sel.beg--;
+ if (buf->selection.end <= sel.end) sel.end--;
+ }
- /* move to the next character */
- prev = buf->selection.end;
- buf->selection.end = buf_byrune(buf, buf->selection.end, +1);
+ /* move to the next character */
+ prev = buf->selection.end;
+ buf->selection.end = buf_byrune(buf, buf->selection.end, +1);
}
buf->selection = sel;
}