From 3d37584065f2976e282eee5d900c0ca235eb68c1 Mon Sep 17 00:00:00 2001 From: SuperNovaa41 Date: Thu, 16 Jan 2025 09:27:12 -0500 Subject: [PATCH] progress --- src/include/term.h | 6 ++++++ src/term.c | 9 +++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/include/term.h b/src/include/term.h index 4f67ee3..ae1a2c0 100644 --- a/src/include/term.h +++ b/src/include/term.h @@ -4,6 +4,8 @@ #ifndef TERM_H #define TERM_H +#define TAB_SIZE 8 + typedef enum { COMMAND_MODE, INSERT_MODE, @@ -104,6 +106,8 @@ int screen_buffer_append(const char* in, size_t len); */ void screen_buffer_free(screen_buffer_t* buf); +void free_row(row_t* row); + /** * # free_editor_rows * @@ -114,6 +118,8 @@ void free_editor_rows(void); void editor_render_row(row_t* row); +void create_row(row_t* row, size_t len); + void editor_add_row(const char* line, size_t len); #endif diff --git a/src/term.c b/src/term.c index fec3049..f56d1fc 100644 --- a/src/term.c +++ b/src/term.c @@ -133,7 +133,7 @@ void kill_application(void) screen_buffer_free(&screen_buffer); - free_editor_row(); + free_editor_rows(); } @@ -178,6 +178,7 @@ void editor_render_row(row_t* row) if (row->render != NULL) // if the row is malloc'd we want to delete it free(row->render); + row->render = malloc(sizeof(char) * row->len); idx = 0; @@ -200,16 +201,16 @@ void create_row(row_t* row, size_t len) void editor_add_row(const char* line, size_t len) { - // Need to add space for another row editor.rows = realloc(editor.rows, sizeof(row_t) * (editor.num_rows + 1)); - // Set len and malloc space for the incoming line +1 for \0 size_t idx = editor.num_rows; create_row(&editor.rows[idx], len); memcpy(editor.rows[idx].line, line, len); - editor.rows[idx].line[len] = '\0'; // need to null terminate it + editor.rows[idx].line[len] = '\0'; + + editor_render_row(&editor.rows[idx]); editor.num_rows++; }