static int
process(char *file)
{
- int state, compnum;
- char *cp = NULL;
- char buf[BUFSIZ], name[NAMESZ];
+ enum state state;
+ struct field f = free_field;
+ int compnum;
FILE *in;
adios(EX_IOERR, file, "unable to open");
}
- for (compnum = 1, state = FLD;;) {
- switch (state = m_getfld(state, name, buf, sizeof(buf), in)) {
- case FLD:
- compnum++;
- proc_hdr(name, buf);
+ for (compnum=1, state=FLD2;; compnum++) {
+ switch (state = m_getfld2(state, &f, in)) {
+ case FLD2:
+ proc_hdr(f.name, f.value);
continue;
- case FLDPLUS:
- compnum++;
- cp = getcpy(buf);
- while (state == FLDPLUS) {
- state = m_getfld(state, name, buf,
- sizeof(buf), in);
- cp = add(buf, cp);
- }
- proc_hdr(name, cp);
- free(cp);
- continue;
-
- case BODY:
- case FILEEOF:
+ case BODY2:
+ case FILEEOF2:
break;
- case LENERR:
- case FMTERR:
+ case LENERR2:
+ case FMTERR2:
+ case IOERR2:
adios(EX_DATAERR, NULL, "message format error in component #%d",
compnum);