- for (state = FLD, bp = NULL;;) {
- switch (state = m_getfld(state, name, buf, sizeof buf, fp)) {
- case FLD:
- case FLDEOF:
- case FLDPLUS:
- if (bp != NULL) {
- free(bp);
- bp = NULL;
- }
- bp = getcpy(buf);
- while (state == FLDPLUS) {
- state = m_getfld(state, name, buf,
- sizeof buf, fp);
- bp = add(buf, bp);
+ for (state = FLD2, bp = NULL;;) {
+ switch (state = m_getfld2(state, &f, fp)) {
+ case LENERR2:
+ state = FLD2;
+ /* FALL */
+
+ case FLD2:
+ if (bp) {
+ mh_free0(&bp);