From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from krisdoz.my.domain (schwarze@localhost [127.0.0.1]) by krisdoz.my.domain (8.14.5/8.14.5) with ESMTP id s5KHO0dk018470 for ; Fri, 20 Jun 2014 13:24:00 -0400 (EDT) Received: (from schwarze@localhost) by krisdoz.my.domain (8.14.5/8.14.3/Submit) id s5KHO00C007819; Fri, 20 Jun 2014 13:24:00 -0400 (EDT) Date: Fri, 20 Jun 2014 13:24:00 -0400 (EDT) Message-Id: <201406201724.s5KHO00C007819@krisdoz.my.domain> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: schwarze@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: Start systematic improvements of error reporting. X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- Start systematic improvements of error reporting. So far, this covers all WARNINGs related to the prologue. 1) hierarchical naming of MANDOCERR_* constants 2) mention the macro name in messages where that adds clarity 3) add one missing MANDOCERR_DATE_MISSING msg 4) fix the wording of one message related to the man(7) prologue Started on the plane back from Ottawa. Modified Files: -------------- mdocml: man_validate.c mandoc.c mandoc.h mdoc.c mdoc_validate.c read.c Revision Data ------------- Index: mandoc.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mandoc.c,v retrieving revision 1.79 retrieving revision 1.80 diff -Lmandoc.c -Lmandoc.c -u -p -r1.79 -r1.80 --- mandoc.c +++ mandoc.c @@ -509,14 +509,14 @@ mandoc_normdate(struct mparse *parse, ch if (NULL == in || '\0' == *in || 0 == strcmp(in, "$" "Mdocdate$")) { - mandoc_msg(MANDOCERR_NODATE, parse, ln, pos, NULL); + mandoc_msg(MANDOCERR_DATE_MISSING, parse, ln, pos, NULL); time(&t); } else if (a2time(&t, "%Y-%m-%d", in)) t = 0; else if (!a2time(&t, "$" "Mdocdate: %b %d %Y $", in) && !a2time(&t, "%b %d, %Y", in)) { - mandoc_msg(MANDOCERR_BADDATE, parse, ln, pos, NULL); + mandoc_msg(MANDOCERR_DATE_BAD, parse, ln, pos, NULL); t = 0; } out = t ? time2a(t) : NULL; Index: mdoc_validate.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mdoc_validate.c,v retrieving revision 1.214 retrieving revision 1.215 diff -Lmdoc_validate.c -Lmdoc_validate.c -u -p -r1.214 -r1.215 --- mdoc_validate.c +++ mdoc_validate.c @@ -935,10 +935,10 @@ pre_dt(PRE_ARGS) { if (NULL == mdoc->meta.date || mdoc->meta.os) - mdoc_nmsg(mdoc, n, MANDOCERR_PROLOGOOO); + mdoc_nmsg(mdoc, n, MANDOCERR_PROLOG_ORDER); if (mdoc->meta.title) - mdoc_nmsg(mdoc, n, MANDOCERR_PROLOGREP); + mdoc_nmsg(mdoc, n, MANDOCERR_PROLOG_REP); return(1); } @@ -948,10 +948,10 @@ pre_os(PRE_ARGS) { if (NULL == mdoc->meta.title || NULL == mdoc->meta.date) - mdoc_nmsg(mdoc, n, MANDOCERR_PROLOGOOO); + mdoc_nmsg(mdoc, n, MANDOCERR_PROLOG_ORDER); if (mdoc->meta.os) - mdoc_nmsg(mdoc, n, MANDOCERR_PROLOGREP); + mdoc_nmsg(mdoc, n, MANDOCERR_PROLOG_REP); return(1); } @@ -961,10 +961,10 @@ pre_dd(PRE_ARGS) { if (mdoc->meta.title || mdoc->meta.os) - mdoc_nmsg(mdoc, n, MANDOCERR_PROLOGOOO); + mdoc_nmsg(mdoc, n, MANDOCERR_PROLOG_ORDER); if (mdoc->meta.date) - mdoc_nmsg(mdoc, n, MANDOCERR_PROLOGREP); + mdoc_nmsg(mdoc, n, MANDOCERR_PROLOG_REP); return(1); } @@ -2184,7 +2184,7 @@ post_dt(POST_ARGS) * FIXME: don't be lazy: have this make all * characters be uppercase and just warn once. */ - mdoc_nmsg(mdoc, nn, MANDOCERR_UPPERCASE); + mdoc_nmsg(mdoc, nn, MANDOCERR_TITLE_CASE); break; } @@ -2228,7 +2228,7 @@ post_dt(POST_ARGS) mdoc->meta.vol = mandoc_strdup(cp); mdoc->meta.msec = mandoc_strdup(nn->string); } else { - mdoc_nmsg(mdoc, n, MANDOCERR_BADMSEC); + mdoc_nmsg(mdoc, n, MANDOCERR_MSEC_BAD); mdoc->meta.vol = mandoc_strdup(nn->string); mdoc->meta.msec = mandoc_strdup(nn->string); } @@ -2250,7 +2250,7 @@ post_dt(POST_ARGS) } else { cp = mdoc_a2arch(nn->string); if (NULL == cp) { - mdoc_nmsg(mdoc, nn, MANDOCERR_BADVOLARCH); + mdoc_nmsg(mdoc, nn, MANDOCERR_ARCH_BAD); free(mdoc->meta.vol); mdoc->meta.vol = mandoc_strdup(nn->string); } else Index: mdoc.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mdoc.c,v retrieving revision 1.214 retrieving revision 1.215 diff -Lmdoc.c -Lmdoc.c -u -p -r1.214 -r1.215 --- mdoc.c +++ mdoc.c @@ -305,7 +305,8 @@ mdoc_macro(MACRO_PROT_ARGS) if (MDOC_PROLOGUE & mdoc_macros[tok].flags && MDOC_PBODY & mdoc->flags) { - mdoc_pmsg(mdoc, line, ppos, MANDOCERR_BADBODY); + mandoc_vmsg(MANDOCERR_PROLOG_ONLY, mdoc->parse, + line, ppos, "%s", mdoc_macronames[tok]); return(1); } @@ -313,7 +314,8 @@ mdoc_macro(MACRO_PROT_ARGS) if ( ! (MDOC_PROLOGUE & mdoc_macros[tok].flags) && ! (MDOC_PBODY & mdoc->flags)) { - mdoc_pmsg(mdoc, line, ppos, MANDOCERR_BADPROLOG); + mandoc_vmsg(MANDOCERR_PROLOG_BAD, mdoc->parse, + line, ppos, "%s", mdoc_macronames[tok]); if (NULL == mdoc->meta.msec) mdoc->meta.msec = mandoc_strdup("1"); if (NULL == mdoc->meta.title) Index: mandoc.h =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mandoc.h,v retrieving revision 1.120 retrieving revision 1.121 diff -Lmandoc.h -Lmandoc.h -u -p -r1.120 -r1.121 --- mandoc.h +++ mandoc.h @@ -49,16 +49,16 @@ enum mandocerr { MANDOCERR_WARNING, /* ===== start of warnings ===== */ /* related to the prologue */ - MANDOCERR_NOTITLE, /* no title in document */ - MANDOCERR_UPPERCASE, /* document title should be all caps */ - MANDOCERR_BADMSEC, /* unknown manual section */ - MANDOCERR_BADVOLARCH, /* unknown manual volume or arch */ - MANDOCERR_NODATE, /* date missing, using today's date */ - MANDOCERR_BADDATE, /* cannot parse date, using it verbatim */ - MANDOCERR_PROLOGOOO, /* prologue macros out of order */ - MANDOCERR_PROLOGREP, /* duplicate prologue macro */ - MANDOCERR_BADPROLOG, /* macro not allowed in prologue */ - MANDOCERR_BADBODY, /* macro not allowed in body */ + MANDOCERR_TH_MISSING, /* no TH macro in document */ + MANDOCERR_TITLE_CASE, /* document title should be all caps */ + MANDOCERR_MSEC_BAD, /* unknown manual section */ + MANDOCERR_ARCH_BAD, /* unknown manual volume or arch */ + MANDOCERR_DATE_MISSING, /* date missing, using today's date */ + MANDOCERR_DATE_BAD, /* cannot parse date, using it verbatim */ + MANDOCERR_PROLOG_ORDER, /* prologue macros out of order */ + MANDOCERR_PROLOG_REP, /* duplicate prologue macro */ + MANDOCERR_PROLOG_BAD, /* macro not allowed in prologue */ + MANDOCERR_PROLOG_ONLY, /* macro not allowed in body */ /* related to document structure */ MANDOCERR_SO, /* .so is fragile, better use ln(1) */ Index: read.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/read.c,v retrieving revision 1.48 retrieving revision 1.49 diff -Lread.c -Lread.c -u -p -r1.48 -r1.49 --- read.c +++ read.c @@ -93,7 +93,7 @@ static const char * const mandocerrs[MAN "generic warning", /* related to the prologue */ - "no title in document", + "no TH macro in document", "document title should be all caps", "unknown manual section", "unknown manual volume or arch", Index: man_validate.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/man_validate.c,v retrieving revision 1.91 retrieving revision 1.92 diff -Lman_validate.c -Lman_validate.c -u -p -r1.91 -r1.92 --- man_validate.c +++ man_validate.c @@ -202,7 +202,7 @@ check_root(CHKARGS) man_nmsg(man, n, MANDOCERR_NODOCBODY); return(0); } else if (NULL == man->meta.title) { - man_nmsg(man, n, MANDOCERR_NOTITLE); + man_nmsg(man, n, MANDOCERR_TH_MISSING); /* * If a title hasn't been set, do so now (by @@ -390,6 +390,7 @@ post_IP(CHKARGS) static int post_TH(CHKARGS) { + struct man_node *nb; const char *p; free(man->meta.title); @@ -401,6 +402,8 @@ post_TH(CHKARGS) man->meta.title = man->meta.vol = man->meta.date = man->meta.msec = man->meta.source = NULL; + nb = n; + /* ->TITLE<- MSEC DATE SOURCE VOL */ n = n->child; @@ -409,7 +412,7 @@ post_TH(CHKARGS) /* Only warn about this once... */ if (isalpha((unsigned char)*p) && ! isupper((unsigned char)*p)) { - man_nmsg(man, n, MANDOCERR_UPPERCASE); + man_nmsg(man, n, MANDOCERR_TITLE_CASE); break; } } @@ -435,8 +438,10 @@ post_TH(CHKARGS) mandoc_strdup(n->string) : mandoc_normdate(man->parse, n->string, n->line, n->pos); - } else + } else { man->meta.date = mandoc_strdup(""); + man_nmsg(man, n ? n : nb, MANDOCERR_DATE_MISSING); + } /* TITLE MSEC DATE ->SOURCE<- VOL */ -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv