diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2016-02-21 10:05:34 +0100 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2016-02-21 10:05:34 +0100 |
| commit | b8938fe1d099d1b5b6ceecda6668b879e6a49298 (patch) | |
| tree | bb539171afa6d9bb90cad92fc4822db0f0cc9ce4 /text.c | |
| parent | b56c629d8200b891bcf6822cfa4425ccc9849567 (diff) | |
| download | vis-b8938fe1d099d1b5b6ceecda6668b879e6a49298.tar.gz vis-b8938fe1d099d1b5b6ceecda6668b879e6a49298.tar.xz | |
Cleanup new line insertion code
Diffstat (limited to 'text.c')
| -rw-r--r-- | text.c | 21 |
1 files changed, 12 insertions, 9 deletions
@@ -665,15 +665,10 @@ bool text_vprintf(Text *txt, size_t pos, const char *format, va_list ap) { return ret; } -bool text_insert_newline(Text *txt, size_t pos) { - switch (text_newline_type(txt)) { - case TEXT_NEWLINE_NL: - return text_insert(txt, pos, "\n", 1); - case TEXT_NEWLINE_CRNL: - return text_insert(txt, pos, "\r\n", 2); - default: - return false; - } +size_t text_insert_newline(Text *txt, size_t pos) { + const char *data = text_newline_char(txt); + size_t len = strlen(data); + return text_insert(txt, pos, data, len) ? len : 0; } static size_t action_undo(Text *txt, Action *a) { @@ -1265,6 +1260,14 @@ enum TextNewLine text_newline_type(Text *txt){ return txt->newlines; } +const char *text_newline_char(Text *txt) { + static const char *types[] = { + [TEXT_NEWLINE_NL] = "\n", + [TEXT_NEWLINE_CRNL] = "\r\n", + }; + return types[text_newline_type(txt)]; +} + static bool text_iterator_init(Iterator *it, size_t pos, Piece *p, size_t off) { *it = (Iterator){ .pos = pos, |
