diff options
| author | Albert Cervin <albert@acervin.com> | 2023-02-15 23:58:11 +0100 |
|---|---|---|
| committer | Albert Cervin <albert@acervin.com> | 2023-02-15 23:58:11 +0100 |
| commit | 299adadc65c24ead32e966bb2615e735867c1a68 (patch) | |
| tree | 5f565bbaf1ad8a2a861188f913bfa384155ce606 | |
| parent | bc523197ecbfc094455287d9eb036a2727bca684 (diff) | |
| download | dged-299adadc65c24ead32e966bb2615e735867c1a68.tar.gz dged-299adadc65c24ead32e966bb2615e735867c1a68.tar.xz dged-299adadc65c24ead32e966bb2615e735867c1a68.zip | |
Fix newline handling again
| -rw-r--r-- | src/text.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -212,8 +212,7 @@ void new_line_at(struct text *text, uint32_t line, uint32_t col) { ensure_line(text, line); uint32_t newline = line + 1; - bool has_newline = col < text->lines[line].nchars || newline < text->nlines; - append_empty_lines(text, has_newline ? 1 : 0); + append_empty_lines(text, 1); mark_lines_changed(text, line, text->nlines - line); @@ -269,7 +268,10 @@ void text_insert_at(struct text *text, uint32_t line, uint32_t col, insert_at(text, line, col, line_data, linelen, nchars); col += nchars; - if (linelen == 0 || col < text_line_length(text, line)) { + + // only insert a newline if we have to + if (linelen == 0 || col < text_line_length(text, line) || + line + 1 < text->nlines) { new_line_at(text, line, col); } |
