From d4021068c832400dc4d8e9ef0a1dcb81db141a7c Mon Sep 17 00:00:00 2001 From: Rockingcool Date: Sat, 22 Apr 2023 14:14:35 -0500 Subject: [PATCH] Added 'Delete' key functionality --- editor.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/editor.c b/editor.c index 22e7da2..ea0e79f 100644 --- a/editor.c +++ b/editor.c @@ -61,13 +61,20 @@ void buffer_insert(char ch, Buffer* buffer) { } } -void buffer_delete(Buffer* buffer) { +void buffer_delete_front(Buffer* buffer) { if (buffer->start != buffer->text) { buffer->start--; buffer->gap_size++; } } +void buffer_delete_back(Buffer* buffer) { + if (buffer->end != buffer->text + buffer->size) { + buffer->end++; + buffer->gap_size++; + } +} + void buffer_right(Buffer* buffer) { if (buffer->end != buffer->text + buffer->size) { char c = *(buffer->end); @@ -248,7 +255,11 @@ int main(int argc, char** argv) { switch(ch) { case KEY_BACKSPACE: - buffer_delete(buffer); + buffer_delete_front(buffer); + break; + + case KEY_DC: + buffer_delete_back(buffer); break; case KEY_LEFT: