diff --git a/src/lib/common/xundump.c b/src/lib/common/xundump.c index f748609f..8d9b32bb 100644 --- a/src/lib/common/xundump.c +++ b/src/lib/common/xundump.c @@ -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",