progress
This commit is contained in:
parent
55914bad9f
commit
3d37584065
@ -4,6 +4,8 @@
|
|||||||
#ifndef TERM_H
|
#ifndef TERM_H
|
||||||
#define TERM_H
|
#define TERM_H
|
||||||
|
|
||||||
|
#define TAB_SIZE 8
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
COMMAND_MODE,
|
COMMAND_MODE,
|
||||||
INSERT_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 screen_buffer_free(screen_buffer_t* buf);
|
||||||
|
|
||||||
|
void free_row(row_t* row);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* # free_editor_rows
|
* # free_editor_rows
|
||||||
*
|
*
|
||||||
@ -114,6 +118,8 @@ void free_editor_rows(void);
|
|||||||
|
|
||||||
void editor_render_row(row_t* row);
|
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);
|
void editor_add_row(const char* line, size_t len);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -133,7 +133,7 @@ void kill_application(void)
|
|||||||
|
|
||||||
screen_buffer_free(&screen_buffer);
|
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
|
if (row->render != NULL) // if the row is malloc'd we want to delete it
|
||||||
free(row->render);
|
free(row->render);
|
||||||
|
|
||||||
row->render = malloc(sizeof(char) * row->len);
|
row->render = malloc(sizeof(char) * row->len);
|
||||||
|
|
||||||
idx = 0;
|
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)
|
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));
|
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;
|
size_t idx = editor.num_rows;
|
||||||
|
|
||||||
create_row(&editor.rows[idx], len);
|
create_row(&editor.rows[idx], len);
|
||||||
|
|
||||||
memcpy(editor.rows[idx].line, line, 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++;
|
editor.num_rows++;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user