From 0e2b1e5fd4bc006ae9da79ff9484d8e505cf8f9a Mon Sep 17 00:00:00 2001 From: John Kerl Date: Wed, 1 Feb 2017 08:11:38 -0500 Subject: [PATCH] autodetect iterate: default-auto per format --- c/cli/mlrcli.c | 4 ++-- c/output/lrec_writer_csv.c | 9 +++++---- c/todo.txt | 2 ++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/c/cli/mlrcli.c b/c/cli/mlrcli.c index f9344cb71..1245d94ab 100644 --- a/c/cli/mlrcli.c +++ b/c/cli/mlrcli.c @@ -384,8 +384,8 @@ static lhmss_t* get_default_rses() { // lhmss_put(singleton_default_rses, "nidx", "\n", NO_FREE); lhmss_put(singleton_default_rses, "nidx", "auto", NO_FREE); -// char* csv_rs = "\r\n"; - char* csv_rs = "auto"; + char* csv_rs = "\r\n"; +// char* csv_rs = "auto"; char* env_default = getenv("MLR_CSV_DEFAULT_RS"); if (env_default != NULL && !streq(env_default, "")) csv_rs = cli_sep_from_arg(env_default); diff --git a/c/output/lrec_writer_csv.c b/c/output/lrec_writer_csv.c index 3c3e3fa64..159121610 100644 --- a/c/output/lrec_writer_csv.c +++ b/c/output/lrec_writer_csv.c @@ -56,11 +56,11 @@ lrec_writer_t* lrec_writer_csv_alloc(char* ors, char* ofs, quoting_t oquoting, i pstate->num_header_lines_output = 0LL; pstate->plast_header_output = NULL; - plrec_writer->pvstate = (void*)pstate; + plrec_writer->pvstate = (void*)pstate; plrec_writer->pprocess_func = streq(ors, "auto") ? lrec_writer_csv_process_auto_ors : lrec_writer_csv_process_nonauto_ors; - plrec_writer->pfree_func = lrec_writer_csv_free; + plrec_writer->pfree_func = lrec_writer_csv_free; return plrec_writer; } @@ -87,6 +87,7 @@ static void lrec_writer_csv_process(void* pvstate, FILE* output_stream, lrec_t* return; lrec_writer_csv_state_t* pstate = pvstate; char *ofs = pstate->ofs; + int orslen = strlen(ors); if (pstate->plast_header_output != NULL) { if (!lrec_keys_equal_list(prec, pstate->plast_header_output)) { @@ -104,7 +105,7 @@ static void lrec_writer_csv_process(void* pvstate, FILE* output_stream, lrec_t* if (nf > 0) fputs(ofs, output_stream); pstate->pquoted_output_func(output_stream, pe->key, pstate->ors, pstate->ofs, - pstate->orslen, pstate->ofslen, 0); + orslen, pstate->ofslen, 0); nf++; } fputs(ors, output_stream); @@ -118,7 +119,7 @@ static void lrec_writer_csv_process(void* pvstate, FILE* output_stream, lrec_t* if (nf > 0) fputs(ofs, output_stream); pstate->pquoted_output_func(output_stream, pe->value, pstate->ors, pstate->ofs, - pstate->orslen, pstate->ofslen, pe->quote_flags); + orslen, pstate->ofslen, pe->quote_flags); nf++; } fputs(ors, output_stream); diff --git a/c/todo.txt b/c/todo.txt index 1fb0b4fe0..ab07a5ce8 100644 --- a/c/todo.txt +++ b/c/todo.txt @@ -63,8 +63,10 @@ AUTOTERM ! input/lrec_reader_mmap_xtab.c - needs ifs=auto -> ifs=auto transmutate @ caller + mlr --csv --ors auto cat reg_test/input/rfc-csv/quoted-crlf.csv ! input/lrec_reader_stdio_xtab.c - needs ifs=auto -> ifs=auto transmutate @ caller + mlr --csv --ors auto cat < reg_test/input/rfc-csv/quoted-crlf.csv k input/lrec_reader_mmap_csv.c