=================================================================== RCS file: /cvs/mandoc/mdoc_validate.c,v retrieving revision 1.70 retrieving revision 1.73 diff -u -p -r1.70 -r1.73 --- mandoc/mdoc_validate.c 2010/05/08 07:30:19 1.70 +++ mandoc/mdoc_validate.c 2010/05/14 14:34:29 1.73 @@ -1,4 +1,4 @@ -/* $Id: mdoc_validate.c,v 1.70 2010/05/08 07:30:19 kristaps Exp $ */ +/* $Id: mdoc_validate.c,v 1.73 2010/05/14 14:34:29 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -60,7 +60,6 @@ static int err_child_gt(struct mdoc *, const char *, static int warn_child_gt(struct mdoc *, const char *, int); static int err_child_eq(struct mdoc *, const char *, int); static int warn_child_eq(struct mdoc *, const char *, int); -static int warn_print(struct mdoc *, int, int); static int warn_count(struct mdoc *, const char *, int, const char *, int); static int err_count(struct mdoc *, const char *, @@ -323,16 +322,6 @@ mdoc_valid_post(struct mdoc *mdoc) } -static int -warn_print(struct mdoc *m, int ln, int pos) -{ - - if (MDOC_IGN_CHARS & m->pflags) - return(mdoc_pwarn(m, ln, pos, EPRINT)); - return(mdoc_perr(m, ln, pos, EPRINT)); -} - - static inline int warn_count(struct mdoc *m, const char *k, int want, const char *v, int has) @@ -518,10 +507,10 @@ check_text(struct mdoc *mdoc, int line, int pos, const for ( ; *p; p++, pos++) { if ('\t' == *p) { if ( ! (MDOC_LITERAL & mdoc->flags)) - if ( ! warn_print(mdoc, line, pos)) + if ( ! mdoc_pwarn(mdoc, line, pos, EPRINT)) return(0); } else if ( ! isprint((u_char)*p)) - if ( ! warn_print(mdoc, line, pos)) + if ( ! mdoc_pwarn(mdoc, line, pos, EPRINT)) return(0); if ('\\' != *p) @@ -1050,14 +1039,14 @@ post_it(POST_ARGS) for (i = 0; c && MDOC_HEAD == c->type; c = c->next) i++; - if (i < cols || i == (cols + 1)) { + if (i < cols) { if ( ! mdoc_vwarn(mdoc, mdoc->last->line, mdoc->last->pos, "column " "mismatch: have %d, want %d", i, cols)) return(0); break; - } else if (i == cols) + } else if (i == cols || i == cols + 1) break; return(mdoc_verr(mdoc, mdoc->last->line, @@ -1297,21 +1286,24 @@ post_sh_head(POST_ARGS) return(mdoc_nerr(mdoc, n, ETOOLONG)); } - sec = mdoc_atosec(buf); + sec = mdoc_str2sec(buf); /* * Check: NAME should always be first, CUSTOM has no roles, * non-CUSTOM has a conventional order to be followed. */ - if (SEC_NAME != sec && SEC_NONE == mdoc->lastnamed && - ! mdoc_nwarn(mdoc, mdoc->last, ESECNAME)) - return(0); + if (SEC_NAME != sec && SEC_NONE == mdoc->lastnamed) + if ( ! mdoc_nwarn(mdoc, mdoc->last, ESECNAME)) + return(0); + if (SEC_CUSTOM == sec) return(1); + if (sec == mdoc->lastnamed) if ( ! mdoc_nwarn(mdoc, mdoc->last, ESECREP)) return(0); + if (sec < mdoc->lastnamed) if ( ! mdoc_nwarn(mdoc, mdoc->last, ESECOOO)) return(0);