rsys

Basic data structures and low-level features
git clone git://git.meso-star.fr/rsys.git
Log | Files | Refs | README | LICENSE

commit f5f93394a48918ca95dca2246895dd50768471c2
parent 69588af1bd539112218193a151eecb929375a4ff
Author: vaplv <vaplv@free.fr>
Date:   Tue,  8 Feb 2022 14:31:27 +0100

Fix the text_reader when the comment char is '\0'

Diffstat:
Msrc/test_text_reader.c | 15+++++++++++++++
Msrc/text_reader.c | 6+++---
Msrc/text_reader.h | 4++--
3 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/src/test_text_reader.c b/src/test_text_reader.c @@ -121,6 +121,21 @@ main(int argc, char** argv) CHK(txtrdr_get_line(txtrdr) == NULL); txtrdr_ref_put(txtrdr); + stream = freopen(filename, "w+", stream); + CHK(stream); + fprintf(stream, " AAAA\nbbb\n"); + rewind(stream); + CHK(txtrdr_stream(&allocator, stream, stream_name, 0, &txtrdr) == RES_OK); + CHK(txtrdr_read_line(txtrdr) == RES_OK); + CHK(txtrdr_get_line(txtrdr) != NULL); + CHK(!strcmp(txtrdr_get_line(txtrdr), " AAAA")); + CHK(txtrdr_read_line(txtrdr) == RES_OK); + CHK(txtrdr_get_line(txtrdr) != NULL); + CHK(!strcmp(txtrdr_get_line(txtrdr), "bbb")); + CHK(txtrdr_read_line(txtrdr) == RES_OK); + CHK(txtrdr_get_line(txtrdr) == NULL); + txtrdr_ref_put(txtrdr); + fclose(stream); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); diff --git a/src/text_reader.c b/src/text_reader.c @@ -83,9 +83,9 @@ txtrdr_stream txtrdr->allocator = allocator; txtrdr->stream = stream; txtrdr->nlines = 0; - txtrdr->reject[0] = comment; - txtrdr->reject[1] = '\n'; - txtrdr->reject[2] = '\r'; + txtrdr->reject[0] = '\n'; + txtrdr->reject[1] = '\r'; + txtrdr->reject[2] = comment; txtrdr->reject[3] = '\0'; /* Finalize the string */ res = str_set(&txtrdr->name, name ? name : "<null>"); diff --git a/src/text_reader.h b/src/text_reader.h @@ -27,7 +27,7 @@ RSYS_API res_T txtrdr_file (struct mem_allocator* allocator, /* May be NULL <=> default allocator */ const char* filename, - const char comment, /* Char preceeding a comment */ + const char comment, /* Char preceeding a comment. 0 <=> no comment char */ struct txtrdr** txtrdr); RSYS_API res_T @@ -35,7 +35,7 @@ txtrdr_stream (struct mem_allocator* allocator, /* May be NULL <=> default allocator */ FILE* stream, const char* name, /* Stream name. May be NULL */ - const char comment, /* Char preceeding a comment */ + const char comment, /* Char preceeding a comment. 0 <=> no comment char */ struct txtrdr** txtrdr); RSYS_API void