From 9c7c6a1f67324c9ef5934693846750b670b7ddce Mon Sep 17 00:00:00 2001 From: schwarze Date: Fri, 28 Apr 2017 16:23:30 +0000 Subject: [PATCH] Delete .Pp right before the first .Sh and right before any .Ss, and warn about it; mdoclint(1) does so, and it makes sense. --- regress/usr.bin/mandoc/mdoc/Sh/Makefile | 15 ++++++++---- .../usr.bin/mandoc/mdoc/Sh/first.out_ascii | 6 +++++ regress/usr.bin/mandoc/mdoc/Sh/parbefore.in | 9 ++++++++ .../mandoc/mdoc/Sh/parbefore.out_ascii | 9 ++++++++ .../usr.bin/mandoc/mdoc/Sh/parbefore.out_lint | 1 + .../mandoc/mdoc/Sh/parbefore.out_markdown | 11 +++++++++ regress/usr.bin/mandoc/mdoc/Sh/parborder.in | 21 +++++++++++++++++ .../mandoc/mdoc/Sh/parborder.out_ascii | 18 +++++++++++++++ .../usr.bin/mandoc/mdoc/Sh/parborder.out_lint | 7 ++++++ .../mandoc/mdoc/Sh/parborder.out_markdown | 23 +++++++++++++++++++ usr.bin/mandoc/mdoc_validate.c | 5 +++- 11 files changed, 119 insertions(+), 6 deletions(-) create mode 100644 regress/usr.bin/mandoc/mdoc/Sh/first.out_ascii create mode 100644 regress/usr.bin/mandoc/mdoc/Sh/parbefore.in create mode 100644 regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_ascii create mode 100644 regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_lint create mode 100644 regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_markdown create mode 100644 regress/usr.bin/mandoc/mdoc/Sh/parborder.in create mode 100644 regress/usr.bin/mandoc/mdoc/Sh/parborder.out_ascii create mode 100644 regress/usr.bin/mandoc/mdoc/Sh/parborder.out_lint create mode 100644 regress/usr.bin/mandoc/mdoc/Sh/parborder.out_markdown diff --git a/regress/usr.bin/mandoc/mdoc/Sh/Makefile b/regress/usr.bin/mandoc/mdoc/Sh/Makefile index a41b5e31758..c6849d8b69b 100644 --- a/regress/usr.bin/mandoc/mdoc/Sh/Makefile +++ b/regress/usr.bin/mandoc/mdoc/Sh/Makefile @@ -1,11 +1,16 @@ -# $OpenBSD: Makefile,v 1.9 2017/03/08 22:53:35 schwarze Exp $ +# $OpenBSD: Makefile,v 1.10 2017/04/28 16:23:30 schwarze Exp $ REGRESS_TARGETS = badNAME before empty emptyNAME first nohead order -REGRESS_TARGETS += orderNAME punctNAME subbefore +REGRESS_TARGETS += orderNAME parbefore parborder punctNAME subbefore LINT_TARGETS = badNAME before empty emptyNAME first nohead order -LINT_TARGETS += orderNAME punctNAME subbefore +LINT_TARGETS += orderNAME parbefore parborder punctNAME subbefore -SKIP_GROFF = subbefore first empty -SKIP_ASCII = first +# groff-1.22.3 defects: +# - .Pp before .Sh NAME causes a blank line before the header line +# - .Ss before .Sh NAME puts the subsection header before the header line +# - missing .Sh NAME causes loss of the header and footer lines +# - .Sh DESCRIPTION Xo aborts the parser + +SKIP_GROFF = parbefore subbefore first empty .include diff --git a/regress/usr.bin/mandoc/mdoc/Sh/first.out_ascii b/regress/usr.bin/mandoc/mdoc/Sh/first.out_ascii new file mode 100644 index 00000000000..7d2234ebf7b --- /dev/null +++ b/regress/usr.bin/mandoc/mdoc/Sh/first.out_ascii @@ -0,0 +1,6 @@ +SH-FIRST(1) General Commands Manual SH-FIRST(1) + +DDEESSCCRRIIPPTTIIOONN + The first section is not a NAME section. + +OpenBSD July 1, 2014 OpenBSD diff --git a/regress/usr.bin/mandoc/mdoc/Sh/parbefore.in b/regress/usr.bin/mandoc/mdoc/Sh/parbefore.in new file mode 100644 index 00000000000..880f3c41054 --- /dev/null +++ b/regress/usr.bin/mandoc/mdoc/Sh/parbefore.in @@ -0,0 +1,9 @@ +.Dd April 28, 2017 +.Dt SH-PARBEFORE 1 +.Os OpenBSD +.Pp +.Sh NAME +.Nm Sh-parbefore +.Nd paragraph macro before the first section header +.Sh DESCRIPTION +some text diff --git a/regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_ascii b/regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_ascii new file mode 100644 index 00000000000..e92ae81ccbc --- /dev/null +++ b/regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_ascii @@ -0,0 +1,9 @@ +SH-PARBEFORE(1) General Commands Manual SH-PARBEFORE(1) + +NNAAMMEE + SShh--ppaarrbbeeffoorree - paragraph macro before the first section header + +DDEESSCCRRIIPPTTIIOONN + some text + +OpenBSD April 28, 2017 OpenBSD diff --git a/regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_lint b/regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_lint new file mode 100644 index 00000000000..fcb6194291d --- /dev/null +++ b/regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_lint @@ -0,0 +1 @@ +mandoc: parbefore.in:4:2: WARNING: skipping paragraph macro: Pp before Sh diff --git a/regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_markdown b/regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_markdown new file mode 100644 index 00000000000..50f7789543c --- /dev/null +++ b/regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_markdown @@ -0,0 +1,11 @@ +SH-PARBEFORE(1) - General Commands Manual + +# NAME + +**Sh-parbefore** - paragraph macro before the first section header + +# DESCRIPTION + +some text + +OpenBSD - April 28, 2017 diff --git a/regress/usr.bin/mandoc/mdoc/Sh/parborder.in b/regress/usr.bin/mandoc/mdoc/Sh/parborder.in new file mode 100644 index 00000000000..a909a0cfb2c --- /dev/null +++ b/regress/usr.bin/mandoc/mdoc/Sh/parborder.in @@ -0,0 +1,21 @@ +.Dd April 28, 2017 +.Dt SH-PARBORDER 1 +.Os OpenBSD +.Sh NAME +.Nm Sh-parborder +.Nd paragraph macros at the beginning and end of sections +.Sh DESCRIPTION +.Pp +descriptive text +.Pp +.Sh EXAMPLES +.Pp +example text +.Pp +.Ss Subsection +.Pp +subsection text +.Pp +.Ss Another subsection +more subsection text +.Pp diff --git a/regress/usr.bin/mandoc/mdoc/Sh/parborder.out_ascii b/regress/usr.bin/mandoc/mdoc/Sh/parborder.out_ascii new file mode 100644 index 00000000000..9c8d04b2e2e --- /dev/null +++ b/regress/usr.bin/mandoc/mdoc/Sh/parborder.out_ascii @@ -0,0 +1,18 @@ +SH-PARBORDER(1) General Commands Manual SH-PARBORDER(1) + +NNAAMMEE + SShh--ppaarrbboorrddeerr - paragraph macros at the beginning and end of sections + +DDEESSCCRRIIPPTTIIOONN + descriptive text + +EEXXAAMMPPLLEESS + example text + + SSuubbsseeccttiioonn + subsection text + + AAnnootthheerr ssuubbsseeccttiioonn + more subsection text + +OpenBSD April 28, 2017 OpenBSD diff --git a/regress/usr.bin/mandoc/mdoc/Sh/parborder.out_lint b/regress/usr.bin/mandoc/mdoc/Sh/parborder.out_lint new file mode 100644 index 00000000000..cd6c5c2330f --- /dev/null +++ b/regress/usr.bin/mandoc/mdoc/Sh/parborder.out_lint @@ -0,0 +1,7 @@ +mandoc: parborder.in:8:2: WARNING: skipping paragraph macro: Pp after Sh +mandoc: parborder.in:10:2: WARNING: skipping paragraph macro: Pp at the end of Sh +mandoc: parborder.in:12:2: WARNING: skipping paragraph macro: Pp after Sh +mandoc: parborder.in:16:2: WARNING: skipping paragraph macro: Pp after Ss +mandoc: parborder.in:18:2: WARNING: skipping paragraph macro: Pp at the end of Ss +mandoc: parborder.in:14:2: WARNING: skipping paragraph macro: Pp before Ss +mandoc: parborder.in:21:2: WARNING: skipping paragraph macro: Pp at the end of Ss diff --git a/regress/usr.bin/mandoc/mdoc/Sh/parborder.out_markdown b/regress/usr.bin/mandoc/mdoc/Sh/parborder.out_markdown new file mode 100644 index 00000000000..8595760b227 --- /dev/null +++ b/regress/usr.bin/mandoc/mdoc/Sh/parborder.out_markdown @@ -0,0 +1,23 @@ +SH-PARBORDER(1) - General Commands Manual + +# NAME + +**Sh-parborder** - paragraph macros at the beginning and end of sections + +# DESCRIPTION + +descriptive text + +# EXAMPLES + +example text + +## Subsection + +subsection text + +## Another subsection + +more subsection text + +OpenBSD - April 28, 2017 diff --git a/usr.bin/mandoc/mdoc_validate.c b/usr.bin/mandoc/mdoc_validate.c index 3021db6eef9..c6994926dd5 100644 --- a/usr.bin/mandoc/mdoc_validate.c +++ b/usr.bin/mandoc/mdoc_validate.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mdoc_validate.c,v 1.236 2017/04/24 23:06:09 schwarze Exp $ */ +/* $OpenBSD: mdoc_validate.c,v 1.237 2017/04/28 16:23:30 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010-2017 Ingo Schwarze @@ -2003,6 +2003,9 @@ post_ignpar(POST_ARGS) struct roff_node *np; switch (mdoc->last->type) { + case ROFFT_BLOCK: + post_prevpar(mdoc); + return; case ROFFT_HEAD: post_hyph(mdoc); return; -- 2.20.1