From 0b524a94a5e34148716832f1b6cada02e35369b0 Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Mon, 12 Feb 2024 16:28:37 +0100 Subject: Improve word deletion Now it only deletes the word under dot. --- src/dged/buffer_view.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'src/dged/buffer_view.c') 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) { -- cgit v1.2.3