diff options
| author | Albert Cervin <albert@acervin.com> | 2022-11-18 10:55:49 +0100 |
|---|---|---|
| committer | Albert Cervin <albert@acervin.com> | 2022-11-25 23:09:13 +0100 |
| commit | c40a1cfa0f1ecfddac06c7143c2dd974126ddad3 (patch) | |
| tree | 95410887b40166226e2c86001eb923cc51d8373d /src/buffer.c | |
| parent | 2f4cb88d5c60f725323739300bb49dfa8923e7d5 (diff) | |
| download | dged-c40a1cfa0f1ecfddac06c7143c2dd974126ddad3.tar.gz dged-c40a1cfa0f1ecfddac06c7143c2dd974126ddad3.tar.xz dged-c40a1cfa0f1ecfddac06c7143c2dd974126ddad3.zip | |
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.
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 11 |
1 files changed, 5 insertions, 6 deletions
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); } |
