diff options
| -rw-r--r-- | src/dged/buffer.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/dged/buffer.c b/src/dged/buffer.c index 8b1f69c..78b89c8 100644 --- a/src/dged/buffer.c +++ b/src/dged/buffer.c @@ -366,10 +366,13 @@ void buffer_to_file(struct buffer *buffer) { } uint32_t nlines = text_num_lines(buffer->text); - struct text_chunk lastline = text_get_line(buffer->text, nlines - 1); - uint32_t nlines_to_write = lastline.nbytes == 0 ? nlines - 1 : nlines; + uint32_t nlines_to_write = nlines; + if (nlines > 0) { + struct text_chunk lastline = text_get_line(buffer->text, nlines - 1); + nlines_to_write = lastline.nbytes == 0 ? nlines - 1 : nlines; + text_for_each_line(buffer->text, 0, nlines_to_write, write_line, file); + } - text_for_each_line(buffer->text, 0, nlines_to_write, write_line, file); minibuffer_echo_timeout(4, "wrote %d lines to %s", nlines_to_write, buffer->filename); fclose(file); |
