From 391720cb430ad74d01dacb1cd53c06d6283aba4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Wed, 5 Apr 2017 12:40:43 +0200 Subject: text: introduce text_char_get which converts \r\n to \n --- text.c | 5 +++++ text.h | 3 +++ 2 files changed, 8 insertions(+) diff --git a/text.c b/text.c index 390be98..b994bc4 100644 --- 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 index 8559b36..0e372c1 100644 --- 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. */ -- cgit v1.2.3