summaryrefslogtreecommitdiffstats
path: root/usr.bin/mandoc/man_validate.c
diff options
context:
space:
mode:
authorschwarze <schwarze@openbsd.org>2018-12-31 08:38:17 +0000
committerschwarze <schwarze@openbsd.org>2018-12-31 08:38:17 +0000
commit7faedc4a8ed073e49682a395ba802df3811ec609 (patch)
tree1cce5e00e1abd058d46f4c2c344df08d3edcf902 /usr.bin/mandoc/man_validate.c
parentStore the fill mode with a new flag NODE_NOFILL in every node, (diff)
downloadwireguard-openbsd-7faedc4a8ed073e49682a395ba802df3811ec609.tar.xz
wireguard-openbsd-7faedc4a8ed073e49682a395ba802df3811ec609.zip
Use the new flag NODE_NOFILL in the validators, which is sometimes
simpler and always more robust. In particular, move the nesting warnings for .EX and .EE from man_state(), where they were misplaced, to the man(7) validator.
Diffstat (limited to 'usr.bin/mandoc/man_validate.c')
-rw-r--r--usr.bin/mandoc/man_validate.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/usr.bin/mandoc/man_validate.c b/usr.bin/mandoc/man_validate.c
index 9fd8d7bc077..7523d0404c8 100644
--- a/usr.bin/mandoc/man_validate.c
+++ b/usr.bin/mandoc/man_validate.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: man_validate.c,v 1.114 2018/12/31 07:07:43 schwarze Exp $ */
+/* $OpenBSD: man_validate.c,v 1.115 2018/12/31 08:38:17 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2012-2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -46,6 +46,8 @@ 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);
@@ -86,8 +88,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 */
@@ -204,7 +206,7 @@ check_text(CHKARGS)
{
char *cp, *p;
- if (man->flags & ROFF_NOFILL)
+ if (n->flags & NODE_NOFILL)
return;
cp = n->string;
@@ -214,6 +216,20 @@ check_text(CHKARGS)
}
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
post_OP(CHKARGS)
{