]> git.pond.sub.org Git - empserver/commitdiff
(xufld, setstr): Improve diagnostics.
authorMarkus Armbruster <armbru@pond.sub.org>
Thu, 1 Jun 2006 18:06:03 +0000 (18:06 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Thu, 1 Jun 2006 18:06:03 +0000 (18:06 +0000)
src/lib/common/xundump.c

index f748609fe138147d979a9547447d8e8a47bb0f6e..8d9b32bb69f1fac4054e7eef0c83d306004770c5 100644 (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",