case EOF:
return gripe("Unexpected EOF");
case '\n':
- if (i != nflds)
+ if (i != nflds) {
+ if (fldca[i]->ca_type != NSC_STRINGY && fldca[i]->ca_len)
+ return gripe("Field %s(%d) missing",
+ fldca[i]->ca_name, fldidx[i]);
return gripe("Field %s missing", fldca[i]->ca_name);
+ }
lineno++;
return 0;
case '+': case '-': case '.':
if (CANT_HAPPEN(idx))
return -1;
if (!str)
- return gripe("Field doesn't take nil");
+ return gripe("Field %d doesn't take nil", fldno + 1);
len = ca->ca_len;
if (strlen(str) > len)
return gripe("Field %d takes at most %d characters",