diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2011-11-07 01:24:40 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2011-11-07 01:24:40 +0000 |
commit | 9830303b6541ca2717331d52b40997c9e566a48b (patch) | |
tree | bef7f838061058f52f46cf360a8feec0e93a87e9 /man_validate.c | |
parent | a3d2601486005576848664f22121fcd2881778e3 (diff) | |
download | mandoc-9830303b6541ca2717331d52b40997c9e566a48b.tar.gz |
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.c | 35 |
1 files changed, 10 insertions, 25 deletions
diff --git a/man_validate.c b/man_validate.c index 4c1a72e9..27ecd087 100644 --- a/man_validate.c +++ b/man_validate.c @@ -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; |