(xufld, setstr): Improve diagnostics.

This commit is contained in:
Markus Armbruster 2006-06-01 18:06:03 +00:00
parent 565b6630a2
commit 2faa68c6e3

View file

@ -221,8 +221,12 @@ xufld(FILE *fp, int i)
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 '.':
@ -532,7 +536,7 @@ setstr(int fldno, char *str)
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",