=================================================================== RCS file: /cvs/mandoc/Attic/action.c,v retrieving revision 1.7 retrieving revision 1.9 diff -u -p -r1.7 -r1.9 --- mandoc/Attic/action.c 2009/01/12 12:52:21 1.7 +++ mandoc/Attic/action.c 2009/01/16 12:23:25 1.9 @@ -1,4 +1,4 @@ -/* $Id: action.c,v 1.7 2009/01/12 12:52:21 kristaps Exp $ */ +/* $Id: action.c,v 1.9 2009/01/16 12:23:25 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -203,12 +203,12 @@ post_dt(struct mdoc *mdoc) case (0): if (xstrlcpy(mdoc->meta.title, p, sz)) break; - return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM)); + return(mdoc_nerr(mdoc, n, "badly-formed manual title parameter")); case (1): mdoc->meta.msec = mdoc_atomsec(p); if (MSEC_DEFAULT != mdoc->meta.msec) break; - return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM)); + return(mdoc_nerr(mdoc, n, "badly-formed manual section parameter")); case (2): mdoc->meta.vol = mdoc_atovol(p); if (VOL_DEFAULT != mdoc->meta.vol) @@ -216,9 +216,9 @@ post_dt(struct mdoc *mdoc) mdoc->meta.arch = mdoc_atoarch(p); if (ARCH_DEFAULT != mdoc->meta.arch) break; - return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM)); + return(mdoc_nerr(mdoc, n, "badly-formed manual volume parameter")); default: - return(mdoc_err(mdoc, ERR_ARGS_MANY)); + return(mdoc_nerr(mdoc, n, "too many parameters")); } } @@ -246,9 +246,9 @@ post_os(struct mdoc *mdoc) p = n->data.text.string; if ( ! xstrlcat(mdoc->meta.os, p, sz)) - return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM)); + return(mdoc_nerr(mdoc, n, "badly-formed manual system parameter")); if ( ! xstrlcat(mdoc->meta.os, " ", sz)) - return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM)); + return(mdoc_nerr(mdoc, n, "badly-formed manual system parameter")); } if (0 == mdoc->meta.os[0]) @@ -281,7 +281,7 @@ post_dd(struct mdoc *mdoc) assert(MDOC_TEXT == n->type); p = n->data.text.string; - if (xstrcmp(p, "$Mdocdate: January 12 2009 $")) { + if (xstrcmp(p, "$Mdocdate: January 16 2009 $")) { mdoc->meta.date = time(NULL); continue; } else if (xstrcmp(p, "$")) { @@ -291,18 +291,25 @@ post_dd(struct mdoc *mdoc) continue; if ( ! xstrlcat(date, n->data.text.string, sz)) - return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM)); - if ( ! xstrlcat(date, " ", sz)) - return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM)); + return(mdoc_nerr(mdoc, n, "badly-formed manual date parameter")); + if (n->next && ! xstrlcat(date, " ", sz)) + return(mdoc_nerr(mdoc, n, "badly-formed manual date parameter")); } if (mdoc->meta.date && NULL == n) { mdoc_msg(mdoc, "parsed time: %u since epoch", mdoc->meta.date); return(1); + } else if (n) + return(mdoc_err(mdoc, "badly-formed manual date")); + + if ((mdoc->meta.date = mdoc_atotime(date))) { + mdoc_msg(mdoc, "parsed time: %u since epoch", + mdoc->meta.date); + return(1); } - return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM)); + return(mdoc_err(mdoc, "badly-formed manual date")); }