This commit is contained in:
John Kerl 2021-05-03 00:18:35 -04:00
parent eb0044b8a6
commit 7dc5e134ff

View file

@ -243,101 +243,3 @@ static sllv_t* mapper_reorder_after(lrec_t* pinrec, context_t* pctx, void* pvsta
return sllv_single(NULL);
}
}
// ----------------------------------------------------------------
static sllv_t* mapper_reorder_before(lrec_t* pinrec, context_t* pctx, void* pvstate) {
mapper_reorder_state_t* pstate = (mapper_reorder_state_t*)pvstate;
if (pinrec != NULL) {
char* bvalue = lrec_get(pinrec, pstate->before_field_name);
if (bvalue == NULL) {
return sllv_single(pinrec);
}
lrec_t* poutrec = lrec_unbacked_alloc();
lrece_t* pe = pinrec->phead;
for (; pe != NULL; pe = pe->pnext) {
if (streq(pe->key, pstate->before_field_name)) {
break;
}
if (!hss_has(pstate->pfield_name_set, pe->key)) {
lrec_put(poutrec, mlr_strdup_or_die(pe->key), mlr_strdup_or_die(pe->value),
FREE_ENTRY_KEY|FREE_ENTRY_VALUE);
}
}
for (sllse_t* pf = pstate->pfield_name_list->phead; pf != NULL; pf = pf->pnext) {
char* field_name = pf->value;
char* value = lrec_get(pinrec, field_name);
if (value != NULL) {
lrec_put(poutrec, field_name, mlr_strdup_or_die(value), FREE_ENTRY_VALUE);
}
}
lrec_put(poutrec, pstate->before_field_name, mlr_strdup_or_die(bvalue), FREE_ENTRY_VALUE);
for (; pe != NULL; pe = pe->pnext) {
if (streq(pe->key, pstate->before_field_name)) {
continue;
}
if (!hss_has(pstate->pfield_name_set, pe->key)) {
lrec_put(poutrec, mlr_strdup_or_die(pe->key), mlr_strdup_or_die(pe->value),
FREE_ENTRY_KEY|FREE_ENTRY_VALUE);
}
}
lrec_free(pinrec);
return sllv_single(poutrec);
} else {
return sllv_single(NULL);
}
}
// ----------------------------------------------------------------
static sllv_t* mapper_reorder_after(lrec_t* pinrec, context_t* pctx, void* pvstate) {
mapper_reorder_state_t* pstate = (mapper_reorder_state_t*)pvstate;
if (pinrec != NULL) {
char* avalue = lrec_get(pinrec, pstate->after_field_name);
if (avalue == NULL) {
return sllv_single(pinrec);
}
lrec_t* poutrec = lrec_unbacked_alloc();
lrece_t* pe = pinrec->phead;
for (; pe != NULL; pe = pe->pnext) {
if (streq(pe->key, pstate->after_field_name)) {
break;
}
if (!hss_has(pstate->pfield_name_set, pe->key)) {
lrec_put(poutrec, mlr_strdup_or_die(pe->key), mlr_strdup_or_die(pe->value),
FREE_ENTRY_KEY|FREE_ENTRY_VALUE);
}
}
lrec_put(poutrec, pstate->after_field_name, mlr_strdup_or_die(avalue), FREE_ENTRY_VALUE);
for (sllse_t* pf = pstate->pfield_name_list->phead; pf != NULL; pf = pf->pnext) {
char* field_name = pf->value;
char* value = lrec_get(pinrec, field_name);
if (value != NULL) {
lrec_put(poutrec, field_name, mlr_strdup_or_die(value), FREE_ENTRY_VALUE);
}
}
for (; pe != NULL; pe = pe->pnext) {
if (streq(pe->key, pstate->after_field_name)) {
continue;
}
if (!hss_has(pstate->pfield_name_set, pe->key)) {
lrec_put(poutrec, mlr_strdup_or_die(pe->key), mlr_strdup_or_die(pe->value),
FREE_ENTRY_KEY|FREE_ENTRY_VALUE);
}
}
lrec_free(pinrec);
return sllv_single(poutrec);
} else {
return sllv_single(NULL);
}
}