summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/Makefile15
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/first.out_ascii6
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/parbefore.in9
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_ascii9
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_lint1
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/parbefore.out_markdown11
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/parborder.in21
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/parborder.out_ascii18
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/parborder.out_lint7
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/parborder.out_markdown23
-rw-r--r--usr.bin/mandoc/mdoc_validate.c5
11 files changed, 119 insertions, 6 deletions
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 <bsd.regress.mk>
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 <kristaps@bsd.lv>
* Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -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;