diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-07-08 09:34:06 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-07-08 09:34:06 +0000 |
commit | fe0dd589ba5aa893c07b7b557aec2b71b02accba (patch) | |
tree | 8295c276bbb21e5480287df3d8fcaf18a66befdb /man_validate.c | |
parent | 0503d4ab5439538f2ea58eb07dfb2d741db3c1a2 (diff) | |
download | mandoc-fe0dd589ba5aa893c07b7b557aec2b71b02accba.tar.gz |
Make sure that `br' and `sp' don't emit space before the initial `SH' in
-man. This actually seems to be what groff does. Sort-of. Anyway,
it's required to get perlpod pages rendered nicely, so until perlpod
stops producing shit, do it. Ok schwarze@.
Diffstat (limited to 'man_validate.c')
-rw-r--r-- | man_validate.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/man_validate.c b/man_validate.c index 6a72c0bd..27381cf8 100644 --- a/man_validate.c +++ b/man_validate.c @@ -57,27 +57,28 @@ static int check_sec(CHKARGS); static void check_text(CHKARGS); static int post_AT(CHKARGS); +static int post_vs(CHKARGS); static int post_fi(CHKARGS); static int post_nf(CHKARGS); static int post_TH(CHKARGS); static int post_UC(CHKARGS); static v_check posts_at[] = { post_AT, NULL }; +static v_check posts_br[] = { post_vs, check_eq0, NULL }; static v_check posts_eq0[] = { check_eq0, NULL }; static v_check posts_fi[] = { check_eq0, post_fi, NULL }; -static v_check posts_le1[] = { check_le1, NULL }; static v_check posts_ft[] = { check_ft, NULL }; static v_check posts_nf[] = { check_eq0, post_nf, NULL }; static v_check posts_par[] = { check_par, NULL }; static v_check posts_part[] = { check_part, NULL }; static v_check posts_sec[] = { check_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 const struct man_valid man_valids[MAN_MAX] = { - { NULL, posts_eq0 }, /* br */ + { NULL, posts_br }, /* br */ { pres_bline, posts_th }, /* TH */ { pres_bline, posts_sec }, /* SH */ { pres_bline, posts_sec }, /* SS */ @@ -99,7 +100,7 @@ static const struct man_valid man_valids[MAN_MAX] = { { NULL, NULL }, /* IR */ { NULL, NULL }, /* RI */ { NULL, posts_eq0 }, /* na */ /* FIXME: should warn only. */ - { NULL, posts_le1 }, /* sp */ /* FIXME: should warn only. */ + { NULL, posts_sp }, /* sp */ /* FIXME: should warn only. */ { pres_bline, posts_nf }, /* nf */ { pres_bline, posts_fi }, /* fi */ { NULL, NULL }, /* RE */ @@ -558,3 +559,17 @@ post_AT(CHKARGS) m->meta.source = mandoc_strdup(p); return(1); } + +static int +post_vs(CHKARGS) +{ + + /* + * Don't warn about this because it occurs in pod2man and would + * cause considerable (unfixable) warnage. + */ + if (NULL == n->prev && MAN_ROOT == n->parent->type) + man_node_delete(m, n); + + return(1); +} |