Almost finish editing
This commit is contained in:
parent
165eea1844
commit
01dbed5e6c
2 changed files with 20 additions and 4 deletions
|
@ -96,7 +96,7 @@ END:
|
|||
|
||||
void buffer_insert_row(struct buffer *buffer, const char *chars, int n_chars, int at) { // TODO: Make this take an erow
|
||||
buffer->rows = realloc(buffer->rows, sizeof(struct erow) * (buffer->n_rows + 1));
|
||||
memmove(buffer->rows + at, buffer->rows + at + 1, sizeof(struct erow) * (buffer->n_rows - at));
|
||||
memmove(buffer->rows + at + 1, buffer->rows + at, sizeof(struct erow) * (buffer->n_rows - at));
|
||||
struct erow *erow = buffer->rows + at;
|
||||
|
||||
erow->chars = malloc(n_chars);
|
||||
|
|
|
@ -70,11 +70,27 @@ void command_move_cursor(KEY key) {
|
|||
cursor_adjust_viewport();
|
||||
}
|
||||
|
||||
// TODO: Improve this
|
||||
void command_insert_line(void) {
|
||||
buffer_insert_row(E.current_buf, NULL, 0, ++E.cy);
|
||||
if (E.cy == E.current_buf->n_rows) {
|
||||
buffer_insert_row(E.current_buf, NULL, 0, E.cy);
|
||||
E.cy++;
|
||||
} else {
|
||||
buffer_insert_row(E.current_buf, NULL, 0, E.cy + 1);
|
||||
|
||||
struct erow *c_row = E.current_buf->rows + E.cy;
|
||||
struct erow *n_row = E.current_buf->rows + E.cy + 1;
|
||||
|
||||
erow_append_string(n_row, c_row->chars + E.cx, c_row->n_chars - E.cx);
|
||||
|
||||
c_row->chars = realloc(c_row->chars, E.cx);
|
||||
c_row->n_chars = E.cx;
|
||||
erow_update_rendering(c_row);
|
||||
|
||||
E.cx = 0;
|
||||
E.rx = 0;
|
||||
E.cy++;
|
||||
}
|
||||
}
|
||||
|
||||
void command_insert_char(char c) {
|
||||
|
|
Reference in a new issue