diff options
| author | Albert Cervin <albert@acervin.com> | 2024-02-12 16:28:37 +0100 |
|---|---|---|
| committer | Albert Cervin <albert@acervin.com> | 2024-02-14 13:08:51 +0100 |
| commit | 0b524a94a5e34148716832f1b6cada02e35369b0 (patch) | |
| tree | c0b31aab359c2bac7300a3c95a2f50ee62572048 /src/dged/buffer_view.c | |
| parent | 7baa6f58d4fe8b00ec5ee7dd72a8cb32ef52c079 (diff) | |
| download | dged-0b524a94a5e34148716832f1b6cada02e35369b0.tar.gz dged-0b524a94a5e34148716832f1b6cada02e35369b0.tar.xz dged-0b524a94a5e34148716832f1b6cada02e35369b0.zip | |
Improve word deletion
Now it only deletes the word under dot.
Diffstat (limited to 'src/dged/buffer_view.c')
| -rw-r--r-- | src/dged/buffer_view.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/src/dged/buffer_view.c b/src/dged/buffer_view.c index aeee2f6..15aa812 100644 --- a/src/dged/buffer_view.c +++ b/src/dged/buffer_view.c @@ -186,24 +186,17 @@ void buffer_view_backward_delete_char(struct buffer_view *view) { region_new(buffer_previous_char(view->buffer, view->dot), view->dot)); } -void buffer_view_forward_delete_word(struct buffer_view *view) { +void buffer_view_delete_word(struct buffer_view *view) { if (maybe_delete_region(view)) { return; } - view->dot = buffer_delete( - view->buffer, - region_new(view->dot, buffer_next_word(view->buffer, view->dot))); -} + struct region word = buffer_word_at(view->buffer, view->dot); -void buffer_view_backward_delete_word(struct buffer_view *view) { - if (maybe_delete_region(view)) { - return; + if (region_has_size(word)) { + buffer_delete(view->buffer, word); + view->dot = word.begin; } - - view->dot = buffer_delete( - view->buffer, - region_new(buffer_previous_word(view->buffer, view->dot), view->dot)); } void buffer_view_kill_line(struct buffer_view *view) { |
