diff --git a/c/cli/mlrcli.c b/c/cli/mlrcli.c index 2ac41bb0f..f5d930f69 100644 --- a/c/cli/mlrcli.c +++ b/c/cli/mlrcli.c @@ -370,11 +370,12 @@ static lhmsll_t* singleton_default_repeat_ipses = NULL; static lhmss_t* get_default_rses() { if (singleton_default_rses == NULL) { - -// xxx - singleton_default_rses = lhmss_alloc(); - lhmss_put(singleton_default_rses, "dkvp", "\n", NO_FREE); + +// xxx to do + + +// lhmss_put(singleton_default_rses, "dkvp", "\n", NO_FREE); lhmss_put(singleton_default_rses, "json", "\n", NO_FREE); lhmss_put(singleton_default_rses, "nidx", "\n", NO_FREE); lhmss_put(singleton_default_rses, "csv", "\r\n", NO_FREE); @@ -390,8 +391,7 @@ static lhmss_t* get_default_rses() { lhmss_put(singleton_default_rses, "pprint", "\n", NO_FREE); lhmss_put(singleton_default_rses, "xtab", "(N/A)", NO_FREE); -// singleton_default_rses = lhmss_alloc(); -// lhmss_put(singleton_default_rses, "dkvp", "auto", NO_FREE); + lhmss_put(singleton_default_rses, "dkvp", "auto", NO_FREE); // lhmss_put(singleton_default_rses, "json", "auto", NO_FREE); // lhmss_put(singleton_default_rses, "nidx", "auto", NO_FREE); // lhmss_put(singleton_default_rses, "csv", "auto", NO_FREE); diff --git a/c/dsl/rval_expr_evaluators.c b/c/dsl/rval_expr_evaluators.c index c95361e33..974e5acd8 100644 --- a/c/dsl/rval_expr_evaluators.c +++ b/c/dsl/rval_expr_evaluators.c @@ -809,7 +809,13 @@ rval_evaluator_t* rval_evaluator_alloc_from_IFS() { // ---------------------------------------------------------------- mv_t rval_evaluator_IRS_func(void* pvstate, variables_t* pvars) { - return mv_from_string_no_free(pvars->pctx->irs); + //xxx temp return mv_from_string_no_free(pvars->pctx->irs); + context_t* pctx = pvars->pctx; + return mv_from_string_no_free( + pctx->auto_line_term_detected + ? pctx->auto_line_term + : pctx->irs + ); } static void rval_evaluator_IRS_free(rval_evaluator_t* pevaluator) { free(pevaluator); @@ -854,7 +860,14 @@ rval_evaluator_t* rval_evaluator_alloc_from_OFS() { // ---------------------------------------------------------------- mv_t rval_evaluator_ORS_func(void* pvstate, variables_t* pvars) { - return mv_from_string_no_free(pvars->pctx->ors); + // xxx auto line term ... + //return mv_from_string_no_free(pvars->pctx->ors); + context_t* pctx = pvars->pctx; + return mv_from_string_no_free( + pctx->auto_line_term_detected + ? pctx->auto_line_term + : pctx->ors + ); } static void rval_evaluator_ORS_free(rval_evaluator_t* pevaluator) { free(pevaluator); diff --git a/c/mlrmain.c b/c/mlrmain.c index ff86a3fc5..08bffca8c 100644 --- a/c/mlrmain.c +++ b/c/mlrmain.c @@ -37,7 +37,8 @@ int main(int argc, char** argv) { .ops = popts->writer_opts.ops, .ofs = popts->writer_opts.ofs, .ors = popts->writer_opts.ors, - .auto_line_term = popts->reader_opts.irs, + .auto_line_term = "\n", // xxx Windows default "\r\n"; libify + .auto_line_term_detected = FALSE, }; int ok = do_stream_chained(prepipe, filenames, plrec_reader, pmapper_list, plrec_writer, &ctx, popts); diff --git a/c/output/lrec_writer_dkvp.c b/c/output/lrec_writer_dkvp.c index 2a5b2539b..6f90ff6e7 100644 --- a/c/output/lrec_writer_dkvp.c +++ b/c/output/lrec_writer_dkvp.c @@ -22,11 +22,11 @@ lrec_writer_t* lrec_writer_dkvp_alloc(char* ors, char* ofs, char* ops) { pstate->ofs = ofs; pstate->ops = ops; - plrec_writer->pvstate = (void*)pstate; + plrec_writer->pvstate = (void*)pstate; plrec_writer->pprocess_func = streq(ors, "auto") ? lrec_writer_dkvp_process_auto_ors : lrec_writer_dkvp_process_nonauto_ors; - plrec_writer->pfree_func = lrec_writer_dkvp_free; + plrec_writer->pfree_func = lrec_writer_dkvp_free; return plrec_writer; }