=================================================================== RCS file: /cvs/mandoc/man_validate.c,v retrieving revision 1.33 retrieving revision 1.38 diff -u -p -r1.33 -r1.38 --- mandoc/man_validate.c 2010/03/29 10:10:35 1.33 +++ mandoc/man_validate.c 2010/05/15 20:51:40 1.38 @@ -1,4 +1,4 @@ -/* $Id: man_validate.c,v 1.33 2010/03/29 10:10:35 kristaps Exp $ */ +/* $Id: man_validate.c,v 1.38 2010/05/15 20:51:40 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -94,14 +94,13 @@ static const struct man_valid man_valids[MAN_MAX] = { { NULL, NULL }, /* DT */ { NULL, NULL }, /* UC */ { NULL, NULL }, /* PD */ - { NULL, posts_eq0 }, /* Sp */ + { NULL, posts_le1 }, /* Sp */ { pres_bline, posts_le1 }, /* Vb */ { pres_bline, posts_eq0 }, /* Ve */ { pres_roff, NULL }, /* de */ { pres_roff, NULL }, /* dei */ { pres_roff, NULL }, /* am */ { pres_roff, NULL }, /* ami */ - { pres_roff, NULL }, /* ig */ { NULL, NULL }, /* . */ }; @@ -167,8 +166,19 @@ check_root(CHKARGS) if (NULL == m->first->child) return(man_nerr(m, n, WNODATA)); - if (NULL == m->meta.title) - return(man_nerr(m, n, WNOTITLE)); + if (NULL == m->meta.title) { + if ( ! man_nwarn(m, n, WNOTITLE)) + return(0); + /* + * If a title hasn't been set, do so now (by + * implication, date and section also aren't set). + * + * FIXME: this should be in man_action.c. + */ + m->meta.title = mandoc_strdup("unknown"); + m->meta.date = time(NULL); + m->meta.msec = mandoc_strdup("1"); + } return(1); } @@ -218,9 +228,7 @@ check_text(CHKARGS) if ('\t' == *p || isprint((u_char)*p)) continue; - if (MAN_IGN_CHARS & m->pflags) - return(man_pwarn(m, n->line, pos, WNPRINT)); - return(man_perr(m, n->line, pos, WNPRINT)); + return(man_pwarn(m, n->line, pos, WNPRINT)); } return(1); @@ -326,8 +334,7 @@ check_roff(CHKARGS) for (n = n->parent; n; n = n->parent) if (MAN_de == n->tok || MAN_dei == n->tok || MAN_am == n->tok || - MAN_ami == n->tok || - MAN_ig == n->tok) + MAN_ami == n->tok) return(man_nerr(m, n, WROFFNEST)); return(1);