=================================================================== RCS file: /cvs/mandoc/Attic/validate.c,v retrieving revision 1.71 retrieving revision 1.74 diff -u -p -r1.71 -r1.74 --- mandoc/Attic/validate.c 2009/03/08 11:41:22 1.71 +++ mandoc/Attic/validate.c 2009/03/08 18:02:36 1.74 @@ -1,4 +1,4 @@ -/* $Id: validate.c,v 1.71 2009/03/08 11:41:22 kristaps Exp $ */ +/* $Id: validate.c,v 1.74 2009/03/08 18:02:36 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -638,6 +638,7 @@ check_args(struct mdoc *m, const struct mdoc_node *n) if (NULL == n->args) return(1); + assert(n->args->argc); for (i = 0; i < (int)n->args->argc; i++) if ( ! check_argv(m, n, &n->args->argv[i])) return(0); @@ -684,8 +685,12 @@ check_text(struct mdoc *mdoc, int line, int pos, const p += (int)c - 1; continue; } - return(mdoc_perr(mdoc, line, pos, - "invalid escape sequence")); + if ( ! (MDOC_IGN_ESCAPE & mdoc->pflags)) + return(mdoc_perr(mdoc, line, pos, + "invalid escape sequence")); + if ( ! mdoc_pwarn(mdoc, line, pos, WARN_SYNTAX, + "invalid escape sequence")) + return(0); } return(1); @@ -891,7 +896,7 @@ static int pre_an(PRE_ARGS) { - if (n->args && 1 >= n->args->argc) + if (NULL == n->args || 1 == n->args->argc) return(1); return(mdoc_nerr(mdoc, n, "only one argument allowed")); }