From 6917ea6cc1747d69ba6481647c1fc0e0525e2c70 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Tue, 23 Jun 2020 21:31:17 +0200 Subject: kleinere Überarbeitungen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- csv.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/csv.c b/csv.c index 740dcb1..863d31d 100644 --- a/csv.c +++ b/csv.c @@ -479,18 +479,23 @@ csv_write(FILE *out, const csv_t * const csv) const char SEP = csv->csv_options->field_separator; + if ( 0 < csv->csv_field.pos ) { - csv_write_field(out, csv_field(csv, 0), csv->csv_options); + const char *str = csv->csv_string.str; + const int *field = csv->csv_field.fields; + + csv_write_field(out, &str[*field++], csv->csv_options); for ( int i = 1; i < csv->csv_field.pos; ++i ) { putc(SEP, out); - csv_write_field(out, csv_field(csv, i), csv->csv_options); + csv_write_field(out, &str[*field++], csv->csv_options); } } - fprintf(out, "\r\n"); + putc('\r', out); + putc('\n', out); if ( ferror(out) ) { - csv_fatal_error(CSV_ERR_IO_WRITE, csv_options); + csv_fatal_error(CSV_ERR_IO_WRITE, csv->csv_options); } } @@ -517,7 +522,8 @@ csv_write_ex(FILE *out, int n, const char *fields[], const csv_options_t * csv_o csv_write_field(out, *fields, csv_options); } } - fprintf(out, "\r\n"); + putc('\r', out); + putc('\n', out); if ( ferror(out) ) { csv_fatal_error(CSV_ERR_IO_WRITE, csv_options); -- cgit v1.3