=================================================================== RCS file: /cvs/mandoc/man_validate.c,v retrieving revision 1.143 retrieving revision 1.147 diff -u -p -r1.143 -r1.147 --- mandoc/man_validate.c 2018/12/31 04:55:46 1.143 +++ mandoc/man_validate.c 2019/03/11 13:21:11 1.147 @@ -1,4 +1,4 @@ -/* $Id: man_validate.c,v 1.143 2018/12/31 04:55:46 schwarze Exp $ */ +/* $Id: man_validate.c,v 1.147 2019/03/11 13:21:11 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2012-2018 Ingo Schwarze @@ -41,13 +41,15 @@ typedef void (*v_check)(CHKARGS); -static void check_abort(CHKARGS); +static __dead void check_abort(CHKARGS); static void check_par(CHKARGS); static void check_part(CHKARGS); static void check_root(CHKARGS); static void check_text(CHKARGS); static void post_AT(CHKARGS); +static void post_EE(CHKARGS); +static void post_EX(CHKARGS); static void post_IP(CHKARGS); static void post_OP(CHKARGS); static void post_SH(CHKARGS); @@ -78,8 +80,6 @@ static const v_check man_valids[MAN_MAX - MAN_TH] = { NULL, /* I */ NULL, /* IR */ NULL, /* RI */ - NULL, /* nf */ - NULL, /* fi */ NULL, /* RE */ check_part, /* RS */ NULL, /* DT */ @@ -90,8 +90,8 @@ static const v_check man_valids[MAN_MAX - MAN_TH] = { NULL, /* SY */ NULL, /* YS */ post_OP, /* OP */ - NULL, /* EX */ - NULL, /* EE */ + post_EX, /* EX */ + post_EE, /* EE */ post_UR, /* UR */ NULL, /* UE */ post_UR, /* MT */ @@ -160,7 +160,7 @@ man_validate(struct roff_man *man) if (*cp) (*cp)(man, n); if (man->last == n) - man_state(man, n); + n->flags |= NODE_VALID; break; } } @@ -196,7 +196,7 @@ check_root(CHKARGS) "(OpenBSD)" : "(NetBSD)"); } -static void +static __dead void check_abort(CHKARGS) { abort(); @@ -207,13 +207,27 @@ check_text(CHKARGS) { char *cp, *p; - if (MAN_LITERAL & man->flags) + if (n->flags & NODE_NOFILL) return; cp = n->string; for (p = cp; NULL != (p = strchr(p, '\t')); p++) mandoc_msg(MANDOCERR_FI_TAB, n->line, n->pos + (int)(p - cp), NULL); +} + +static void +post_EE(CHKARGS) +{ + if ((n->flags & NODE_NOFILL) == 0) + mandoc_msg(MANDOCERR_FI_SKIP, n->line, n->pos, "EE"); +} + +static void +post_EX(CHKARGS) +{ + if (n->flags & NODE_NOFILL) + mandoc_msg(MANDOCERR_NF_SKIP, n->line, n->pos, "EX"); } static void