=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/man_validate.c,v retrieving revision 1.62 retrieving revision 1.63 diff -c -r1.62 -r1.63 *** src/usr.bin/mandoc/man_validate.c 2014/03/30 19:47:32 1.62 --- src/usr.bin/mandoc/man_validate.c 2014/04/20 16:44:44 1.63 *************** *** 1,4 **** ! /* $Id: man_validate.c,v 1.62 2014/03/30 19:47:32 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze --- 1,4 ---- ! /* $Id: man_validate.c,v 1.63 2014/04/20 16:44:44 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze *************** *** 130,142 **** v_check *cp; switch (n->type) { ! case (MAN_TEXT): /* FALLTHROUGH */ ! case (MAN_ROOT): /* FALLTHROUGH */ ! case (MAN_EQN): /* FALLTHROUGH */ ! case (MAN_TBL): return(1); default: break; --- 130,142 ---- v_check *cp; switch (n->type) { ! case MAN_TEXT: /* FALLTHROUGH */ ! case MAN_ROOT: /* FALLTHROUGH */ ! case MAN_EQN: /* FALLTHROUGH */ ! case MAN_TBL: return(1); default: break; *************** *** 145,156 **** if (NULL == (cp = man_valids[n->tok].pres)) return(1); for ( ; *cp; cp++) ! if ( ! (*cp)(man, n)) return(0); return(1); } - int man_valid_post(struct man *man) { --- 145,155 ---- if (NULL == (cp = man_valids[n->tok].pres)) return(1); for ( ; *cp; cp++) ! if ( ! (*cp)(man, n)) return(0); return(1); } int man_valid_post(struct man *man) { *************** *** 161,174 **** man->last->flags |= MAN_VALID; switch (man->last->type) { ! case (MAN_TEXT): check_text(man, man->last); return(1); ! case (MAN_ROOT): return(check_root(man, man->last)); ! case (MAN_EQN): /* FALLTHROUGH */ ! case (MAN_TBL): return(1); default: break; --- 160,173 ---- man->last->flags |= MAN_VALID; switch (man->last->type) { ! case MAN_TEXT: check_text(man, man->last); return(1); ! case MAN_ROOT: return(check_root(man, man->last)); ! case MAN_EQN: /* FALLTHROUGH */ ! case MAN_TBL: return(1); default: break; *************** *** 183,191 **** return(1); } - static int ! check_root(CHKARGS) { if (MAN_BLINE & man->flags) --- 182,189 ---- return(1); } static int ! check_root(CHKARGS) { if (MAN_BLINE & man->flags) *************** *** 207,213 **** * implication, date and section also aren't set). */ ! man->meta.title = mandoc_strdup("unknown"); man->meta.msec = mandoc_strdup("1"); man->meta.date = man->quick ? mandoc_strdup("") : mandoc_normdate(man->parse, NULL, n->line, n->pos); --- 205,211 ---- * implication, date and section also aren't set). */ ! man->meta.title = mandoc_strdup("unknown"); man->meta.msec = mandoc_strdup("1"); man->meta.date = man->quick ? mandoc_strdup("") : mandoc_normdate(man->parse, NULL, n->line, n->pos); *************** *** 236,243 **** if (n->nchild ineq (x)) \ return(1); \ mandoc_vmsg(MANDOCERR_ARGCOUNT, man->parse, n->line, n->pos, \ ! "line arguments %s %d (have %d)", \ ! #ineq, (x), n->nchild); \ return(1); \ } --- 234,241 ---- if (n->nchild ineq (x)) \ return(1); \ mandoc_vmsg(MANDOCERR_ARGCOUNT, man->parse, n->line, n->pos, \ ! "line arguments %s %d (have %d)", \ ! #ineq, (x), n->nchild); \ return(1); \ } *************** *** 270,296 **** ok = 0; cp = n->child->string; switch (*cp) { ! case ('1'): /* FALLTHROUGH */ ! case ('2'): /* FALLTHROUGH */ ! case ('3'): /* FALLTHROUGH */ ! case ('4'): /* FALLTHROUGH */ ! case ('I'): /* FALLTHROUGH */ ! case ('P'): /* FALLTHROUGH */ ! case ('R'): if ('\0' == cp[1]) ok = 1; break; ! case ('B'): if ('\0' == cp[1] || ('I' == cp[1] && '\0' == cp[2])) ok = 1; break; ! case ('C'): if ('W' == cp[1] && '\0' == cp[2]) ok = 1; break; --- 268,294 ---- ok = 0; cp = n->child->string; switch (*cp) { ! case '1': /* FALLTHROUGH */ ! case '2': /* FALLTHROUGH */ ! case '3': /* FALLTHROUGH */ ! case '4': /* FALLTHROUGH */ ! case 'I': /* FALLTHROUGH */ ! case 'P': /* FALLTHROUGH */ ! case 'R': if ('\0' == cp[1]) ok = 1; break; ! case 'B': if ('\0' == cp[1] || ('I' == cp[1] && '\0' == cp[2])) ok = 1; break; ! case 'C': if ('W' == cp[1] && '\0' == cp[2]) ok = 1; break; *************** *** 299,315 **** } if (0 == ok) { ! mandoc_vmsg ! (MANDOCERR_BADFONT, man->parse, ! n->line, n->pos, "%s", cp); *cp = '\0'; } if (1 < n->nchild) ! mandoc_vmsg ! (MANDOCERR_ARGCOUNT, man->parse, n->line, ! n->pos, "want one child (have %d)", ! n->nchild); return(1); } --- 297,310 ---- } if (0 == ok) { ! mandoc_vmsg(MANDOCERR_BADFONT, man->parse, n->line, ! n->pos, "%s", cp); *cp = '\0'; } if (1 < n->nchild) ! mandoc_vmsg(MANDOCERR_ARGCOUNT, man->parse, n->line, ! n->pos, "want one child (have %d)", n->nchild); return(1); } *************** *** 327,333 **** post_sec(CHKARGS) { ! if ( ! (MAN_HEAD == n->type && 0 == n->nchild)) return(1); man_nmsg(man, n, MANDOCERR_SYNTARGCOUNT); --- 322,328 ---- post_sec(CHKARGS) { ! if ( ! (MAN_HEAD == n->type && 0 == n->nchild)) return(1); man_nmsg(man, n, MANDOCERR_SYNTARGCOUNT); *************** *** 339,365 **** { if (MAN_BODY == n->type && 0 == n->nchild) ! mandoc_msg(MANDOCERR_ARGCWARN, man->parse, n->line, ! n->pos, "want children (have none)"); return(1); } - static int check_par(CHKARGS) { switch (n->type) { ! case (MAN_BLOCK): if (0 == n->body->nchild) man_node_delete(man, n); break; ! case (MAN_BODY): if (0 == n->nchild) man_nmsg(man, n, MANDOCERR_IGNPAR); break; ! case (MAN_HEAD): if (n->nchild) man_nmsg(man, n, MANDOCERR_ARGSLOST); break; --- 334,359 ---- { if (MAN_BODY == n->type && 0 == n->nchild) ! mandoc_msg(MANDOCERR_ARGCWARN, man->parse, n->line, ! n->pos, "want children (have none)"); return(1); } static int check_par(CHKARGS) { switch (n->type) { ! case MAN_BLOCK: if (0 == n->body->nchild) man_node_delete(man, n); break; ! case MAN_BODY: if (0 == n->nchild) man_nmsg(man, n, MANDOCERR_IGNPAR); break; ! case MAN_HEAD: if (n->nchild) man_nmsg(man, n, MANDOCERR_ARGSLOST); break; *************** *** 375,385 **** { switch (n->type) { ! case (MAN_BLOCK): if (0 == n->head->nchild && 0 == n->body->nchild) man_node_delete(man, n); break; ! case (MAN_BODY): if (0 == n->parent->head->nchild && 0 == n->nchild) man_nmsg(man, n, MANDOCERR_IGNPAR); break; --- 369,379 ---- { switch (n->type) { ! case MAN_BLOCK: if (0 == n->head->nchild && 0 == n->body->nchild) man_node_delete(man, n); break; ! case MAN_BODY: if (0 == n->parent->head->nchild && 0 == n->nchild) man_nmsg(man, n, MANDOCERR_IGNPAR); break; *************** *** 401,407 **** free(man->meta.date); man->meta.title = man->meta.vol = man->meta.date = ! man->meta.msec = man->meta.source = NULL; /* ->TITLE<- MSEC DATE SOURCE VOL */ --- 395,401 ---- free(man->meta.date); man->meta.title = man->meta.vol = man->meta.date = ! man->meta.msec = man->meta.source = NULL; /* ->TITLE<- MSEC DATE SOURCE VOL */ *************** *** 409,416 **** if (n && n->string) { for (p = n->string; '\0' != *p; p++) { /* Only warn about this once... */ ! if (isalpha((unsigned char)*p) && ! ! isupper((unsigned char)*p)) { man_nmsg(man, n, MANDOCERR_UPPERCASE); break; } --- 403,410 ---- if (n && n->string) { for (p = n->string; '\0' != *p; p++) { /* Only warn about this once... */ ! if (isalpha((unsigned char)*p) && ! ! isupper((unsigned char)*p)) { man_nmsg(man, n, MANDOCERR_UPPERCASE); break; } *************** *** 568,580 **** return(1); switch (n->parent->tok) { ! case (MAN_SH): /* FALLTHROUGH */ ! case (MAN_SS): man_nmsg(man, n, MANDOCERR_IGNPAR); /* FALLTHROUGH */ ! case (MAN_MAX): ! /* * Don't warn about this because it occurs in pod2man * and would cause considerable (unfixable) warnage. */ --- 562,574 ---- return(1); switch (n->parent->tok) { ! case MAN_SH: /* FALLTHROUGH */ ! case MAN_SS: man_nmsg(man, n, MANDOCERR_IGNPAR); /* FALLTHROUGH */ ! case MAN_MAX: ! /* * Don't warn about this because it occurs in pod2man * and would cause considerable (unfixable) warnage. */