diff --git a/editor.c b/editor.c index af54d04..fc6787c 100644 --- a/editor.c +++ b/editor.c @@ -27,13 +27,14 @@ Buffer* new_buffer(int size) { void buffer_grow(Buffer* buffer) { int start_offset = buffer->start - buffer->text; - buffer->size *= 2; + buffer->size += 10; buffer->text = realloc(buffer->text,buffer->size); buffer->start = buffer->text + start_offset; buffer->gap_size = 10; - for (int i=strlen(buffer->text)-1; i > (buffer->start - buffer->text); i--) { - *(buffer->text + i + buffer->gap_size) = *(buffer->start + i); +// for (int i=strlen(buffer->text)-1; i > (buffer->start - buffer->text); i--) { + for (int i=0; i < (strlen(buffer->text) - start_offset); i++) { + *(buffer->start + i + buffer->gap_size) = *(buffer->start + i); *(buffer->start + i) = 0; } @@ -99,7 +100,7 @@ int main() { if (buffer->start != buffer->text) { /* We don't want to print the string, if the gap starts at the first index of the string */ - while (i < strlen(buffer->text)) { + while (i < buffer->size) { addch(*(buffer->text + i)); i++; if ((buffer->start - buffer->text) == i) { /* If we have encountered