static int
xufld(FILE *fp, int i)
{
- int ch;
+ int ch, j;
char buf[1024];
double dbl;
long set;
return gripe("Unexpected EOF");
case '\n':
CANT_HAPPEN(i > nflds);
- if (i < nflds) {
- if (CA_IS_ARRAY(fldca[i]))
- return gripe("Field %s(%d) missing",
- fldca[i]->ca_name, fldidx[i]);
- return gripe("Field %s missing", fldca[i]->ca_name);
+ for (j = i; j < nflds; j++) {
+ if (CA_IS_ARRAY(fldca[j]))
+ gripe("Field %s(%d) missing",
+ fldca[j]->ca_name, fldidx[j]);
+ else
+ gripe("Field %s missing", fldca[j]->ca_name);
}
lineno++;
- return 0;
+ return i < nflds ? -1 : 0;
case '+': case '-': case '.':
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
tests/empdump/xundump-errors/fld-malstr:2: Malformed string in field 1
tests/empdump/xundump-errors/fld-many:2: Too many fields, expected only 6
tests/empdump/xundump-errors/fld-miss:2: Field name missing
-tests/empdump/xundump-errors/fld-miss2:2: Field ctype(0) missing
+tests/empdump/xundump-errors/fld-miss:2: Field mnem missing
+tests/empdump/xundump-errors/fld-miss:2: Field value missing
+tests/empdump/xundump-errors/fld-miss:2: Field sell missing
+tests/empdump/xundump-errors/fld-miss:2: Field lbs missing
+tests/empdump/xundump-errors/fld-miss:2: Field pkg(0) missing
+tests/empdump/xundump-errors/fld-miss:2: Field pkg(1) missing
+tests/empdump/xundump-errors/fld-miss:2: Field pkg(2) missing
+tests/empdump/xundump-errors/fld-miss:2: Field pkg(3) missing
+tests/empdump/xundump-errors/fld-miss:2: Field pkg(4) missing
+tests/empdump/xundump-errors/fld-miss:2: Field melt_denom missing
+tests/empdump/xundump-errors/fld-miss2:3: Field ctype(0) missing
tests/empdump/xundump-errors/fld-nonil:3: Field 19 doesn't take nil
tests/empdump/xundump-errors/fld-nonum:3: Field 2 doesn't take numbers
tests/empdump/xundump-errors/fld-nostr:3: Field 1 doesn't take strings