diff options
Diffstat (limited to 'src/zdab-cat.c')
-rw-r--r-- | src/zdab-cat.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/zdab-cat.c b/src/zdab-cat.c index 7b0b714..12729d2 100644 --- a/src/zdab-cat.c +++ b/src/zdab-cat.c @@ -155,26 +155,18 @@ int main(int argc, char **argv) break; } - rv = zebra_get_bank(f, &bmast, f->first_bank); + if (f->mast_bank == -1) { + fprintf(stderr, "no MAST bank in logical record! Skipping...\n"); + continue; + } + + rv = zebra_get_bank(f, &bmast, f->mast_bank); if (rv) { fprintf(stderr, "error getting MAST bank: %s\n", zebra_err); goto err; } - if (!strncmp(bmast.name,"MAST",4)) { - ; - } else if (!strncmp(bmast.name,"ZDAB",4)) { - /* Not sure why, but occasionally some of the zdabs output by - * SNOMAN have logical records which start with a ZDAB record - * instead of a MAST record. */ - continue; - } else { - continue; - fprintf(stderr, "logical record starts with unknown bank '%s'\n", bmast.name); - goto err; - } - if (bmast.links[KMAST_EV-1] == 0) { /* First logical record in SNOCR files doesn't have an EV bank. */ continue; @@ -365,7 +357,7 @@ skip_event: /* Note the origin link for the first EV bank points back to the * structural link location in the MAST bank. These links are super * confusing! */ - if ((b.orig == f->first_bank - KMAST_EV) || skip_second_event) break; + if ((b.orig == f->mast_bank - KMAST_EV) || skip_second_event) break; rv = zebra_get_bank(f,&b,b.orig); |