From 7d956c533e9fd7d3bbb9a4a8b7f89f0fe54d4bc3 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Sun, 13 Apr 2025 22:43:46 +0200 Subject: first draft --- lib/src/csv.c | 74 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 37 insertions(+), 37 deletions(-) (limited to 'lib/src/csv.c') diff --git a/lib/src/csv.c b/lib/src/csv.c index e9c7464..ba78dbd 100644 --- a/lib/src/csv.c +++ b/lib/src/csv.c @@ -305,35 +305,35 @@ csv_read(csv_t *csv, FILE *in) csv_field_reset(&csv->csv_field); for ( int state = STATE_START_FIELD;; ) { - int ch; + int chr; switch ( state ) { case STATE_START_FIELD: csv_field_append(&csv->csv_field, csv->csv_string.pos, csv->csv_options); - ch = getc(in); - if ( ch == EOF ) { + chr = getc(in); + if ( chr == EOF ) { state = STATE_END_FILE; } - else if ( ch == '\r' ) { // test for CR.. - ch = getc(in); - if ( ch != '\n' ) { // ..LF - (void) ungetc(ch, in); + else if ( chr == '\r' ) { // test for CR.. + chr = getc(in); + if ( chr != '\n' ) { // ..LF + (void) ungetc(chr, in); } state = STATE_END_LINE; } - else if ( ch == '\n' ) { + else if ( chr == '\n' ) { state = STATE_END_LINE; } - else if ( ch == SEP ) { + else if ( chr == SEP ) { state = STATE_END_FIELD; } - else if ( ch == DELIM ) { + else if ( chr == DELIM ) { state = STATE_QUOTED_FIELD; } else { - if ( ch != '\0' ) { - csv_string_append(&csv->csv_string, ch, csv->csv_options); + if ( chr != '\0' ) { + csv_string_append(&csv->csv_string, chr, csv->csv_options); } state = STATE_SIMPLE_FIELD; } @@ -341,39 +341,39 @@ csv_read(csv_t *csv, FILE *in) case STATE_QUOTED_FIELD: do { - ch = getc(in); - if ( ch == EOF ) { + chr = getc(in); + if ( chr == EOF ) { state = STATE_END_FILE; } - else if ( ch == DELIM ) { - ch = getc(in); - if ( ch == EOF ) { + else if ( chr == DELIM ) { + chr = getc(in); + if ( chr == EOF ) { state = STATE_END_FILE; } - else if ( ch == DELIM ) { + else if ( chr == DELIM ) { csv_string_append(&csv->csv_string, DELIM, csv->csv_options); } - else if ( ch == SEP ) { + else if ( chr == SEP ) { state = STATE_END_FIELD; } - else if ( ch == '\r' ) { - ch = getc(in); - if ( ch != '\n' ) { - (void) ungetc(ch, in); + else if ( chr == '\r' ) { + chr = getc(in); + if ( chr != '\n' ) { + (void) ungetc(chr, in); } state = STATE_END_LINE; } - else if ( ch == '\n' ) { + else if ( chr == '\n' ) { state = STATE_END_LINE; } else { csv_string_append(&csv->csv_string, DELIM, csv->csv_options); - (void) ungetc(ch, in); // we have read too far... Put the character back! + (void) ungetc(chr, in); // we have read too far... Put the character back! } } else { - if ( ch != '\0' ) { - csv_string_append(&csv->csv_string, ch, csv->csv_options); + if ( chr != '\0' ) { + csv_string_append(&csv->csv_string, chr, csv->csv_options); } } } while ( state == STATE_QUOTED_FIELD ); @@ -381,26 +381,26 @@ csv_read(csv_t *csv, FILE *in) case STATE_SIMPLE_FIELD: do { - ch = getc(in); - if ( ch == EOF ) { + chr = getc(in); + if ( chr == EOF ) { state = STATE_END_FILE; } - else if ( ch == SEP ) { + else if ( chr == SEP ) { state = STATE_END_FIELD; } - else if ( ch == '\r' ) { - ch = getc(in); - if ( ch != '\n' ) { - (void) ungetc(ch, in); + else if ( chr == '\r' ) { + chr = getc(in); + if ( chr != '\n' ) { + (void) ungetc(chr, in); } state = STATE_END_LINE; } - else if ( ch == '\n' ) { + else if ( chr == '\n' ) { state = STATE_END_LINE; } else { - if ( ch != '\0' ) { - csv_string_append(&csv->csv_string, ch, csv->csv_options); + if ( chr != '\0' ) { + csv_string_append(&csv->csv_string, chr, csv->csv_options); } } } while ( state == STATE_SIMPLE_FIELD ); -- cgit v1.3