From c40a1cfa0f1ecfddac06c7143c2dd974126ddad3 Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Fri, 18 Nov 2022 10:55:49 +0100 Subject: Rework delete logic a bit It now handles a range of characters and correctly merges lines. It is not the most slick implementation but it works as a start. --- src/buffer.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/buffer.c') diff --git a/src/buffer.c b/src/buffer.c index e08bca5..fb071da 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -98,14 +98,13 @@ void moveh(struct buffer *buffer, int coldelta) { } } +void buffer_forward_delete_char(struct buffer *buffer) { + text_delete(buffer->text, buffer->dot_line, buffer->dot_col, 1); +} + void buffer_backward_delete_char(struct buffer *buffer) { - // TODO: merge lines - if (text_line_length(buffer->text, buffer->dot_line) == 0) { - text_delete_line(buffer->text, buffer->dot_line); - } else if (buffer->dot_col > 0) { - text_delete(buffer->text, buffer->dot_line, buffer->dot_col - 1, 1); - } moveh(buffer, -1); + buffer_forward_delete_char(buffer); } void buffer_backward_char(struct buffer *buffer) { moveh(buffer, -1); } -- cgit v1.2.3