=================================================================== RCS file: /cvs/mandoc/mdoc_validate.c,v retrieving revision 1.16 retrieving revision 1.20 diff -u -p -r1.16 -r1.20 --- mandoc/mdoc_validate.c 2009/06/18 20:46:19 1.16 +++ mandoc/mdoc_validate.c 2009/07/06 09:21:24 1.20 @@ -1,4 +1,4 @@ -/* $Id: mdoc_validate.c,v 1.16 2009/06/18 20:46:19 kristaps Exp $ */ +/* $Id: mdoc_validate.c,v 1.20 2009/07/06 09:21:24 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -23,6 +23,7 @@ #include #include "libmdoc.h" +#include "libmandoc.h" /* FIXME: .Bl -diag can't have non-text children in HEAD. */ /* TODO: ignoring Pp (it's superfluous in some invocations). */ @@ -55,8 +56,6 @@ enum mwarn { WNOWIDTH, WMISSWIDTH, WESCAPE, - WDEPESC, - WDEPCOL, WWRONGMSEC, WSECOOO, WSECREP, @@ -445,35 +444,25 @@ static int pwarn(struct mdoc *m, int line, int pos, enum mwarn type) { char *p; - enum mdoc_warn c; - c = WARN_SYNTAX; p = NULL; + switch (type) { case (WBADMSEC): p = "inappropriate manual section"; - c = WARN_COMPAT; break; case (WBADSEC): p = "inappropriate document section"; - c = WARN_COMPAT; break; case (WARGVAL): p = "argument value suggested"; - c = WARN_COMPAT; break; case (WPROLREP): p = "prologue macros repeated"; - c = WARN_COMPAT; break; case (WPROLOOO): p = "prologue macros out-of-order"; - c = WARN_COMPAT; break; - case (WDEPCOL): - p = "deprecated column argument syntax"; - c = WARN_COMPAT; - break; case (WNOWIDTH): p = "superfluous width argument"; break; @@ -486,9 +475,6 @@ pwarn(struct mdoc *m, int line, int pos, enum mwarn ty case (WESCAPE): p = "invalid escape sequence"; break; - case (WDEPESC): - p = "deprecated special-character escape"; - break; case (WNOLINE): p = "suggested no line arguments"; break; @@ -503,7 +489,6 @@ pwarn(struct mdoc *m, int line, int pos, enum mwarn ty break; case (WWRONGMSEC): p = "document section in wrong manual section"; - c = WARN_COMPAT; break; case (WSECOOO): p = "document section out of conventional order"; @@ -518,8 +503,9 @@ pwarn(struct mdoc *m, int line, int pos, enum mwarn ty p = "NAME section contents incomplete/badly-ordered"; break; } + assert(p); - return(mdoc_pwarn(m, line, pos, c, p)); + return(mdoc_pwarn(m, line, pos, p)); } @@ -537,8 +523,8 @@ warn_count(struct mdoc *m, const char *k, int want, const char *v, int has) { - return(mdoc_warn(m, WARN_SYNTAX, - "suggests %s %s %d (has %d)", v, k, want, has)); + return(mdoc_warn(m, "suggests %s %s %d (has %d)", + v, k, want, has)); } @@ -712,9 +698,9 @@ check_argv(struct mdoc *m, const struct mdoc_node *n, static int check_text(struct mdoc *mdoc, int line, int pos, const char *p) { - size_t c; + int c; - for ( ; *p; p++) { + for ( ; *p; p++, pos++) { if ('\t' == *p) { if ( ! (MDOC_LITERAL & mdoc->flags)) if ( ! warn_print(mdoc, line, pos)) @@ -726,13 +712,10 @@ check_text(struct mdoc *mdoc, int line, int pos, const if ('\\' != *p) continue; - c = mdoc_isescape(p); + c = mandoc_special(p); if (c) { - /* See if form is deprecated. */ - if ('*' == p[1]) - if ( ! pwarn(mdoc, line, pos, WDEPESC)) - return(0); - p += (int)c - 1; + p += c - 1; + pos += c - 1; continue; } if ( ! (MDOC_IGN_ESCAPE & mdoc->pflags))