aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/man_validate.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2011-11-07 01:24:40 +0000
committerIngo Schwarze <schwarze@openbsd.org>2011-11-07 01:24:40 +0000
commit37dca223f8adbfb62ab71687a8b3f306804295c8 (patch)
tree942ccf5a988ea7f17a438ae03a60a6d5fe507e60 /man_validate.c
parent050315e505c48b0677069afc7175067e954adbea (diff)
downloadmandoc-37dca223f8adbfb62ab71687a8b3f306804295c8.tar.gz
mandoc-37dca223f8adbfb62ab71687a8b3f306804295c8.tar.zst
mandoc-37dca223f8adbfb62ab71687a8b3f306804295c8.zip
When the HEAD scope of .TP is broken by another block macro,
do not abort with a FATAL error, but report a report a WARNING, remove the broken .TP from the syntax tree, and prod on. Reported repeatedly by ports people, at least by brad@ and jeremy@. Also fixes rendition(4) in Xenocara. ok kristaps@
Diffstat (limited to 'man_validate.c')
-rw-r--r--man_validate.c37
1 files changed, 11 insertions, 26 deletions
diff --git a/man_validate.c b/man_validate.c
index 5ab775ac..d39618ff 100644
--- a/man_validate.c
+++ b/man_validate.c
@@ -1,4 +1,4 @@
-/* $Id: man_validate.c,v 1.77 2011/11/03 20:48:52 schwarze Exp $ */
+/* $Id: man_validate.c,v 1.78 2011/11/07 01:24:40 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
@@ -44,7 +44,6 @@ struct man_valid {
v_check *posts;
};
-static int check_bline(CHKARGS);
static int check_eq0(CHKARGS);
static int check_le1(CHKARGS);
static int check_ge2(CHKARGS);
@@ -76,20 +75,19 @@ static v_check posts_sec[] = { post_sec, NULL };
static v_check posts_sp[] = { post_vs, check_le1, NULL };
static v_check posts_th[] = { check_ge2, check_le5, post_TH, NULL };
static v_check posts_uc[] = { post_UC, NULL };
-static v_check pres_bline[] = { check_bline, NULL };
-static v_check pres_sec[] = { check_bline, pre_sec, NULL};
+static v_check pres_sec[] = { pre_sec, NULL };
static const struct man_valid man_valids[MAN_MAX] = {
{ NULL, posts_br }, /* br */
- { pres_bline, posts_th }, /* TH */
+ { NULL, posts_th }, /* TH */
{ pres_sec, posts_sec }, /* SH */
{ pres_sec, posts_sec }, /* SS */
- { pres_bline, NULL }, /* TP */
- { pres_bline, posts_par }, /* LP */
- { pres_bline, posts_par }, /* PP */
- { pres_bline, posts_par }, /* P */
- { pres_bline, NULL }, /* IP */
- { pres_bline, NULL }, /* HP */
+ { NULL, NULL }, /* TP */
+ { NULL, posts_par }, /* LP */
+ { NULL, posts_par }, /* PP */
+ { NULL, posts_par }, /* P */
+ { NULL, NULL }, /* IP */
+ { NULL, NULL }, /* HP */
{ NULL, NULL }, /* SM */
{ NULL, NULL }, /* SB */
{ NULL, NULL }, /* BI */
@@ -103,8 +101,8 @@ static const struct man_valid man_valids[MAN_MAX] = {
{ NULL, NULL }, /* RI */
{ NULL, posts_eq0 }, /* na */ /* FIXME: should warn only. */
{ NULL, posts_sp }, /* sp */ /* FIXME: should warn only. */
- { pres_bline, posts_nf }, /* nf */
- { pres_bline, posts_fi }, /* fi */
+ { NULL, posts_nf }, /* nf */
+ { NULL, posts_fi }, /* fi */
{ NULL, NULL }, /* RE */
{ NULL, posts_part }, /* RS */
{ NULL, NULL }, /* DT */
@@ -352,19 +350,6 @@ check_par(CHKARGS)
static int
-check_bline(CHKARGS)
-{
-
- assert( ! (MAN_ELINE & m->flags));
- if (MAN_BLINE & m->flags) {
- man_nmsg(m, n, MANDOCERR_SYNTLINESCOPE);
- return(0);
- }
-
- return(1);
-}
-
-static int
post_TH(CHKARGS)
{
const char *p;