mirror of
https://github.com/johnkerl/miller.git
synced 2026-08-02 04:22:59 +00:00
autodetect iterate: default-auto per format
This commit is contained in:
parent
da63dac8ac
commit
62b3f7b3ee
4 changed files with 25 additions and 11 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue