summaryrefslogtreecommitdiff
path: root/src/dged
diff options
context:
space:
mode:
Diffstat (limited to 'src/dged')
-rw-r--r--src/dged/buffer.c9
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);