X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Fseq_read.c;h=1929b263f8400d392c4f93ee78b07e2861b57c1e;hb=43ae44731bc0732c894ba6dc7de2d2881c5888e0;hp=5707dae9643634f452dbeb4832814c933789e20b;hpb=d3ba09a465cb0e5fc9a74d0b152a7ed965f895cb;p=mmh diff --git a/sbr/seq_read.c b/sbr/seq_read.c index 5707dae..1929b26 100644 --- a/sbr/seq_read.c +++ b/sbr/seq_read.c @@ -7,6 +7,7 @@ ** complete copyright information. */ +#include #include #include @@ -54,9 +55,9 @@ seq_read(struct msgs *mp) static void seq_public(struct msgs *mp) { - int state; - char *cp, seqfile[PATH_MAX]; - char name[NAMESZ], field[BUFSIZ]; + enum state state; + struct field f = {{0}}; + char seqfile[PATH_MAX]; FILE *fp; /* @@ -73,41 +74,24 @@ seq_public(struct msgs *mp) return; /* Use m_getfld to scan sequence file */ - for (state = FLD;;) { - switch (state = m_getfld(state, name, field, sizeof(field), - fp)) { - case FLD: - case FLDPLUS: - case FLDEOF: - if (state == FLDPLUS) { - cp = getcpy(field); - while (state == FLDPLUS) { - state = m_getfld(state, name, field, - sizeof(field), fp); - cp = add(field, cp); - } - seq_init(mp, getcpy(name), trimcpy(cp)); - free(cp); - } else { - seq_init(mp, getcpy(name), trimcpy(field)); - } - if (state == FLDEOF) - break; + for (state = FLD2;;) { + switch (state = m_getfld2(state, &f, fp)) { + case FLD2: + seq_init(mp, getcpy(f.name), trimcpy(f.value)); continue; - case BODY: - case BODYEOF: - adios(NULL, "no blank lines are permitted in %s", + case BODY2: + adios(EX_CONFIG, NULL, "no blank lines are permitted in %s", seqfile); - /* fall */ + /* FALL */ - case FILEEOF: + case FILEEOF2: break; default: - adios(NULL, "%s is poorly formatted", seqfile); + adios(EX_CONFIG, NULL, "%s is poorly formatted", seqfile); } - break; /* break from for loop */ + break; } lkfclose(fp, seqfile); @@ -158,7 +142,8 @@ seq_private(struct msgs *mp) static int seq_init(struct msgs *mp, char *name, char *field) { - int i, j, k, is_current; + unsigned int i; + int j, k, is_current; char *cp, **ap; /*