vis

a vi-like editor based on Plan 9's structural regular expressions

git clone https://9o.is/git/vis.git

commit 6ae6def7ace568140dfc1885c09d6fe90b9ad9f5
parent 632d8c4ccc7e54090c72855a0de54f41d893e0b8
Author: Marc André Tanner <mat@brain-dump.org>
Date:   Wed,  5 Apr 2017 12:40:43 +0200

text: introduce text_char_get which converts \r\n to \n

Diffstat:
Mtext.c | 5+++++
Mtext.h | 3+++
2 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/text.c b/text.c @@ -1548,6 +1548,11 @@ bool text_byte_get(Text *txt, size_t pos, char *buf) { return text_bytes_get(txt, pos, 1, buf); } +bool text_char_get(Text *txt, size_t pos, char *buf) { + Iterator it = text_iterator_get(txt, pos); + return text_iterator_char_get(&it, buf); +} + size_t text_bytes_get(Text *txt, size_t pos, size_t len, char *buf) { if (!buf) return 0; diff --git a/text.h b/text.h @@ -70,6 +70,9 @@ size_t text_lineno_by_pos(Text*, size_t pos); /* set `buf' to the byte found at `pos' and return true, if `pos' is invalid * false is returned and `buf' is left unmodified */ bool text_byte_get(Text*, size_t pos, char *buf); +/* same as byte get, but if a sequence of '\r\n' is read at `pos', + * `buf` is set to \n instead of \r. */ +bool text_char_get(Text*, size_t pos, char *buf); /* store at most `len' bytes starting from `pos' into `buf', the return value * indicates how many bytes were copied into `buf'. WARNING buf will not be * NUL terminated. */