aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/regress/man
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-02-08 03:02:13 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-02-08 03:02:13 +0000
commitd9f0f81c846a8405c29870e4a8379e5e79d1cad3 (patch)
treec07efd74ac58650949dc67576001a720e688319f /regress/man
parentcdbb1fca07752eb230e5219c22e9e65075c85b82 (diff)
downloadmandoc-d9f0f81c846a8405c29870e4a8379e5e79d1cad3.tar.gz
mandoc-d9f0f81c846a8405c29870e4a8379e5e79d1cad3.tar.zst
mandoc-d9f0f81c846a8405c29870e4a8379e5e79d1cad3.zip
Finally port the OpenBSD regression suite.
Both kristaps@ and wiz@ repeated asked for this, literally for years.
Diffstat (limited to 'regress/man')
-rw-r--r--regress/man/B/Makefile6
-rw-r--r--regress/man/B/args.in20
-rw-r--r--regress/man/B/args.out_ascii18
-rw-r--r--regress/man/B/args.out_lint1
-rw-r--r--regress/man/BI/Makefile5
-rw-r--r--regress/man/BI/emptyargs.in10
-rw-r--r--regress/man/BI/emptyargs.out_ascii18
-rw-r--r--regress/man/BI/literal.in12
-rw-r--r--regress/man/BI/literal.out_ascii18
-rw-r--r--regress/man/EX/Makefile5
-rw-r--r--regress/man/EX/args.in12
-rw-r--r--regress/man/EX/args.out_ascii16
-rw-r--r--regress/man/EX/nested.in18
-rw-r--r--regress/man/EX/nested.out_ascii19
-rw-r--r--regress/man/EX/spacing.in35
-rw-r--r--regress/man/EX/spacing.out_ascii27
-rw-r--r--regress/man/HP/Makefile5
-rw-r--r--regress/man/HP/break.in10
-rw-r--r--regress/man/HP/break.out_ascii16
-rw-r--r--regress/man/HP/literal.in26
-rw-r--r--regress/man/HP/literal.out_ascii27
-rw-r--r--regress/man/HP/macrotag.in13
-rw-r--r--regress/man/HP/macrotag.out_ascii17
-rw-r--r--regress/man/HP/manyargs.in45
-rw-r--r--regress/man/HP/manyargs.out_ascii43
-rw-r--r--regress/man/HP/spacing.in59
-rw-r--r--regress/man/HP/spacing.out_ascii58
-rw-r--r--regress/man/IP/Makefile6
-rw-r--r--regress/man/IP/empty.in26
-rw-r--r--regress/man/IP/empty.out_ascii26
-rw-r--r--regress/man/IP/empty.out_lint2
-rw-r--r--regress/man/IP/literal.in24
-rw-r--r--regress/man/IP/literal.out_ascii26
-rw-r--r--regress/man/IP/longhead.in10
-rw-r--r--regress/man/IP/longhead.out_ascii19
-rw-r--r--regress/man/IP/manyargs.in39
-rw-r--r--regress/man/IP/manyargs.out_ascii40
-rw-r--r--regress/man/IP/spacing.in31
-rw-r--r--regress/man/IP/spacing.out_ascii41
-rw-r--r--regress/man/IP/width.in78
-rw-r--r--regress/man/IP/width.out_ascii87
-rw-r--r--regress/man/Makefile6
-rw-r--r--regress/man/Makefile.inc5
-rw-r--r--regress/man/OP/Makefile6
-rw-r--r--regress/man/OP/args.in13
-rw-r--r--regress/man/OP/args.out_ascii14
-rw-r--r--regress/man/OP/args.out_lint2
-rw-r--r--regress/man/PD/Makefile6
-rw-r--r--regress/man/PD/args.in28
-rw-r--r--regress/man/PD/args.out_ascii31
-rw-r--r--regress/man/PD/args.out_lint1
-rw-r--r--regress/man/PD/nextline.in42
-rw-r--r--regress/man/PD/nextline.out_ascii33
-rw-r--r--regress/man/PD/spacing.in62
-rw-r--r--regress/man/PD/spacing.out_ascii70
-rw-r--r--regress/man/PP/Makefile6
-rw-r--r--regress/man/PP/args.in11
-rw-r--r--regress/man/PP/args.out_ascii19
-rw-r--r--regress/man/PP/args.out_lint3
-rw-r--r--regress/man/PP/empty.in15
-rw-r--r--regress/man/PP/empty.out_ascii19
-rw-r--r--regress/man/PP/empty.out_lint3
-rw-r--r--regress/man/RS/Makefile7
-rw-r--r--regress/man/RS/REarg.in26
-rw-r--r--regress/man/RS/REarg.out_ascii23
-rw-r--r--regress/man/RS/REarg.out_lint7
-rw-r--r--regress/man/RS/breaking.in23
-rw-r--r--regress/man/RS/breaking.out_ascii21
-rw-r--r--regress/man/RS/broken.in45
-rw-r--r--regress/man/RS/broken.out_ascii41
-rw-r--r--regress/man/RS/empty.in16
-rw-r--r--regress/man/RS/empty.out_ascii16
-rw-r--r--regress/man/RS/empty.out_lint1
-rw-r--r--regress/man/RS/literal.in18
-rw-r--r--regress/man/RS/literal.out_ascii20
-rw-r--r--regress/man/RS/lonelyRE.in21
-rw-r--r--regress/man/RS/lonelyRE.out_ascii23
-rw-r--r--regress/man/RS/lonelyRE.out_lint3
-rw-r--r--regress/man/RS/nested.in54
-rw-r--r--regress/man/RS/nested.out_ascii41
-rw-r--r--regress/man/RS/noRE.in9
-rw-r--r--regress/man/RS/noRE.out_ascii14
-rw-r--r--regress/man/RS/noRE.out_lint1
-rw-r--r--regress/man/RS/nowidth.in20
-rw-r--r--regress/man/RS/nowidth.out_ascii21
-rw-r--r--regress/man/RS/width.in30
-rw-r--r--regress/man/RS/width.out_ascii22
-rw-r--r--regress/man/SH/Makefile16
-rw-r--r--regress/man/SH/broken.in6
-rw-r--r--regress/man/SH/broken.out_ascii13
-rw-r--r--regress/man/SH/broken.out_lint1
-rw-r--r--regress/man/SH/broken_eline.in7
-rw-r--r--regress/man/SH/broken_eline.out_ascii13
-rw-r--r--regress/man/SH/broken_eline.out_lint2
-rw-r--r--regress/man/SH/empty_before.in6
-rw-r--r--regress/man/SH/empty_before.out_ascii13
-rw-r--r--regress/man/SH/empty_before.out_lint1
-rw-r--r--regress/man/SH/longarg.in9
-rw-r--r--regress/man/SH/longarg.out_ascii17
-rw-r--r--regress/man/SH/noarg.in42
-rw-r--r--regress/man/SH/noarg.out_ascii32
-rw-r--r--regress/man/SH/noarg.out_lint13
-rw-r--r--regress/man/SS/Makefile16
-rw-r--r--regress/man/SS/broken.in6
-rw-r--r--regress/man/SS/broken.out_ascii13
-rw-r--r--regress/man/SS/broken.out_lint1
-rw-r--r--regress/man/SS/broken_eline.in7
-rw-r--r--regress/man/SS/broken_eline.out_ascii13
-rw-r--r--regress/man/SS/broken_eline.out_lint2
-rw-r--r--regress/man/SS/longarg.in9
-rw-r--r--regress/man/SS/longarg.out_ascii17
-rw-r--r--regress/man/SS/noarg.in42
-rw-r--r--regress/man/SS/noarg.out_ascii32
-rw-r--r--regress/man/SS/noarg.out_lint13
-rw-r--r--regress/man/TH/Makefile13
-rw-r--r--regress/man/TH/baddate.in5
-rw-r--r--regress/man/TH/baddate.out_ascii13
-rw-r--r--regress/man/TH/baddate.out_lint1
-rw-r--r--regress/man/TH/case.in5
-rw-r--r--regress/man/TH/case.out_ascii13
-rw-r--r--regress/man/TH/case.out_lint1
-rw-r--r--regress/man/TH/emptydate.in5
-rw-r--r--regress/man/TH/emptydate.out_ascii13
-rw-r--r--regress/man/TH/emptydate.out_lint1
-rw-r--r--regress/man/TH/isodate.in5
-rw-r--r--regress/man/TH/isodate.out_ascii13
-rw-r--r--regress/man/TH/longdate.in5
-rw-r--r--regress/man/TH/longdate.out_ascii15
-rw-r--r--regress/man/TH/longdate.out_lint1
-rw-r--r--regress/man/TH/longtit.in5
-rw-r--r--regress/man/TH/longtit.out_ascii15
-rw-r--r--regress/man/TH/longvol.in5
-rw-r--r--regress/man/TH/longvol.out_ascii14
-rw-r--r--regress/man/TH/mdocdate.in5
-rw-r--r--regress/man/TH/mdocdate.out_ascii13
-rw-r--r--regress/man/TH/noTH.in4
-rw-r--r--regress/man/TH/noTH.out_lint2
-rw-r--r--regress/man/TH/noarg.in5
-rw-r--r--regress/man/TH/noarg.out_ascii13
-rw-r--r--regress/man/TH/noarg.out_lint3
-rw-r--r--regress/man/TH/nobody.in1
-rw-r--r--regress/man/TH/nobody.out_ascii5
-rw-r--r--regress/man/TH/nobody.out_lint1
-rw-r--r--regress/man/TH/onearg.in5
-rw-r--r--regress/man/TH/onearg.out_ascii13
-rw-r--r--regress/man/TH/onearg.out_lint2
-rw-r--r--regress/man/TH/onlyyear.in5
-rw-r--r--regress/man/TH/onlyyear.out_ascii13
-rw-r--r--regress/man/TH/sixargs.in5
-rw-r--r--regress/man/TH/sixargs.out_ascii13
-rw-r--r--regress/man/TH/sixargs.out_lint1
-rw-r--r--regress/man/TH/twoargs.in5
-rw-r--r--regress/man/TH/twoargs.out_ascii13
-rw-r--r--regress/man/TH/twoargs.out_lint2
-rw-r--r--regress/man/TP/Makefile14
-rw-r--r--regress/man/TP/badarg.in20
-rw-r--r--regress/man/TP/badarg.out_ascii22
-rw-r--r--regress/man/TP/broken.in13
-rw-r--r--regress/man/TP/broken.out_ascii15
-rw-r--r--regress/man/TP/broken.out_lint1
-rw-r--r--regress/man/TP/double.in40
-rw-r--r--regress/man/TP/double.out_ascii39
-rw-r--r--regress/man/TP/double.out_lint5
-rw-r--r--regress/man/TP/eof.in6
-rw-r--r--regress/man/TP/eof.out_ascii13
-rw-r--r--regress/man/TP/eof.out_lint1
-rw-r--r--regress/man/TP/fill.in16
-rw-r--r--regress/man/TP/fill.out_ascii21
-rw-r--r--regress/man/TP/literal.in26
-rw-r--r--regress/man/TP/literal.out_ascii26
-rw-r--r--regress/man/TP/longhead.in11
-rw-r--r--regress/man/TP/longhead.out_ascii19
-rw-r--r--regress/man/TP/macrotag.in13
-rw-r--r--regress/man/TP/macrotag.out_ascii18
-rw-r--r--regress/man/TP/manyargs.in45
-rw-r--r--regress/man/TP/manyargs.out_ascii40
-rw-r--r--regress/man/TP/sameline.in30
-rw-r--r--regress/man/TP/sameline.out_ascii29
-rw-r--r--regress/man/TP/spacing.in42
-rw-r--r--regress/man/TP/spacing.out_ascii43
-rw-r--r--regress/man/TP/width.in89
-rw-r--r--regress/man/TP/width.out_ascii81
-rw-r--r--regress/man/TS/Makefile22
-rw-r--r--regress/man/TS/break.in33
-rw-r--r--regress/man/TS/break.out_ascii29
-rw-r--r--regress/man/TS/break.out_lint4
-rw-r--r--regress/man/TS/vspace.in48
-rw-r--r--regress/man/TS/vspace.out_ascii42
-rw-r--r--regress/man/UR/Makefile12
-rw-r--r--regress/man/UR/args.in29
-rw-r--r--regress/man/UR/args.out_ascii23
-rw-r--r--regress/man/UR/args.out_lint5
-rw-r--r--regress/man/UR/noUE.in11
-rw-r--r--regress/man/UR/noUE.out_ascii15
-rw-r--r--regress/man/UR/noUE.out_lint2
-rw-r--r--regress/man/blank/Makefile6
-rw-r--r--regress/man/blank/afterSH.in77
-rw-r--r--regress/man/blank/afterSH.out_ascii58
-rw-r--r--regress/man/blank/afterSH.out_lint4
-rw-r--r--regress/man/blank/afterSS.in78
-rw-r--r--regress/man/blank/afterSS.out_ascii60
-rw-r--r--regress/man/blank/afterSS.out_lint4
-rw-r--r--regress/man/blank/line.in86
-rw-r--r--regress/man/blank/line.out_ascii81
-rw-r--r--regress/man/blank/line.out_lint4
-rw-r--r--regress/man/nf/Makefile6
-rw-r--r--regress/man/nf/args.in12
-rw-r--r--regress/man/nf/args.out_ascii16
-rw-r--r--regress/man/nf/args.out_lint2
-rw-r--r--regress/man/nf/dupe.in17
-rw-r--r--regress/man/nf/dupe.out_ascii19
-rw-r--r--regress/man/nf/dupe.out_lint2
-rw-r--r--regress/man/nf/indent.in21
-rw-r--r--regress/man/nf/indent.out_ascii25
-rw-r--r--regress/man/nf/userdef.in21
-rw-r--r--regress/man/nf/userdef.out_ascii19
-rw-r--r--regress/man/nf/vert.in28
-rw-r--r--regress/man/nf/vert.out_ascii24
218 files changed, 4254 insertions, 0 deletions
diff --git a/regress/man/B/Makefile b/regress/man/B/Makefile
new file mode 100644
index 00000000..8e4d72a9
--- /dev/null
+++ b/regress/man/B/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.1 2014/08/14 02:00:52 schwarze Exp $
+
+REGRESS_TARGETS = args
+LINT_TARGETS = args
+
+.include <bsd.regress.mk>
diff --git a/regress/man/B/args.in b/regress/man/B/args.in
new file mode 100644
index 00000000..57493d5d
--- /dev/null
+++ b/regress/man/B/args.in
@@ -0,0 +1,20 @@
+.TH B-ARGS 1 "July 30, 2014" OpenBSD
+.SH NAME
+B-args \- arguments to font macros
+.SH DESCRIPTION
+This is
+.B bold
+text.
+It also works with
+.B several words on a line
+and with
+.B
+next line
+scope.
+.nf
+In no-fill mode:
+.B two words
+and another line.
+.fi
+It has no effect at the end of the file:
+.B
diff --git a/regress/man/B/args.out_ascii b/regress/man/B/args.out_ascii
new file mode 100644
index 00000000..e5102675
--- /dev/null
+++ b/regress/man/B/args.out_ascii
@@ -0,0 +1,18 @@
+B-ARGS(1) General Commands Manual B-ARGS(1)
+
+
+
+NNAAMMEE
+ B-args - arguments to font macros
+
+DDEESSCCRRIIPPTTIIOONN
+ This is bboolldd text. It also works with sseevveerraall wwoorrddss oonn aa lliinnee and with
+ nneexxtt lliinnee scope.
+ In no-fill mode:
+ ttwwoo wwoorrddss
+ and another line.
+ It has no effect at the end of the file:
+
+
+
+OpenBSD July 30, 2014 B-ARGS(1)
diff --git a/regress/man/B/args.out_lint b/regress/man/B/args.out_lint
new file mode 100644
index 00000000..0239c0a3
--- /dev/null
+++ b/regress/man/B/args.out_lint
@@ -0,0 +1 @@
+mandoc: args.in:20:2: WARNING: line scope broken: EOF breaks B
diff --git a/regress/man/BI/Makefile b/regress/man/BI/Makefile
new file mode 100644
index 00000000..b23aeead
--- /dev/null
+++ b/regress/man/BI/Makefile
@@ -0,0 +1,5 @@
+# $OpenBSD: Makefile,v 1.3 2015/04/06 22:06:06 schwarze Exp $
+
+REGRESS_TARGETS = emptyargs literal
+
+.include <bsd.regress.mk>
diff --git a/regress/man/BI/emptyargs.in b/regress/man/BI/emptyargs.in
new file mode 100644
index 00000000..acbf4986
--- /dev/null
+++ b/regress/man/BI/emptyargs.in
@@ -0,0 +1,10 @@
+.TH BI-EMPTYARGS 1 "April 6, 2015" OpenBSD
+.SH NAME
+BI-emptyargs \- empty arguments to font alternation macros
+.SH DESCRIPTION
+leading text
+.TP 6n
+.BI bold italic "" ""
+.BI bold "" "" italic
+.PP
+trailing text
diff --git a/regress/man/BI/emptyargs.out_ascii b/regress/man/BI/emptyargs.out_ascii
new file mode 100644
index 00000000..3469b7e0
--- /dev/null
+++ b/regress/man/BI/emptyargs.out_ascii
@@ -0,0 +1,18 @@
+BI-EMPTYARGS(1) General Commands Manual BI-EMPTYARGS(1)
+
+
+
+NNAAMMEE
+ BI-emptyargs - empty arguments to font alternation macros
+
+DDEESSCCRRIIPPTTIIOONN
+ leading text
+
+ bboolldd_i_t_a_l_i_c
+ bboolldd_i_t_a_l_i_c
+
+ trailing text
+
+
+
+OpenBSD April 6, 2015 BI-EMPTYARGS(1)
diff --git a/regress/man/BI/literal.in b/regress/man/BI/literal.in
new file mode 100644
index 00000000..ebd22a67
--- /dev/null
+++ b/regress/man/BI/literal.in
@@ -0,0 +1,12 @@
+.TH GETTEXT 3 "May 2001" "GNU gettext 0.18"
+.SH NAME
+gettext, dgettext, dcgettext \- translate message
+.SH SYNOPSIS
+.nf
+.B #include <libintl.h>
+.sp
+.BI "char * gettext (const char * " msgid );
+.BI "char * dgettext (const char * " domainname ", const char * " msgid );
+.BI "char * dcgettext (const char * " domainname ", const char * " msgid ,
+.BI " int " category );
+.fi
diff --git a/regress/man/BI/literal.out_ascii b/regress/man/BI/literal.out_ascii
new file mode 100644
index 00000000..d5682a8e
--- /dev/null
+++ b/regress/man/BI/literal.out_ascii
@@ -0,0 +1,18 @@
+GETTEXT(3) Library Functions Manual GETTEXT(3)
+
+
+
+NNAAMMEE
+ gettext, dgettext, dcgettext - translate message
+
+SSYYNNOOPPSSIISS
+ ##iinncclluuddee <<lliibbiinnttll..hh>>
+
+ cchhaarr ** ggeetttteexxtt ((ccoonnsstt cchhaarr ** _m_s_g_i_d));;
+ cchhaarr ** ddggeetttteexxtt ((ccoonnsstt cchhaarr ** _d_o_m_a_i_n_n_a_m_e,, ccoonnsstt cchhaarr ** _m_s_g_i_d));;
+ cchhaarr ** ddccggeetttteexxtt ((ccoonnsstt cchhaarr ** _d_o_m_a_i_n_n_a_m_e,, ccoonnsstt cchhaarr ** _m_s_g_i_d,,
+ iinntt _c_a_t_e_g_o_r_y));;
+
+
+
+GNU gettext 0.18 May 2001 GETTEXT(3)
diff --git a/regress/man/EX/Makefile b/regress/man/EX/Makefile
new file mode 100644
index 00000000..8837c524
--- /dev/null
+++ b/regress/man/EX/Makefile
@@ -0,0 +1,5 @@
+# $OpenBSD: Makefile,v 1.1 2012/06/02 20:07:09 schwarze Exp $
+
+REGRESS_TARGETS=spacing nested args
+
+.include <bsd.regress.mk>
diff --git a/regress/man/EX/args.in b/regress/man/EX/args.in
new file mode 100644
index 00000000..ac88a38a
--- /dev/null
+++ b/regress/man/EX/args.in
@@ -0,0 +1,12 @@
+.TH EX-ARGS 1 "June 3, 2012" OpenBSD
+.SH NAME
+EX-args \- example macro with arguments
+.SH DESCRIPTION
+regular
+text
+.EX arg1 arg2 arg3
+literal
+text
+.EE arg1 arg2 arg3
+regular
+text
diff --git a/regress/man/EX/args.out_ascii b/regress/man/EX/args.out_ascii
new file mode 100644
index 00000000..c30bfb31
--- /dev/null
+++ b/regress/man/EX/args.out_ascii
@@ -0,0 +1,16 @@
+EX-ARGS(1) General Commands Manual EX-ARGS(1)
+
+
+
+NNAAMMEE
+ EX-args - example macro with arguments
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ literal
+ text
+ regular text
+
+
+
+OpenBSD June 3, 2012 EX-ARGS(1)
diff --git a/regress/man/EX/nested.in b/regress/man/EX/nested.in
new file mode 100644
index 00000000..8ecf0ca2
--- /dev/null
+++ b/regress/man/EX/nested.in
@@ -0,0 +1,18 @@
+.TH EX-NESTED 1 "June 3, 2012" OpenBSD
+.SH NAME
+EX-nested \- nested example macros
+.SH DESCRIPTION
+regular
+text
+.EX
+outer
+example
+.EX
+inner
+example
+.EE
+outer
+example
+.EE
+regular
+text
diff --git a/regress/man/EX/nested.out_ascii b/regress/man/EX/nested.out_ascii
new file mode 100644
index 00000000..3d639b28
--- /dev/null
+++ b/regress/man/EX/nested.out_ascii
@@ -0,0 +1,19 @@
+EX-NESTED(1) General Commands Manual EX-NESTED(1)
+
+
+
+NNAAMMEE
+ EX-nested - nested example macros
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ outer
+ example
+ inner
+ example
+ outer example
+ regular text
+
+
+
+OpenBSD June 3, 2012 EX-NESTED(1)
diff --git a/regress/man/EX/spacing.in b/regress/man/EX/spacing.in
new file mode 100644
index 00000000..aa307d05
--- /dev/null
+++ b/regress/man/EX/spacing.in
@@ -0,0 +1,35 @@
+.TH EX-SPACING 1 "June 3, 2012" OpenBSD
+.SH NAME
+EX-spacing \- spacing around the example macro
+.SH DESCRIPTION
+regular
+text
+.EX
+example
+text
+.EE
+regular
+text
+.nf
+literal
+text
+.EX
+example
+text
+.EE
+regular
+text
+.PP
+.EX
+after PP, before nf
+.EE
+.nf
+.EX
+after nf, before fi
+.EE
+.fi
+after fi, before PP
+.EE
+.PP
+regular
+text
diff --git a/regress/man/EX/spacing.out_ascii b/regress/man/EX/spacing.out_ascii
new file mode 100644
index 00000000..0dd2527f
--- /dev/null
+++ b/regress/man/EX/spacing.out_ascii
@@ -0,0 +1,27 @@
+EX-SPACING(1) General Commands Manual EX-SPACING(1)
+
+
+
+NNAAMMEE
+ EX-spacing - spacing around the example macro
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ example
+ text
+ regular text
+ literal
+ text
+ example
+ text
+ regular text
+
+ after PP, before nf
+ after nf, before fi
+ after fi, before PP
+
+ regular text
+
+
+
+OpenBSD June 3, 2012 EX-SPACING(1)
diff --git a/regress/man/HP/Makefile b/regress/man/HP/Makefile
new file mode 100644
index 00000000..e0d2a3b4
--- /dev/null
+++ b/regress/man/HP/Makefile
@@ -0,0 +1,5 @@
+# $OpenBSD: Makefile,v 1.2 2014/04/08 04:45:50 schwarze Exp $
+
+REGRESS_TARGETS = break literal macrotag manyargs spacing
+
+.include <bsd.regress.mk>
diff --git a/regress/man/HP/break.in b/regress/man/HP/break.in
new file mode 100644
index 00000000..d760b8f2
--- /dev/null
+++ b/regress/man/HP/break.in
@@ -0,0 +1,10 @@
+.TH HP-BREAK 1 "September 21, 2011" OpenBSD
+.SH NAME
+HP-break \- breaking the head line of hanged paragraphs
+.SH DESCRIPTION
+.HP 12n
+This is an extremely long head line of a hanged paragraph;
+it is so long that it won't even fit on the line.
+.fi
+The body of the hanged paragraph is quite long as well
+and will again break the line.
diff --git a/regress/man/HP/break.out_ascii b/regress/man/HP/break.out_ascii
new file mode 100644
index 00000000..bb9cca2c
--- /dev/null
+++ b/regress/man/HP/break.out_ascii
@@ -0,0 +1,16 @@
+HP-BREAK(1) General Commands Manual HP-BREAK(1)
+
+
+
+NNAAMMEE
+ HP-break - breaking the head line of hanged paragraphs
+
+DDEESSCCRRIIPPTTIIOONN
+ This is an extremely long head line of a hanged paragraph; it is so
+ long that it won't even fit on the line.
+ The body of the hanged paragraph is quite long as well and
+ will again break the line.
+
+
+
+OpenBSD September 21, 2011 HP-BREAK(1)
diff --git a/regress/man/HP/literal.in b/regress/man/HP/literal.in
new file mode 100644
index 00000000..e7caee1c
--- /dev/null
+++ b/regress/man/HP/literal.in
@@ -0,0 +1,26 @@
+.TH HP-LITERAL 1 "January 4, 2011" OpenBSD
+.SH NAME
+HP-literal \- hanged paragraphs in literal context
+.SH DESCRIPTION
+regular
+text
+.HP 10n
+tag
+indented
+text
+.PP
+regular
+text
+.nf
+literal
+text
+.HP 10n
+tag
+indented
+text
+.PP
+literal
+text
+.fi
+regular
+text
diff --git a/regress/man/HP/literal.out_ascii b/regress/man/HP/literal.out_ascii
new file mode 100644
index 00000000..ff7aabf7
--- /dev/null
+++ b/regress/man/HP/literal.out_ascii
@@ -0,0 +1,27 @@
+HP-LITERAL(1) General Commands Manual HP-LITERAL(1)
+
+
+
+NNAAMMEE
+ HP-literal - hanged paragraphs in literal context
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+
+ tag indented text
+
+ regular text
+ literal
+ text
+
+ tag
+ indented
+ text
+
+ literal
+ text
+ regular text
+
+
+
+OpenBSD January 4, 2011 HP-LITERAL(1)
diff --git a/regress/man/HP/macrotag.in b/regress/man/HP/macrotag.in
new file mode 100644
index 00000000..6582498c
--- /dev/null
+++ b/regress/man/HP/macrotag.in
@@ -0,0 +1,13 @@
+.TH HP-MACROTAG 1 "September 20, 2011" OpenBSD
+.SH NAME
+HP-macrotag \- macro in the head of a tagged paragraph
+.SH DESCRIPTION
+regular
+text
+.HP
+.B longindent
+indented
+text
+.PP
+regular
+text
diff --git a/regress/man/HP/macrotag.out_ascii b/regress/man/HP/macrotag.out_ascii
new file mode 100644
index 00000000..64541ab3
--- /dev/null
+++ b/regress/man/HP/macrotag.out_ascii
@@ -0,0 +1,17 @@
+HP-MACROTAG(1) General Commands Manual HP-MACROTAG(1)
+
+
+
+NNAAMMEE
+ HP-macrotag - macro in the head of a tagged paragraph
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+
+ lloonnggiinnddeenntt indented text
+
+ regular text
+
+
+
+OpenBSD September 20, 2011 HP-MACROTAG(1)
diff --git a/regress/man/HP/manyargs.in b/regress/man/HP/manyargs.in
new file mode 100644
index 00000000..b49e6649
--- /dev/null
+++ b/regress/man/HP/manyargs.in
@@ -0,0 +1,45 @@
+.TH HP-MANYARGS 1 "January 4, 2011" OpenBSD
+.SH NAME
+HP-manyargs \- too many header args for hanged blocks
+.SH DESCRIPTION
+regular
+text
+.HP 10n
+tag1
+indented
+text
+.PP
+regular
+text
+.HP 10n tag1
+tag2
+indented
+text
+.PP
+regular
+text
+.HP 10n tag2 tag1
+tag3
+indented
+text
+.nf
+literal
+text
+.HP 10n
+tag1
+indented
+text
+.PP
+literal
+text
+.HP 10n tag1
+tag2
+indented
+text
+.PP
+literal
+text
+.HP 10n tag2 tag1
+tag3
+indented
+text
diff --git a/regress/man/HP/manyargs.out_ascii b/regress/man/HP/manyargs.out_ascii
new file mode 100644
index 00000000..be399855
--- /dev/null
+++ b/regress/man/HP/manyargs.out_ascii
@@ -0,0 +1,43 @@
+HP-MANYARGS(1) General Commands Manual HP-MANYARGS(1)
+
+
+
+NNAAMMEE
+ HP-manyargs - too many header args for hanged blocks
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+
+ tag1 indented text
+
+ regular text
+
+ tag2 indented text
+
+ regular text
+
+ tag3 indented text
+ literal
+ text
+
+ tag1
+ indented
+ text
+
+ literal
+ text
+
+ tag2
+ indented
+ text
+
+ literal
+ text
+
+ tag3
+ indented
+ text
+
+
+
+OpenBSD January 4, 2011 HP-MANYARGS(1)
diff --git a/regress/man/HP/spacing.in b/regress/man/HP/spacing.in
new file mode 100644
index 00000000..0faec1b5
--- /dev/null
+++ b/regress/man/HP/spacing.in
@@ -0,0 +1,59 @@
+.TH HP-SPACING 1 "December 23, 2014" OpenBSD
+.SH NAME
+HP-spacing \- spacing in hanged lists
+.SH DESCRIPTION
+Normal text.
+.HP
+Each hanged paragraph gets a sufficient amount of text
+to wrap to the next line.
+.br
+And a second line.
+.sp 1v
+Vertical spacing an a third line.
+.br
+A fourth line.
+.HP -10n
+Each hanged paragraph gets a sufficient amount of text
+to wrap to the next line.
+.br
+And a second line.
+.HP -4n
+Each hanged paragraph gets a sufficient amount of text
+to wrap to the next line.
+.br
+And a second line.
+.HP 0n
+Each hanged paragraph gets a sufficient amount of text
+to wrap to the next line.
+.br
+And a second line.
+.HP 1n
+Each hanged paragraph gets a sufficient amount of text
+to wrap to the next line.
+.br
+And a second line.
+.HP 2n
+Each hanged paragraph gets a sufficient amount of text
+to wrap to the next line.
+.br
+And a second line.
+.HP 4n
+Each hanged paragraph gets a sufficient amount of text
+to wrap to the next line.
+.br
+And a second line.
+.HP 8n
+Each hanged paragraph gets a sufficient amount of text
+to wrap to the next line.
+.br
+And a second line.
+.HP 16n
+Each hanged paragraph gets a sufficient amount of text
+to wrap to the next line.
+.br
+And a second line.
+.HP 78n
+Each hanged paragraph gets a sufficient amount of text
+to wrap to the next line.
+.LP
+Normal text.
diff --git a/regress/man/HP/spacing.out_ascii b/regress/man/HP/spacing.out_ascii
new file mode 100644
index 00000000..a2233044
--- /dev/null
+++ b/regress/man/HP/spacing.out_ascii
@@ -0,0 +1,58 @@
+HP-SPACING(1) General Commands Manual HP-SPACING(1)
+
+
+
+NNAAMMEE
+ HP-spacing - spacing in hanged lists
+
+DDEESSCCRRIIPPTTIIOONN
+ Normal text.
+
+ Each hanged paragraph gets a sufficient amount of text to wrap to the
+ next line.
+ And a second line.
+
+ Vertical spacing an a third line.
+ A fourth line.
+
+ Each hanged paragraph gets a sufficient amount of text to wrap to the
+next line.
+And a second line.
+
+ Each hanged paragraph gets a sufficient amount of text to wrap to the
+ next line.
+ And a second line.
+
+ Each hanged paragraph gets a sufficient amount of text to wrap to the
+ next line.
+ And a second line.
+
+ Each hanged paragraph gets a sufficient amount of text to wrap to the
+ next line.
+ And a second line.
+
+ Each hanged paragraph gets a sufficient amount of text to wrap to the
+ next line.
+ And a second line.
+
+ Each hanged paragraph gets a sufficient amount of text to wrap to the
+ next line.
+ And a second line.
+
+ Each hanged paragraph gets a sufficient amount of text to wrap to the
+ next line.
+ And a second line.
+
+ Each hanged paragraph gets a sufficient amount of text to wrap to the
+ next line.
+ And a second line.
+
+ Each hanged paragraph gets a sufficient amount of text to wrap to the
+ next
+ line.
+
+ Normal text.
+
+
+
+OpenBSD December 23, 2014 HP-SPACING(1)
diff --git a/regress/man/IP/Makefile b/regress/man/IP/Makefile
new file mode 100644
index 00000000..9edc12e1
--- /dev/null
+++ b/regress/man/IP/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.8 2014/07/02 05:51:49 schwarze Exp $
+
+REGRESS_TARGETS = empty literal longhead manyargs spacing width
+LINT_TARGETS = empty
+
+.include <bsd.regress.mk>
diff --git a/regress/man/IP/empty.in b/regress/man/IP/empty.in
new file mode 100644
index 00000000..42afeefa
--- /dev/null
+++ b/regress/man/IP/empty.in
@@ -0,0 +1,26 @@
+.TH IP-EMPTY 1 "July 17, 2012" OpenBSD
+.SH NAME
+IP-empty \- empty indented paragraphs
+.SH DESCRIPTION
+regular
+text
+.IP
+indented
+text
+.PP
+Empty IP is deleted:
+.IP
+.IP tag1 10n
+.IP tag2
+indented
+text
+.PP
+Empty IP is deleted, RS does not cause additional spacing:
+.IP
+.RS
+.IP tag
+indented
+text
+.RE
+regular
+text
diff --git a/regress/man/IP/empty.out_ascii b/regress/man/IP/empty.out_ascii
new file mode 100644
index 00000000..24ab17fa
--- /dev/null
+++ b/regress/man/IP/empty.out_ascii
@@ -0,0 +1,26 @@
+IP-EMPTY(1) General Commands Manual IP-EMPTY(1)
+
+
+
+NNAAMMEE
+ IP-empty - empty indented paragraphs
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+
+ indented text
+
+ Empty IP is deleted:
+
+ tag1
+
+ tag2 indented text
+
+ Empty IP is deleted, RS does not cause additional spacing:
+
+ tag indented text
+ regular text
+
+
+
+OpenBSD July 17, 2012 IP-EMPTY(1)
diff --git a/regress/man/IP/empty.out_lint b/regress/man/IP/empty.out_lint
new file mode 100644
index 00000000..9f677652
--- /dev/null
+++ b/regress/man/IP/empty.out_lint
@@ -0,0 +1,2 @@
+mandoc: empty.in:12:2: WARNING: skipping paragraph macro: IP empty
+mandoc: empty.in:19:2: WARNING: skipping paragraph macro: IP empty
diff --git a/regress/man/IP/literal.in b/regress/man/IP/literal.in
new file mode 100644
index 00000000..468f1a91
--- /dev/null
+++ b/regress/man/IP/literal.in
@@ -0,0 +1,24 @@
+.TH IP-LITERAL 1 "January 4, 2011" OpenBSD
+.SH NAME
+IP-literal \- indented paragraphs in literal context
+.SH DESCRIPTION
+regular
+text
+.IP tag 10n
+indented
+text
+.PP
+regular
+text
+.nf
+literal
+text
+.IP tag 10n
+indented
+text
+.PP
+literal
+text
+.fi
+regular
+text
diff --git a/regress/man/IP/literal.out_ascii b/regress/man/IP/literal.out_ascii
new file mode 100644
index 00000000..f7e9bb8d
--- /dev/null
+++ b/regress/man/IP/literal.out_ascii
@@ -0,0 +1,26 @@
+IP-LITERAL(1) General Commands Manual IP-LITERAL(1)
+
+
+
+NNAAMMEE
+ IP-literal - indented paragraphs in literal context
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+
+ tag indented text
+
+ regular text
+ literal
+ text
+
+ tag indented
+ text
+
+ literal
+ text
+ regular text
+
+
+
+OpenBSD January 4, 2011 IP-LITERAL(1)
diff --git a/regress/man/IP/longhead.in b/regress/man/IP/longhead.in
new file mode 100644
index 00000000..f24922c0
--- /dev/null
+++ b/regress/man/IP/longhead.in
@@ -0,0 +1,10 @@
+.TH IP-LONGHEAD 1 "April 8, 2014" OpenBSD
+.SH NAME
+IP-longhead \- indented paragraph with a long head
+.SH DESCRIPTION
+normal text
+.IP "This indented paragraph has ridiculously long text \
+in its head, such that it doesn't even fit on the line" 6n
+paragraph body
+.PP
+normal text
diff --git a/regress/man/IP/longhead.out_ascii b/regress/man/IP/longhead.out_ascii
new file mode 100644
index 00000000..ce0ef109
--- /dev/null
+++ b/regress/man/IP/longhead.out_ascii
@@ -0,0 +1,19 @@
+IP-LONGHEAD(1) General Commands Manual IP-LONGHEAD(1)
+
+
+
+NNAAMMEE
+ IP-longhead - indented paragraph with a long head
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ This indented paragraph has ridiculously long text in its head, such
+ that it doesn't even fit on the line
+ paragraph body
+
+ normal text
+
+
+
+OpenBSD April 8, 2014 IP-LONGHEAD(1)
diff --git a/regress/man/IP/manyargs.in b/regress/man/IP/manyargs.in
new file mode 100644
index 00000000..4a683829
--- /dev/null
+++ b/regress/man/IP/manyargs.in
@@ -0,0 +1,39 @@
+.TH IP-MANYARGS 1 "January 4, 2011" OpenBSD
+.SH NAME
+IP-manyargs \- too many header args for indented blocks
+.SH DESCRIPTION
+regular
+text
+.IP tag1 10n
+indented
+text
+.PP
+regular
+text
+.IP tag2 10n tag1
+indented
+text
+.PP
+regular
+text
+.IP tag3 10n tag2 tag1
+indented
+text
+.nf
+literal
+text
+.IP tag1 10n
+indented
+text
+.PP
+literal
+text
+.IP tag2 10n tag1
+indented
+text
+.PP
+literal
+text
+.IP tag3 10n tag2 tag1
+indented
+text
diff --git a/regress/man/IP/manyargs.out_ascii b/regress/man/IP/manyargs.out_ascii
new file mode 100644
index 00000000..ab05c32d
--- /dev/null
+++ b/regress/man/IP/manyargs.out_ascii
@@ -0,0 +1,40 @@
+IP-MANYARGS(1) General Commands Manual IP-MANYARGS(1)
+
+
+
+NNAAMMEE
+ IP-manyargs - too many header args for indented blocks
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+
+ tag1 indented text
+
+ regular text
+
+ tag2 indented text
+
+ regular text
+
+ tag3 indented text
+ literal
+ text
+
+ tag1 indented
+ text
+
+ literal
+ text
+
+ tag2 indented
+ text
+
+ literal
+ text
+
+ tag3 indented
+ text
+
+
+
+OpenBSD January 4, 2011 IP-MANYARGS(1)
diff --git a/regress/man/IP/spacing.in b/regress/man/IP/spacing.in
new file mode 100644
index 00000000..e1239b5b
--- /dev/null
+++ b/regress/man/IP/spacing.in
@@ -0,0 +1,31 @@
+.TH IP-SPACING 1 "September 21, 2015" OpenBSD
+.SH NAME
+IP-spacing \- spacing in indentend paragraphs
+.SH DESCRIPTION
+Normal text.
+.IP tag
+Indented text.
+.IP four
+Indented text.
+.IP ffive
+Indented text.
+.IP sixsix
+Indented text.
+.IP seseven
+Indented text.
+.IP "a much longer tag"
+Indented text.
+.LP
+Tags with trailing space:
+.IP "tag "
+Three plus one makes four.
+.IP "tag "
+Three plus two makes five.
+.IP "tag "
+Three plus three makes six.
+.IP "tag "
+Three plus four makes seven.
+.IP "tag "
+Three plus five makes eight.
+.LP
+Normal text.
diff --git a/regress/man/IP/spacing.out_ascii b/regress/man/IP/spacing.out_ascii
new file mode 100644
index 00000000..0aeb8291
--- /dev/null
+++ b/regress/man/IP/spacing.out_ascii
@@ -0,0 +1,41 @@
+IP-SPACING(1) General Commands Manual IP-SPACING(1)
+
+
+
+NNAAMMEE
+ IP-spacing - spacing in indentend paragraphs
+
+DDEESSCCRRIIPPTTIIOONN
+ Normal text.
+
+ tag Indented text.
+
+ four Indented text.
+
+ ffive Indented text.
+
+ sixsix Indented text.
+
+ seseven
+ Indented text.
+
+ a much longer tag
+ Indented text.
+
+ Tags with trailing space:
+
+ tag Three plus one makes four.
+
+ tag Three plus two makes five.
+
+ tag Three plus three makes six.
+
+ tag Three plus four makes seven.
+
+ tag Three plus five makes eight.
+
+ Normal text.
+
+
+
+OpenBSD September 21, 2015 IP-SPACING(1)
diff --git a/regress/man/IP/width.in b/regress/man/IP/width.in
new file mode 100644
index 00000000..1c919a38
--- /dev/null
+++ b/regress/man/IP/width.in
@@ -0,0 +1,78 @@
+.TH IP-WIDTH 1 "December 23, 2014" OpenBSD
+.SH NAME
+IP-width \- indentation width of indented paragraphs
+.SH DESCRIPTION
+Regular mode:
+.IP tag -10n
+indented
+.br
+text
+.IP tag -4n
+indented
+.br
+text
+.IP tag 0n
+indented
+.br
+text
+.IP tag 1n
+indented
+.br
+text
+.IP tag 2n
+indented
+.br
+text
+.IP tag 3n
+indented
+.br
+text
+.IP tag 4n
+indented
+.br
+text
+.IP tag 5n
+indented
+.br
+text
+.IP tag xxx
+indented
+.br
+text
+.IP tag 100n
+indented
+.br
+text
+.PP
+Literal mode:
+.nf
+.IP tag -10n
+indented
+text
+.IP tag -4n
+indented
+text
+.IP tag 0n
+indented
+text
+.IP tag 1n
+indented
+text
+.IP tag 2n
+indented
+text
+.IP tag 3n
+indented
+text
+.IP tag 4n
+indented
+text
+.IP tag 5n
+indented
+text
+.IP tag xxx
+indented
+text
+.IP tag 100n
+indented
+text
diff --git a/regress/man/IP/width.out_ascii b/regress/man/IP/width.out_ascii
new file mode 100644
index 00000000..a867ba70
--- /dev/null
+++ b/regress/man/IP/width.out_ascii
@@ -0,0 +1,87 @@
+IP-WIDTH(1) General Commands Manual IP-WIDTH(1)
+
+
+
+NNAAMMEE
+ IP-width - indentation width of indented paragraphs
+
+DDEESSCCRRIIPPTTIIOONN
+ Regular mode:
+
+ tag
+indented
+text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+ Literal mode:
+
+ tag
+indented
+text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+
+
+OpenBSD December 23, 2014 IP-WIDTH(1)
diff --git a/regress/man/Makefile b/regress/man/Makefile
new file mode 100644
index 00000000..882d8cba
--- /dev/null
+++ b/regress/man/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.17 2015/03/20 16:09:25 schwarze Exp $
+
+SUBDIR = B BI EX HP IP OP PD PP RS SH SS TH TP TS UR nf blank
+
+.include "../Makefile.sub"
+.include <bsd.subdir.mk>
diff --git a/regress/man/Makefile.inc b/regress/man/Makefile.inc
new file mode 100644
index 00000000..6b294ca9
--- /dev/null
+++ b/regress/man/Makefile.inc
@@ -0,0 +1,5 @@
+# $OpenBSD: Makefile.inc,v 1.3 2015/02/03 19:37:25 schwarze Exp $
+
+SKIP_TMAN ?= ALL
+
+.include "../Makefile.inc"
diff --git a/regress/man/OP/Makefile b/regress/man/OP/Makefile
new file mode 100644
index 00000000..fa4f7e9c
--- /dev/null
+++ b/regress/man/OP/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.1 2015/02/06 11:54:03 schwarze Exp $
+
+REGRESS_TARGETS = args
+LINT_TARGETS = args
+
+.include <bsd.regress.mk>
diff --git a/regress/man/OP/args.in b/regress/man/OP/args.in
new file mode 100644
index 00000000..3fed8337
--- /dev/null
+++ b/regress/man/OP/args.in
@@ -0,0 +1,13 @@
+.TH OP-ARGS 1 "February 6, 2015" OpenBSD
+.SH NAME
+OP-args \- argument handling of the man-ext OP macro
+.SH DESCRIPTION
+no argument:
+.OP
+one argument:
+.OP \-f
+two arguments:
+.OP \-f arg
+three arguments:
+.OP \-f arg bogus
+final text
diff --git a/regress/man/OP/args.out_ascii b/regress/man/OP/args.out_ascii
new file mode 100644
index 00000000..ca3e3c03
--- /dev/null
+++ b/regress/man/OP/args.out_ascii
@@ -0,0 +1,14 @@
+OP-ARGS(1) General Commands Manual OP-ARGS(1)
+
+
+
+NNAAMMEE
+ OP-args - argument handling of the man-ext OP macro
+
+DDEESSCCRRIIPPTTIIOONN
+ no argument: [] one argument: [--ff] two arguments: [--ff _a_r_g] three
+ arguments: [--ff _a_r_g] final text
+
+
+
+OpenBSD February 6, 2015 OP-ARGS(1)
diff --git a/regress/man/OP/args.out_lint b/regress/man/OP/args.out_lint
new file mode 100644
index 00000000..c468d9d0
--- /dev/null
+++ b/regress/man/OP/args.out_lint
@@ -0,0 +1,2 @@
+mandoc: args.in:6:2: WARNING: missing option string, using "": OP
+mandoc: args.in:12:13: ERROR: skipping excess arguments: OP ... bogus
diff --git a/regress/man/PD/Makefile b/regress/man/PD/Makefile
new file mode 100644
index 00000000..049cbec4
--- /dev/null
+++ b/regress/man/PD/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.3 2015/03/20 14:47:20 schwarze Exp $
+
+REGRESS_TARGETS = args nextline spacing
+LINT_TARGETS = args
+
+.include <bsd.regress.mk>
diff --git a/regress/man/PD/args.in b/regress/man/PD/args.in
new file mode 100644
index 00000000..97bd7993
--- /dev/null
+++ b/regress/man/PD/args.in
@@ -0,0 +1,28 @@
+.TH PD-ARGS 1 "December 23, 2014" OpenBSD
+.SH NAME
+PD-args \- unusual arguments to the PD macro
+.SH DESCRIPTION
+initial text
+.PP
+default spacing
+.PD 2
+.PP
+argument(2)
+.PD
+.PP
+no argument at all
+.PD 2v
+.PP
+argument(2v)
+.PD 2p
+.PP
+argument(2p)
+.PD 1cx
+.PP
+argument(1cx)
+.PD xxx
+.PP
+argument(xxx)
+.PD 0 zzz
+.PP
+excessive argument
diff --git a/regress/man/PD/args.out_ascii b/regress/man/PD/args.out_ascii
new file mode 100644
index 00000000..24f98d55
--- /dev/null
+++ b/regress/man/PD/args.out_ascii
@@ -0,0 +1,31 @@
+PD-ARGS(1) General Commands Manual PD-ARGS(1)
+
+
+
+NNAAMMEE
+ PD-args - unusual arguments to the PD macro
+
+DDEESSCCRRIIPPTTIIOONN
+ initial text
+
+ default spacing
+
+
+ argument(2)
+
+ no argument at all
+
+
+ argument(2v)
+ argument(2p)
+
+
+ argument(1cx)
+
+
+ argument(xxx)
+ excessive argument
+
+
+
+OpenBSD December 23, 2014 PD-ARGS(1)
diff --git a/regress/man/PD/args.out_lint b/regress/man/PD/args.out_lint
new file mode 100644
index 00000000..9e42b46e
--- /dev/null
+++ b/regress/man/PD/args.out_lint
@@ -0,0 +1 @@
+mandoc: args.in:26:7: ERROR: skipping excess arguments: PD ... zzz
diff --git a/regress/man/PD/nextline.in b/regress/man/PD/nextline.in
new file mode 100644
index 00000000..a417f9d8
--- /dev/null
+++ b/regress/man/PD/nextline.in
@@ -0,0 +1,42 @@
+.TH PD-NEXTLINE 1 "March 20, 2015" OpenBSD
+.SH NAME
+PD-nextline \- paragraph distance macro in next-line scope
+.SH DESCRIPTION
+some text
+.SH
+.PD 0v
+NEXT SECTION
+first paragraph
+.PP
+second paragraph
+.PD 1v
+.PP
+third paragraph
+.SS
+.PD 0v
+Subsection
+first paragraph
+.PP
+second paragraph
+.PD 1v
+.PP
+third paragraph
+.TP 6n
+.PD 0v
+tag
+list text
+.TP
+tag
+list text
+.PD 1v
+.TP
+tag
+list text
+.PP
+normal text
+.B
+.PD 0v
+bold text
+normal text
+.PP
+final paragraph
diff --git a/regress/man/PD/nextline.out_ascii b/regress/man/PD/nextline.out_ascii
new file mode 100644
index 00000000..f0e73326
--- /dev/null
+++ b/regress/man/PD/nextline.out_ascii
@@ -0,0 +1,33 @@
+PD-NEXTLINE(1) General Commands Manual PD-NEXTLINE(1)
+
+
+
+NNAAMMEE
+ PD-nextline - paragraph distance macro in next-line scope
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+NNEEXXTT SSEECCTTIIOONN
+ first paragraph
+ second paragraph
+
+ third paragraph
+
+ SSuubbsseeccttiioonn
+ first paragraph
+ second paragraph
+
+ third paragraph
+
+ tag list text
+ tag list text
+
+ tag list text
+
+ normal text bboolldd tteexxtt normal text
+ final paragraph
+
+
+
+OpenBSD March 20, 2015 PD-NEXTLINE(1)
diff --git a/regress/man/PD/spacing.in b/regress/man/PD/spacing.in
new file mode 100644
index 00000000..9b324149
--- /dev/null
+++ b/regress/man/PD/spacing.in
@@ -0,0 +1,62 @@
+.TH PD-SPACING 1 "July 28, 2012" OpenBSD
+.SH NAME
+PD-spacing \- effect of the PD macro on vertical spacing
+.SH DESCRIPTION
+initial text
+.PP
+paragraph
+.HP
+hanged
+paragraph
+.IP indented
+paragraph
+.TP
+tagged
+paragraph
+.SS subsection
+subsection text
+.PD 2
+.SH DOUBLE SPACING
+initial text
+.PP
+paragraph
+.HP
+hanged
+paragraph
+.IP indented
+paragraph
+.TP
+tagged
+paragraph
+.SS subsection
+subsection text
+.PD 0
+.SH NO SPACING
+initial text
+.PP
+paragraph
+.HP
+hanged
+paragraph
+.IP indented
+paragraph
+.TP
+tagged
+paragraph
+.SS subsection
+subsection text
+.PD 1
+.SH NORMAL SPACING
+initial text
+.PP
+paragraph
+.HP
+hanged
+paragraph
+.IP indented
+paragraph
+.TP
+tagged
+paragraph
+.SS subsection
+subsection text
diff --git a/regress/man/PD/spacing.out_ascii b/regress/man/PD/spacing.out_ascii
new file mode 100644
index 00000000..72612304
--- /dev/null
+++ b/regress/man/PD/spacing.out_ascii
@@ -0,0 +1,70 @@
+PD-SPACING(1) General Commands Manual PD-SPACING(1)
+
+
+
+NNAAMMEE
+ PD-spacing - effect of the PD macro on vertical spacing
+
+DDEESSCCRRIIPPTTIIOONN
+ initial text
+
+ paragraph
+
+ hanged paragraph
+
+ indented
+ paragraph
+
+ tagged paragraph
+
+ ssuubbsseeccttiioonn
+ subsection text
+
+
+DDOOUUBBLLEE SSPPAACCIINNGG
+ initial text
+
+
+ paragraph
+
+
+ hanged paragraph
+
+
+ indented
+ paragraph
+
+
+ tagged paragraph
+
+
+ ssuubbsseeccttiioonn
+ subsection text
+NNOO SSPPAACCIINNGG
+ initial text
+ paragraph
+ hanged paragraph
+ indented
+ paragraph
+ tagged paragraph
+ ssuubbsseeccttiioonn
+ subsection text
+
+NNOORRMMAALL SSPPAACCIINNGG
+ initial text
+
+ paragraph
+
+ hanged paragraph
+
+ indented
+ paragraph
+
+ tagged paragraph
+
+ ssuubbsseeccttiioonn
+ subsection text
+
+
+
+OpenBSD July 28, 2012 PD-SPACING(1)
diff --git a/regress/man/PP/Makefile b/regress/man/PP/Makefile
new file mode 100644
index 00000000..7655d294
--- /dev/null
+++ b/regress/man/PP/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.4 2014/07/04 16:11:41 schwarze Exp $
+
+REGRESS_TARGETS = args empty
+LINT_TARGETS = args empty
+
+.include <bsd.regress.mk>
diff --git a/regress/man/PP/args.in b/regress/man/PP/args.in
new file mode 100644
index 00000000..e608d9b9
--- /dev/null
+++ b/regress/man/PP/args.in
@@ -0,0 +1,11 @@
+.TH PP-ARG 1 "July 4, 2014" OpenBSD
+.SH NAME
+PP-arg \- paragraphs macros with arguments
+.SH DESCRIPTION
+PP with argument:
+.PP arg
+LP with arguments:
+.LP arg1 arg2
+P with argument:
+.P arg
+final text
diff --git a/regress/man/PP/args.out_ascii b/regress/man/PP/args.out_ascii
new file mode 100644
index 00000000..10cb1774
--- /dev/null
+++ b/regress/man/PP/args.out_ascii
@@ -0,0 +1,19 @@
+PP-ARG(1) General Commands Manual PP-ARG(1)
+
+
+
+NNAAMMEE
+ PP-arg - paragraphs macros with arguments
+
+DDEESSCCRRIIPPTTIIOONN
+ PP with argument:
+
+ LP with arguments:
+
+ P with argument:
+
+ final text
+
+
+
+OpenBSD July 4, 2014 PP-ARG(1)
diff --git a/regress/man/PP/args.out_lint b/regress/man/PP/args.out_lint
new file mode 100644
index 00000000..f2862245
--- /dev/null
+++ b/regress/man/PP/args.out_lint
@@ -0,0 +1,3 @@
+mandoc: args.in:6:2: ERROR: skipping all arguments: PP arg
+mandoc: args.in:8:2: ERROR: skipping all arguments: LP arg1 ...
+mandoc: args.in:10:2: ERROR: skipping all arguments: P arg
diff --git a/regress/man/PP/empty.in b/regress/man/PP/empty.in
new file mode 100644
index 00000000..a6ac538f
--- /dev/null
+++ b/regress/man/PP/empty.in
@@ -0,0 +1,15 @@
+.TH PP-EMPTY 1 "May 24, 2010" OpenBSD
+.SH NAME
+PP-empty \- handling of empty paragraphs
+.SH DESCRIPTION
+.PP
+empty PP between two PPs:
+.PP
+.PP
+empty PP between PP and IP:
+.PP
+.IP head
+empty PP between IP and PP:
+.PP
+.PP
+the end
diff --git a/regress/man/PP/empty.out_ascii b/regress/man/PP/empty.out_ascii
new file mode 100644
index 00000000..ec770f2d
--- /dev/null
+++ b/regress/man/PP/empty.out_ascii
@@ -0,0 +1,19 @@
+PP-EMPTY(1) General Commands Manual PP-EMPTY(1)
+
+
+
+NNAAMMEE
+ PP-empty - handling of empty paragraphs
+
+DDEESSCCRRIIPPTTIIOONN
+ empty PP between two PPs:
+
+ empty PP between PP and IP:
+
+ head empty PP between IP and PP:
+
+ the end
+
+
+
+OpenBSD May 24, 2010 PP-EMPTY(1)
diff --git a/regress/man/PP/empty.out_lint b/regress/man/PP/empty.out_lint
new file mode 100644
index 00000000..6af9e658
--- /dev/null
+++ b/regress/man/PP/empty.out_lint
@@ -0,0 +1,3 @@
+mandoc: empty.in:7:2: WARNING: skipping paragraph macro: PP empty
+mandoc: empty.in:10:2: WARNING: skipping paragraph macro: PP empty
+mandoc: empty.in:13:2: WARNING: skipping paragraph macro: PP empty
diff --git a/regress/man/RS/Makefile b/regress/man/RS/Makefile
new file mode 100644
index 00000000..4c62bb30
--- /dev/null
+++ b/regress/man/RS/Makefile
@@ -0,0 +1,7 @@
+# $OpenBSD: Makefile,v 1.11 2015/04/06 13:34:54 schwarze Exp $
+
+REGRESS_TARGETS = breaking broken empty literal lonelyRE
+REGRESS_TARGETS += nested noRE nowidth REarg width
+LINT_TARGETS = empty lonelyRE noRE REarg
+
+.include <bsd.regress.mk>
diff --git a/regress/man/RS/REarg.in b/regress/man/RS/REarg.in
new file mode 100644
index 00000000..05eadd8e
--- /dev/null
+++ b/regress/man/RS/REarg.in
@@ -0,0 +1,26 @@
+.TH RS-REARG 1 "January 24, 2015" OpenBSD
+.SH NAME
+RS-REarg \- arguments to the RE macro
+.SH DESCRIPTION
+level 1
+.RS 4n 2i
+level 2
+.RS 2n
+level 3
+.RE 2a
+back to 2
+.RE 1b
+back to 1
+.RS 4n
+level 2
+.RS 2n
+level 3
+.RE 1c
+back to 1
+.RS 4n
+level 2
+.RS 2n
+level 3
+.RE 0d
+back to 1
+.RE 1e
diff --git a/regress/man/RS/REarg.out_ascii b/regress/man/RS/REarg.out_ascii
new file mode 100644
index 00000000..747e037b
--- /dev/null
+++ b/regress/man/RS/REarg.out_ascii
@@ -0,0 +1,23 @@
+RS-REARG(1) General Commands Manual RS-REARG(1)
+
+
+
+NNAAMMEE
+ RS-REarg - arguments to the RE macro
+
+DDEESSCCRRIIPPTTIIOONN
+ level 1
+ level 2
+ level 3
+ back to 2
+ back to 1
+ level 2
+ level 3
+ back to 1
+ level 2
+ level 3
+ back to 1
+
+
+
+OpenBSD January 24, 2015 RS-REARG(1)
diff --git a/regress/man/RS/REarg.out_lint b/regress/man/RS/REarg.out_lint
new file mode 100644
index 00000000..3b516d96
--- /dev/null
+++ b/regress/man/RS/REarg.out_lint
@@ -0,0 +1,7 @@
+mandoc: REarg.in:6:8: ERROR: skipping excess arguments: RS ... 2i
+mandoc: REarg.in:10:6: ERROR: skipping excess arguments: RE ... a
+mandoc: REarg.in:12:6: ERROR: skipping excess arguments: RE ... b
+mandoc: REarg.in:18:6: ERROR: skipping excess arguments: RE ... c
+mandoc: REarg.in:24:6: ERROR: skipping excess arguments: RE ... d
+mandoc: REarg.in:26:6: ERROR: skipping excess arguments: RE ... e
+mandoc: REarg.in:26:2: ERROR: fewer RS blocks open, skipping: RE 1
diff --git a/regress/man/RS/breaking.in b/regress/man/RS/breaking.in
new file mode 100644
index 00000000..441c5524
--- /dev/null
+++ b/regress/man/RS/breaking.in
@@ -0,0 +1,23 @@
+.TH RS-BREAKING 1 "7 July 2012" OpenBSD
+.SH NAME
+RS-breaking \- some block gets broken by an RS block
+.SH DESCRIPTION
+preceding text
+.TP 4n
+*
+item
+.RS 8n
+indented text
+.RE
+middle text
+.TP 4n
+*
+.RS 8n
+indented text
+.RE
+.\" middle text
+.\" .TP 4n
+.\" .RS 8n
+.\" indented text
+.\" .RE
+trailing text
diff --git a/regress/man/RS/breaking.out_ascii b/regress/man/RS/breaking.out_ascii
new file mode 100644
index 00000000..687e2990
--- /dev/null
+++ b/regress/man/RS/breaking.out_ascii
@@ -0,0 +1,21 @@
+RS-BREAKING(1) General Commands Manual RS-BREAKING(1)
+
+
+
+NNAAMMEE
+ RS-breaking - some block gets broken by an RS block
+
+DDEESSCCRRIIPPTTIIOONN
+ preceding text
+
+ * item
+ indented text
+ middle text
+
+ *
+ indented text
+ trailing text
+
+
+
+OpenBSD 7 July 2012 RS-BREAKING(1)
diff --git a/regress/man/RS/broken.in b/regress/man/RS/broken.in
new file mode 100644
index 00000000..ea81c0c3
--- /dev/null
+++ b/regress/man/RS/broken.in
@@ -0,0 +1,45 @@
+.TH RS-BROKEN 1 "January 24, 2015" OpenBSD
+.SH NAME
+RS-broken \- indented blocks broken by other blocks
+.SH DESCRIPTION
+broken by PP:
+.RS 2n
+indented
+.PP
+still indented
+.RE
+broken by IP:
+.RS
+indented
+.IP tag 6n
+first line
+.br
+second line
+.PP
+still indented
+.RE
+broken by TP:
+.RS
+indented
+.TP 6n
+tag
+first line
+.br
+second line
+.PP
+still indented
+.RE
+broken by HP:
+.RS
+indented
+.HP 2n
+Let's have a longer text here such that we can see the line break.
+.PP
+still indented
+.RE
+trailing PP:
+.RS
+indented
+.PP
+.RE
+final text
diff --git a/regress/man/RS/broken.out_ascii b/regress/man/RS/broken.out_ascii
new file mode 100644
index 00000000..ab219ac1
--- /dev/null
+++ b/regress/man/RS/broken.out_ascii
@@ -0,0 +1,41 @@
+RS-BROKEN(1) General Commands Manual RS-BROKEN(1)
+
+
+
+NNAAMMEE
+ RS-broken - indented blocks broken by other blocks
+
+DDEESSCCRRIIPPTTIIOONN
+ broken by PP:
+ indented
+
+ still indented
+ broken by IP:
+ indented
+
+ tag first line
+ second line
+
+ still indented
+ broken by TP:
+ indented
+
+ tag first line
+ second line
+
+ still indented
+ broken by HP:
+ indented
+
+ Let's have a longer text here such that we can see the line
+ break.
+
+ still indented
+ trailing PP:
+ indented
+
+ final text
+
+
+
+OpenBSD January 24, 2015 RS-BROKEN(1)
diff --git a/regress/man/RS/empty.in b/regress/man/RS/empty.in
new file mode 100644
index 00000000..a7cd5829
--- /dev/null
+++ b/regress/man/RS/empty.in
@@ -0,0 +1,16 @@
+.TH RS-EMPTY 1 "July 17, 2012" OpenBSD
+.SH NAME
+RS-empty \- empty margin reset blocks
+.SH DESCRIPTION
+regular
+text
+.RS 8n
+.RE
+regular
+text
+.RS 8n
+indented
+text
+.RE
+regular
+text
diff --git a/regress/man/RS/empty.out_ascii b/regress/man/RS/empty.out_ascii
new file mode 100644
index 00000000..7dee40c7
--- /dev/null
+++ b/regress/man/RS/empty.out_ascii
@@ -0,0 +1,16 @@
+RS-EMPTY(1) General Commands Manual RS-EMPTY(1)
+
+
+
+NNAAMMEE
+ RS-empty - empty margin reset blocks
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ regular text
+ indented text
+ regular text
+
+
+
+OpenBSD July 17, 2012 RS-EMPTY(1)
diff --git a/regress/man/RS/empty.out_lint b/regress/man/RS/empty.out_lint
new file mode 100644
index 00000000..fe983c38
--- /dev/null
+++ b/regress/man/RS/empty.out_lint
@@ -0,0 +1 @@
+mandoc: empty.in:7:2: WARNING: empty block: RS
diff --git a/regress/man/RS/literal.in b/regress/man/RS/literal.in
new file mode 100644
index 00000000..bd57c610
--- /dev/null
+++ b/regress/man/RS/literal.in
@@ -0,0 +1,18 @@
+.TH RS-LITERAL 1 "January 5, 2013" OpenBSD
+.SH NAME
+RS-literal \- indented literal text
+.SH DESCRIPTION
+regular
+text
+.nf
+literal
+text
+.RS
+This is a short line.
+This is a very long line that would wrap if it weren't in literal context.
+.RE
+.PP
+literal text
+.fi
+regular
+text
diff --git a/regress/man/RS/literal.out_ascii b/regress/man/RS/literal.out_ascii
new file mode 100644
index 00000000..a96741f3
--- /dev/null
+++ b/regress/man/RS/literal.out_ascii
@@ -0,0 +1,20 @@
+RS-LITERAL(1) General Commands Manual RS-LITERAL(1)
+
+
+
+NNAAMMEE
+ RS-literal - indented literal text
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ literal
+ text
+ This is a short line.
+ This is a very long line that would wrap if it weren't in literal context.
+
+ literal text
+ regular text
+
+
+
+OpenBSD January 5, 2013 RS-LITERAL(1)
diff --git a/regress/man/RS/lonelyRE.in b/regress/man/RS/lonelyRE.in
new file mode 100644
index 00000000..2f166dae
--- /dev/null
+++ b/regress/man/RS/lonelyRE.in
@@ -0,0 +1,21 @@
+.TH RS-LONELYRE 1 "November 10, 2013" OpenBSD
+.SH NAME
+RS-lonelyRE \- closing RS that is not open
+.SH DESCRIPTION
+.RS
+indented text
+.RE
+.TP 6n
+tag
+body
+.RE
+out of body
+.IP tag 6n
+body
+.RE
+out of body
+.HP 6n
+Here we need some text that is long enough to span more than one
+output line, such that we can see the hanging indentation.
+.RE
+out of body
diff --git a/regress/man/RS/lonelyRE.out_ascii b/regress/man/RS/lonelyRE.out_ascii
new file mode 100644
index 00000000..1b062d10
--- /dev/null
+++ b/regress/man/RS/lonelyRE.out_ascii
@@ -0,0 +1,23 @@
+RS-LONELYRE(1) General Commands Manual RS-LONELYRE(1)
+
+
+
+NNAAMMEE
+ RS-lonelyRE - closing RS that is not open
+
+DDEESSCCRRIIPPTTIIOONN
+ indented text
+
+ tag body
+ out of body
+
+ tag body
+ out of body
+
+ Here we need some text that is long enough to span more than one output
+ line, such that we can see the hanging indentation.
+ out of body
+
+
+
+OpenBSD November 10, 2013 RS-LONELYRE(1)
diff --git a/regress/man/RS/lonelyRE.out_lint b/regress/man/RS/lonelyRE.out_lint
new file mode 100644
index 00000000..8cb30028
--- /dev/null
+++ b/regress/man/RS/lonelyRE.out_lint
@@ -0,0 +1,3 @@
+mandoc: lonelyRE.in:11:2: ERROR: skipping end of block that is not open: RE
+mandoc: lonelyRE.in:15:2: ERROR: skipping end of block that is not open: RE
+mandoc: lonelyRE.in:20:2: ERROR: skipping end of block that is not open: RE
diff --git a/regress/man/RS/nested.in b/regress/man/RS/nested.in
new file mode 100644
index 00000000..7650e43f
--- /dev/null
+++ b/regress/man/RS/nested.in
@@ -0,0 +1,54 @@
+.TH RS-NESTED 1 "April 4, 2015" OpenBSD
+.SH NAME
+RS-nested \- various blocks nested inside reset blocks
+.SH DESCRIPTION
+regular
+text
+.RS
+outer
+text (default indent)
+.RS
+inner
+text (default indent)
+.RE
+outer
+text
+.RE
+regular text
+.IP tag 6n
+tagged text (6n)
+.RS
+outer text (saved 6n)
+.RS
+inner text (default indent)
+.RE
+outer text
+.RE
+regular text
+.RS 4n
+outer text (4n)
+.RS 2n
+inner text (2n)
+.RE
+outer text
+.IP indent 8n
+text (8n)
+.TP 6n
+tag
+text (6n)
+.HP 12n
+hanged
+This is very long text.
+Let's see where it will break the line,
+and which indent the next line will have - hopefully 12n.
+.PP
+outer text
+.RE
+nesting HP and RS inside RS:
+.RS
+outer text
+.HP 2n
+.RS 4n
+inner text
+.RE
+.RE
diff --git a/regress/man/RS/nested.out_ascii b/regress/man/RS/nested.out_ascii
new file mode 100644
index 00000000..f64bc5af
--- /dev/null
+++ b/regress/man/RS/nested.out_ascii
@@ -0,0 +1,41 @@
+RS-NESTED(1) General Commands Manual RS-NESTED(1)
+
+
+
+NNAAMMEE
+ RS-nested - various blocks nested inside reset blocks
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ outer text (default indent)
+ inner text (default indent)
+ outer text
+ regular text
+
+ tag tagged text (6n)
+ outer text (saved 6n)
+ inner text (default indent)
+ outer text
+ regular text
+ outer text (4n)
+ inner text (2n)
+ outer text
+
+ indent text (8n)
+
+ tag text (6n)
+
+ hanged This is very long text. Let's see where it will break the
+ line, and which indent the next line will have -
+ hopefully 12n.
+
+ outer text
+ nesting HP and RS inside RS:
+ outer text
+
+
+ inner text
+
+
+
+OpenBSD April 4, 2015 RS-NESTED(1)
diff --git a/regress/man/RS/noRE.in b/regress/man/RS/noRE.in
new file mode 100644
index 00000000..45ecbc26
--- /dev/null
+++ b/regress/man/RS/noRE.in
@@ -0,0 +1,9 @@
+.TH RS-NORE 1 "June 20, 2014" OpenBSD
+.SH NAME
+RS-noRE \- unclosed indented block
+.SH DESCRIPTION
+regular
+text
+.RS 8n
+indented
+text
diff --git a/regress/man/RS/noRE.out_ascii b/regress/man/RS/noRE.out_ascii
new file mode 100644
index 00000000..efd11787
--- /dev/null
+++ b/regress/man/RS/noRE.out_ascii
@@ -0,0 +1,14 @@
+RS-NORE(1) General Commands Manual RS-NORE(1)
+
+
+
+NNAAMMEE
+ RS-noRE - unclosed indented block
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ indented text
+
+
+
+OpenBSD June 20, 2014 RS-NORE(1)
diff --git a/regress/man/RS/noRE.out_lint b/regress/man/RS/noRE.out_lint
new file mode 100644
index 00000000..3c4c0a13
--- /dev/null
+++ b/regress/man/RS/noRE.out_lint
@@ -0,0 +1 @@
+mandoc: noRE.in:7:2: ERROR: appending missing end of block: RS
diff --git a/regress/man/RS/nowidth.in b/regress/man/RS/nowidth.in
new file mode 100644
index 00000000..ee53489a
--- /dev/null
+++ b/regress/man/RS/nowidth.in
@@ -0,0 +1,20 @@
+.TH RS-NESTED 1 "April 6, 2015" OpenBSD
+.SH NAME
+RS-nowidth \- indentation blocks not specifying a width
+.SH DESCRIPTION
+regular text
+.RS
+top-level indented list
+.RE
+regular text
+.TP 2n
+\(bu
+bullet list
+.RS
+indented text
+.RE
+regular text
+.RS
+top-level indented list
+.RE
+regular text
diff --git a/regress/man/RS/nowidth.out_ascii b/regress/man/RS/nowidth.out_ascii
new file mode 100644
index 00000000..c72f18f2
--- /dev/null
+++ b/regress/man/RS/nowidth.out_ascii
@@ -0,0 +1,21 @@
+RS-NESTED(1) General Commands Manual RS-NESTED(1)
+
+
+
+NNAAMMEE
+ RS-nowidth - indentation blocks not specifying a width
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ top-level indented list
+ regular text
+
+ +o bullet list
+ indented text
+ regular text
+ top-level indented list
+ regular text
+
+
+
+OpenBSD April 6, 2015 RS-NESTED(1)
diff --git a/regress/man/RS/width.in b/regress/man/RS/width.in
new file mode 100644
index 00000000..e723b583
--- /dev/null
+++ b/regress/man/RS/width.in
@@ -0,0 +1,30 @@
+.TH RS-WIDTH 1 "December 23, 2014" OpenBSD
+.SH NAME
+RS-width \- negative and excessive indentation
+.SH DESCRIPTION
+regular
+text
+.RS -14n
+indented
+text
+.RE
+regular
+text
+.RS -4n
+indented
+text
+.RE
+regular
+text
+.RS 4n
+indented
+text
+.RE
+regular
+text
+.RS 100n
+indented
+text
+.RE
+regular
+text
diff --git a/regress/man/RS/width.out_ascii b/regress/man/RS/width.out_ascii
new file mode 100644
index 00000000..12cd6824
--- /dev/null
+++ b/regress/man/RS/width.out_ascii
@@ -0,0 +1,22 @@
+RS-WIDTH(1) General Commands Manual RS-WIDTH(1)
+
+
+
+NNAAMMEE
+ RS-width - negative and excessive indentation
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+indented text
+ regular text
+ indented text
+ regular text
+ indented text
+ regular text
+ indented
+ text
+ regular text
+
+
+
+OpenBSD December 23, 2014 RS-WIDTH(1)
diff --git a/regress/man/SH/Makefile b/regress/man/SH/Makefile
new file mode 100644
index 00000000..f94a4cae
--- /dev/null
+++ b/regress/man/SH/Makefile
@@ -0,0 +1,16 @@
+# $OpenBSD: Makefile,v 1.4 2015/04/04 18:52:12 schwarze Exp $
+
+REGRESS_TARGETS = broken broken_eline empty_before longarg noarg
+LINT_TARGETS = broken broken_eline empty_before noarg
+
+# groff-1.22.3 defects:
+# - .SH without args just before EOF causes two additional blank lines.
+# - Empty .SH heads cause additional vertical spacing.
+# - If .TP or .IP breaks .SH, the tag becomes bold.
+# - If .HP breaks .SH, a line is broken after the next input line.
+# - If .RS/RE/nf/fi breaks .SH, the next input line becomes bold.
+# - .UR does not break .SH.
+
+SKIP_GROFF = broken broken_eline noarg
+
+.include <bsd.regress.mk>
diff --git a/regress/man/SH/broken.in b/regress/man/SH/broken.in
new file mode 100644
index 00000000..3d963ae1
--- /dev/null
+++ b/regress/man/SH/broken.in
@@ -0,0 +1,6 @@
+.TH SH-BROKEN 1 "July 30, 2014" OpenBSD
+.SH NAME
+SH-broken \- section header line scope broken by end of file
+.SH DESCRIPTION
+some text
+.SH
diff --git a/regress/man/SH/broken.out_ascii b/regress/man/SH/broken.out_ascii
new file mode 100644
index 00000000..eec4694e
--- /dev/null
+++ b/regress/man/SH/broken.out_ascii
@@ -0,0 +1,13 @@
+SH-BROKEN(1) General Commands Manual SH-BROKEN(1)
+
+
+
+NNAAMMEE
+ SH-broken - section header line scope broken by end of file
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
+OpenBSD July 30, 2014 SH-BROKEN(1)
diff --git a/regress/man/SH/broken.out_lint b/regress/man/SH/broken.out_lint
new file mode 100644
index 00000000..70ab7537
--- /dev/null
+++ b/regress/man/SH/broken.out_lint
@@ -0,0 +1 @@
+mandoc: broken.in:6:2: WARNING: line scope broken: EOF breaks SH
diff --git a/regress/man/SH/broken_eline.in b/regress/man/SH/broken_eline.in
new file mode 100644
index 00000000..262be276
--- /dev/null
+++ b/regress/man/SH/broken_eline.in
@@ -0,0 +1,7 @@
+.TH SH-BROKEN_ELINE 1 "July 30, 2014" OpenBSD
+.SH NAME
+SH-broken_eline \- section and element line scope broken by eof
+.SH DESCRIPTION
+some text
+.SH
+.B
diff --git a/regress/man/SH/broken_eline.out_ascii b/regress/man/SH/broken_eline.out_ascii
new file mode 100644
index 00000000..6590e858
--- /dev/null
+++ b/regress/man/SH/broken_eline.out_ascii
@@ -0,0 +1,13 @@
+SH-BROKEN_ELINE(1) General Commands Manual SH-BROKEN_ELINE(1)
+
+
+
+NNAAMMEE
+ SH-broken_eline - section and element line scope broken by eof
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
+OpenBSD July 30, 2014 SH-BROKEN_ELINE(1)
diff --git a/regress/man/SH/broken_eline.out_lint b/regress/man/SH/broken_eline.out_lint
new file mode 100644
index 00000000..089bf875
--- /dev/null
+++ b/regress/man/SH/broken_eline.out_lint
@@ -0,0 +1,2 @@
+mandoc: broken_eline.in:7:2: WARNING: line scope broken: EOF breaks B
+mandoc: broken_eline.in:6:2: WARNING: line scope broken: EOF breaks SH
diff --git a/regress/man/SH/empty_before.in b/regress/man/SH/empty_before.in
new file mode 100644
index 00000000..af1e4ac7
--- /dev/null
+++ b/regress/man/SH/empty_before.in
@@ -0,0 +1,6 @@
+.TH SH-EMPTY_BEFORE 1 "August 18, 2014" OpenBSD
+.PP
+.SH NAME
+SH-empty_before \- empty paragraph before first section header
+.SH DESCRIPTION
+some text
diff --git a/regress/man/SH/empty_before.out_ascii b/regress/man/SH/empty_before.out_ascii
new file mode 100644
index 00000000..14218a13
--- /dev/null
+++ b/regress/man/SH/empty_before.out_ascii
@@ -0,0 +1,13 @@
+SH-EMPTY_BEFORE(1) General Commands Manual SH-EMPTY_BEFORE(1)
+
+
+
+NNAAMMEE
+ SH-empty_before - empty paragraph before first section header
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
+OpenBSD August 18, 2014 SH-EMPTY_BEFORE(1)
diff --git a/regress/man/SH/empty_before.out_lint b/regress/man/SH/empty_before.out_lint
new file mode 100644
index 00000000..b10c421a
--- /dev/null
+++ b/regress/man/SH/empty_before.out_lint
@@ -0,0 +1 @@
+mandoc: empty_before.in:2:2: WARNING: skipping paragraph macro: PP empty
diff --git a/regress/man/SH/longarg.in b/regress/man/SH/longarg.in
new file mode 100644
index 00000000..54fa474f
--- /dev/null
+++ b/regress/man/SH/longarg.in
@@ -0,0 +1,9 @@
+.TH SH-LONGARG 1 "April 4, 2015" OpenBSD
+.SH NAME
+SH-longarg \- long section header lines
+.SH
+DESCRIPTION
+initial text
+.SH "This section has a really ridiculously long title\
+ which won't even fit on the line."
+custom section text
diff --git a/regress/man/SH/longarg.out_ascii b/regress/man/SH/longarg.out_ascii
new file mode 100644
index 00000000..cb45e2a3
--- /dev/null
+++ b/regress/man/SH/longarg.out_ascii
@@ -0,0 +1,17 @@
+SH-LONGARG(1) General Commands Manual SH-LONGARG(1)
+
+
+
+NNAAMMEE
+ SH-longarg - long section header lines
+
+DDEESSCCRRIIPPTTIIOONN
+ initial text
+
+TThhiiss sseeccttiioonn hhaass aa rreeaallllyy rriiddiiccuulloouussllyy lloonngg ttiittllee wwhhiicchh wwoonn''tt eevveenn ffiitt oonn tthhee
+ lliinnee..
+ custom section text
+
+
+
+OpenBSD April 4, 2015 SH-LONGARG(1)
diff --git a/regress/man/SH/noarg.in b/regress/man/SH/noarg.in
new file mode 100644
index 00000000..58ccac7c
--- /dev/null
+++ b/regress/man/SH/noarg.in
@@ -0,0 +1,42 @@
+.TH SH-NOARG 1 "March 20, 2015" OpenBSD
+.SH NAME
+SH-noarg \- empty header lines
+.SH
+.SH
+DESCRIPTION
+initial text
+.SH
+.SS Subsection
+subsection text
+.SH
+.TP 6n
+tag
+tagged list
+.SH
+.IP tag 6n
+indented list
+.SH
+.HP 6n
+This is a hanged paragraph.
+A bit more text is needed to see the effect.
+.SH
+.PP
+normal paragraph
+.SH
+.RS 6n
+indented paragraph
+.SH
+.RE
+after the end of the indented paragraph
+.SH
+.UR www.openbsd.org
+hyperlink
+.SH
+.UE
+after the end of the hyperlink
+.SH
+.nf
+no-fill mode
+.SH
+.fi
+back in fill mode
diff --git a/regress/man/SH/noarg.out_ascii b/regress/man/SH/noarg.out_ascii
new file mode 100644
index 00000000..bc3490df
--- /dev/null
+++ b/regress/man/SH/noarg.out_ascii
@@ -0,0 +1,32 @@
+SH-NOARG(1) General Commands Manual SH-NOARG(1)
+
+
+
+NNAAMMEE
+ SH-noarg - empty header lines
+
+DDEESSCCRRIIPPTTIIOONN
+ initial text
+
+ SSuubbsseeccttiioonn
+ subsection text
+
+ tag tagged list
+
+ tag indented list
+
+ This is a hanged paragraph. A bit more text is needed to see the
+ effect.
+
+ normal paragraph
+ indented paragraph
+ after the end of the indented paragraph hyperlink <www.openbsd.org>
+ after the end of the hyperlink
+
+ no-fill mode
+
+ back in fill mode
+
+
+
+OpenBSD March 20, 2015 SH-NOARG(1)
diff --git a/regress/man/SH/noarg.out_lint b/regress/man/SH/noarg.out_lint
new file mode 100644
index 00000000..a1bb39b4
--- /dev/null
+++ b/regress/man/SH/noarg.out_lint
@@ -0,0 +1,13 @@
+mandoc: noarg.in:4:2: WARNING: line scope broken: SH breaks SH
+mandoc: noarg.in:8:2: WARNING: line scope broken: SS breaks SH
+mandoc: noarg.in:11:2: WARNING: line scope broken: TP breaks SH
+mandoc: noarg.in:15:2: WARNING: line scope broken: IP breaks SH
+mandoc: noarg.in:18:2: WARNING: line scope broken: HP breaks SH
+mandoc: noarg.in:22:2: WARNING: line scope broken: PP breaks SH
+mandoc: noarg.in:25:2: WARNING: line scope broken: RS breaks SH
+mandoc: noarg.in:28:2: WARNING: line scope broken: RE breaks SH
+mandoc: noarg.in:29:2: ERROR: skipping end of block that is not open: RE
+mandoc: noarg.in:31:2: WARNING: line scope broken: UR breaks SH
+mandoc: noarg.in:34:2: WARNING: line scope broken: UE breaks SH
+mandoc: noarg.in:35:2: ERROR: skipping end of block that is not open: UE
+mandoc: noarg.in:41:2: WARNING: fill mode already enabled, skipping: fi
diff --git a/regress/man/SS/Makefile b/regress/man/SS/Makefile
new file mode 100644
index 00000000..e76a4ee9
--- /dev/null
+++ b/regress/man/SS/Makefile
@@ -0,0 +1,16 @@
+# $OpenBSD: Makefile,v 1.2 2015/04/04 18:52:12 schwarze Exp $
+
+REGRESS_TARGETS = broken broken_eline longarg noarg
+LINT_TARGETS = broken broken_eline noarg
+
+# groff-1.22.3 defects:
+# - .SS without args just before EOF causes two additional blank lines.
+# - Empty .SS heads cause additional vertical spacing.
+# - If .TP or .IP breaks .SS, the tag becomes bold.
+# - If .HP breaks .SS, a line is broken after the next input line.
+# - If .RS/RE/nf/fi breaks .SS, the next input line becomes bold.
+# - .UR does not break .SS.
+
+SKIP_GROFF = broken broken_eline noarg
+
+.include <bsd.regress.mk>
diff --git a/regress/man/SS/broken.in b/regress/man/SS/broken.in
new file mode 100644
index 00000000..784d2c46
--- /dev/null
+++ b/regress/man/SS/broken.in
@@ -0,0 +1,6 @@
+.TH SS-BROKEN 1 "July 30, 2014" OpenBSD
+.SH NAME
+SS-broken \- section header line scope broken by end of file
+.SH DESCRIPTION
+some text
+.SS
diff --git a/regress/man/SS/broken.out_ascii b/regress/man/SS/broken.out_ascii
new file mode 100644
index 00000000..948c0a93
--- /dev/null
+++ b/regress/man/SS/broken.out_ascii
@@ -0,0 +1,13 @@
+SS-BROKEN(1) General Commands Manual SS-BROKEN(1)
+
+
+
+NNAAMMEE
+ SS-broken - section header line scope broken by end of file
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
+OpenBSD July 30, 2014 SS-BROKEN(1)
diff --git a/regress/man/SS/broken.out_lint b/regress/man/SS/broken.out_lint
new file mode 100644
index 00000000..b3f7aea0
--- /dev/null
+++ b/regress/man/SS/broken.out_lint
@@ -0,0 +1 @@
+mandoc: broken.in:6:2: WARNING: line scope broken: EOF breaks SS
diff --git a/regress/man/SS/broken_eline.in b/regress/man/SS/broken_eline.in
new file mode 100644
index 00000000..d5ba6324
--- /dev/null
+++ b/regress/man/SS/broken_eline.in
@@ -0,0 +1,7 @@
+.TH SS-BROKEN_ELINE 1 "July 30, 2014" OpenBSD
+.SH NAME
+SS-broken_eline \- subsection and element line scope broken by eof
+.SH DESCRIPTION
+some text
+.SS
+.B
diff --git a/regress/man/SS/broken_eline.out_ascii b/regress/man/SS/broken_eline.out_ascii
new file mode 100644
index 00000000..79528f45
--- /dev/null
+++ b/regress/man/SS/broken_eline.out_ascii
@@ -0,0 +1,13 @@
+SS-BROKEN_ELINE(1) General Commands Manual SS-BROKEN_ELINE(1)
+
+
+
+NNAAMMEE
+ SS-broken_eline - subsection and element line scope broken by eof
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
+OpenBSD July 30, 2014 SS-BROKEN_ELINE(1)
diff --git a/regress/man/SS/broken_eline.out_lint b/regress/man/SS/broken_eline.out_lint
new file mode 100644
index 00000000..1128b738
--- /dev/null
+++ b/regress/man/SS/broken_eline.out_lint
@@ -0,0 +1,2 @@
+mandoc: broken_eline.in:7:2: WARNING: line scope broken: EOF breaks B
+mandoc: broken_eline.in:6:2: WARNING: line scope broken: EOF breaks SS
diff --git a/regress/man/SS/longarg.in b/regress/man/SS/longarg.in
new file mode 100644
index 00000000..ba218e4d
--- /dev/null
+++ b/regress/man/SS/longarg.in
@@ -0,0 +1,9 @@
+.TH SS-LONGARG 1 "April 4, 2015" OpenBSD
+.SH NAME
+SS-longarg \- long subsection header lines
+.SH
+DESCRIPTION
+initial text
+.SS
+This subsection has a ridiculously long title which won't even fit on the line.
+subsection text
diff --git a/regress/man/SS/longarg.out_ascii b/regress/man/SS/longarg.out_ascii
new file mode 100644
index 00000000..0f4a2cb6
--- /dev/null
+++ b/regress/man/SS/longarg.out_ascii
@@ -0,0 +1,17 @@
+SS-LONGARG(1) General Commands Manual SS-LONGARG(1)
+
+
+
+NNAAMMEE
+ SS-longarg - long subsection header lines
+
+DDEESSCCRRIIPPTTIIOONN
+ initial text
+
+ TThhiiss ssuubbsseeccttiioonn hhaass aa rriiddiiccuulloouussllyy lloonngg ttiittllee wwhhiicchh wwoonn''tt eevveenn ffiitt oonn tthhee
+ lliinnee..
+ subsection text
+
+
+
+OpenBSD April 4, 2015 SS-LONGARG(1)
diff --git a/regress/man/SS/noarg.in b/regress/man/SS/noarg.in
new file mode 100644
index 00000000..85470b01
--- /dev/null
+++ b/regress/man/SS/noarg.in
@@ -0,0 +1,42 @@
+.TH SS-NOARG 1 "March 20, 2015" OpenBSD
+.SH NAME
+SS-noarg \- empty subsection header lines
+.SS
+.SH
+DESCRIPTION
+initial text
+.SS
+.SS Subsection
+subsection text
+.SS
+.TP 6n
+tag
+tagged list
+.SS
+.IP tag 6n
+indented list
+.SS
+.HP 6n
+This is a hanged paragraph.
+A bit more text is needed to see the effect.
+.SS
+.PP
+normal paragraph
+.SS
+.RS 6n
+indented paragraph
+.SS
+.RE
+after the end of the indented paragraph
+.SS
+.UR www.openbsd.org
+hyperlink
+.SS
+.UE
+after the end of the hyperlink
+.SS
+.nf
+no-fill mode
+.SS
+.fi
+back in fill mode
diff --git a/regress/man/SS/noarg.out_ascii b/regress/man/SS/noarg.out_ascii
new file mode 100644
index 00000000..60fd85ff
--- /dev/null
+++ b/regress/man/SS/noarg.out_ascii
@@ -0,0 +1,32 @@
+SS-NOARG(1) General Commands Manual SS-NOARG(1)
+
+
+
+NNAAMMEE
+ SS-noarg - empty subsection header lines
+
+DDEESSCCRRIIPPTTIIOONN
+ initial text
+
+ SSuubbsseeccttiioonn
+ subsection text
+
+ tag tagged list
+
+ tag indented list
+
+ This is a hanged paragraph. A bit more text is needed to see the
+ effect.
+
+ normal paragraph
+ indented paragraph
+ after the end of the indented paragraph hyperlink <www.openbsd.org>
+ after the end of the hyperlink
+
+ no-fill mode
+
+ back in fill mode
+
+
+
+OpenBSD March 20, 2015 SS-NOARG(1)
diff --git a/regress/man/SS/noarg.out_lint b/regress/man/SS/noarg.out_lint
new file mode 100644
index 00000000..17151792
--- /dev/null
+++ b/regress/man/SS/noarg.out_lint
@@ -0,0 +1,13 @@
+mandoc: noarg.in:4:2: WARNING: line scope broken: SH breaks SS
+mandoc: noarg.in:8:2: WARNING: line scope broken: SS breaks SS
+mandoc: noarg.in:11:2: WARNING: line scope broken: TP breaks SS
+mandoc: noarg.in:15:2: WARNING: line scope broken: IP breaks SS
+mandoc: noarg.in:18:2: WARNING: line scope broken: HP breaks SS
+mandoc: noarg.in:22:2: WARNING: line scope broken: PP breaks SS
+mandoc: noarg.in:25:2: WARNING: line scope broken: RS breaks SS
+mandoc: noarg.in:28:2: WARNING: line scope broken: RE breaks SS
+mandoc: noarg.in:29:2: ERROR: skipping end of block that is not open: RE
+mandoc: noarg.in:31:2: WARNING: line scope broken: UR breaks SS
+mandoc: noarg.in:34:2: WARNING: line scope broken: UE breaks SS
+mandoc: noarg.in:35:2: ERROR: skipping end of block that is not open: UE
+mandoc: noarg.in:41:2: WARNING: fill mode already enabled, skipping: fi
diff --git a/regress/man/TH/Makefile b/regress/man/TH/Makefile
new file mode 100644
index 00000000..b1647349
--- /dev/null
+++ b/regress/man/TH/Makefile
@@ -0,0 +1,13 @@
+# $OpenBSD: Makefile,v 1.9 2015/02/06 11:54:03 schwarze Exp $
+
+REGRESS_TARGETS = noTH noarg onearg twoargs sixargs case longtit longvol
+REGRESS_TARGETS += emptydate onlyyear isodate mdocdate baddate longdate
+REGRESS_TARGETS += nobody
+
+LINT_TARGETS = noTH noarg onearg twoargs sixargs case
+LINT_TARGETS += emptydate baddate longdate nobody
+
+SKIP_GROFF = noTH longtit longvol longdate
+SKIP_ASCII = noTH
+
+.include <bsd.regress.mk>
diff --git a/regress/man/TH/baddate.in b/regress/man/TH/baddate.in
new file mode 100644
index 00000000..c8819696
--- /dev/null
+++ b/regress/man/TH/baddate.in
@@ -0,0 +1,5 @@
+.TH TH-BADDATE 1 "three bad words" source
+.SH NAME
+TH-baddate \- the date has three words, but bad ones
+.SH DESCRIPTION
+Some text.
diff --git a/regress/man/TH/baddate.out_ascii b/regress/man/TH/baddate.out_ascii
new file mode 100644
index 00000000..5c14639b
--- /dev/null
+++ b/regress/man/TH/baddate.out_ascii
@@ -0,0 +1,13 @@
+TH-BADDATE(1) General Commands Manual TH-BADDATE(1)
+
+
+
+NNAAMMEE
+ TH-baddate - the date has three words, but bad ones
+
+DDEESSCCRRIIPPTTIIOONN
+ Some text.
+
+
+
+source three bad words TH-BADDATE(1)
diff --git a/regress/man/TH/baddate.out_lint b/regress/man/TH/baddate.out_lint
new file mode 100644
index 00000000..57f24404
--- /dev/null
+++ b/regress/man/TH/baddate.out_lint
@@ -0,0 +1 @@
+mandoc: baddate.in:1:18: WARNING: cannot parse date, using it verbatim: three bad words
diff --git a/regress/man/TH/case.in b/regress/man/TH/case.in
new file mode 100644
index 00000000..74954de4
--- /dev/null
+++ b/regress/man/TH/case.in
@@ -0,0 +1,5 @@
+.TH TH-case 1 "June 13, 2014" OpenBSD
+.SH NAME
+TH-case \- document title is not all caps
+.SH DESCRIPTION
+some text
diff --git a/regress/man/TH/case.out_ascii b/regress/man/TH/case.out_ascii
new file mode 100644
index 00000000..1a8b59be
--- /dev/null
+++ b/regress/man/TH/case.out_ascii
@@ -0,0 +1,13 @@
+TH-case(1) General Commands Manual TH-case(1)
+
+
+
+NNAAMMEE
+ TH-case - document title is not all caps
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
+OpenBSD June 13, 2014 TH-case(1)
diff --git a/regress/man/TH/case.out_lint b/regress/man/TH/case.out_lint
new file mode 100644
index 00000000..b154fc16
--- /dev/null
+++ b/regress/man/TH/case.out_lint
@@ -0,0 +1 @@
+mandoc: case.in:1:8: WARNING: lower case character in document title: TH TH-case
diff --git a/regress/man/TH/emptydate.in b/regress/man/TH/emptydate.in
new file mode 100644
index 00000000..da4b7950
--- /dev/null
+++ b/regress/man/TH/emptydate.in
@@ -0,0 +1,5 @@
+.TH TH-EMPTYDATE 1 "" source
+.SH NAME
+TH-emptydate \- an empty date string
+.SH DESCRIPTION
+Some text.
diff --git a/regress/man/TH/emptydate.out_ascii b/regress/man/TH/emptydate.out_ascii
new file mode 100644
index 00000000..4eb1775d
--- /dev/null
+++ b/regress/man/TH/emptydate.out_ascii
@@ -0,0 +1,13 @@
+TH-EMPTYDATE(1) General Commands Manual TH-EMPTYDATE(1)
+
+
+
+NNAAMMEE
+ TH-emptydate - an empty date string
+
+DDEESSCCRRIIPPTTIIOONN
+ Some text.
+
+
+
+source TH-EMPTYDATE(1)
diff --git a/regress/man/TH/emptydate.out_lint b/regress/man/TH/emptydate.out_lint
new file mode 100644
index 00000000..757fda6c
--- /dev/null
+++ b/regress/man/TH/emptydate.out_lint
@@ -0,0 +1 @@
+mandoc: emptydate.in:1:20: WARNING: missing date, using today's date: TH
diff --git a/regress/man/TH/isodate.in b/regress/man/TH/isodate.in
new file mode 100644
index 00000000..ff483ff8
--- /dev/null
+++ b/regress/man/TH/isodate.in
@@ -0,0 +1,5 @@
+.TH TH-ISODATE 1 "2011-07-02" source
+.SH NAME
+TH-isodate \- ISO date format
+.SH DESCRIPTION
+Some text.
diff --git a/regress/man/TH/isodate.out_ascii b/regress/man/TH/isodate.out_ascii
new file mode 100644
index 00000000..b3ee850b
--- /dev/null
+++ b/regress/man/TH/isodate.out_ascii
@@ -0,0 +1,13 @@
+TH-ISODATE(1) General Commands Manual TH-ISODATE(1)
+
+
+
+NNAAMMEE
+ TH-isodate - ISO date format
+
+DDEESSCCRRIIPPTTIIOONN
+ Some text.
+
+
+
+source 2011-07-02 TH-ISODATE(1)
diff --git a/regress/man/TH/longdate.in b/regress/man/TH/longdate.in
new file mode 100644
index 00000000..263df782
--- /dev/null
+++ b/regress/man/TH/longdate.in
@@ -0,0 +1,5 @@
+.TH TH-LONGDATE 1 "1234567890123456789012345678901234567890123456789012345678901234567890123456789012" source
+.SH NAME
+TH-longdate \- the date is longer than the line length
+.SH DESCRIPTION
+Some text.
diff --git a/regress/man/TH/longdate.out_ascii b/regress/man/TH/longdate.out_ascii
new file mode 100644
index 00000000..4578834b
--- /dev/null
+++ b/regress/man/TH/longdate.out_ascii
@@ -0,0 +1,15 @@
+TH-LONGDATE(1) General Commands Manual TH-LONGDATE(1)
+
+
+
+NNAAMMEE
+ TH-longdate - the date is longer than the line length
+
+DDEESSCCRRIIPPTTIIOONN
+ Some text.
+
+
+
+source
+1234567890123456789012345678901234567890123456789012345678901234567890123456789012
+ TH-LONGDATE(1)
diff --git a/regress/man/TH/longdate.out_lint b/regress/man/TH/longdate.out_lint
new file mode 100644
index 00000000..87add528
--- /dev/null
+++ b/regress/man/TH/longdate.out_lint
@@ -0,0 +1 @@
+mandoc: longdate.in:1:19: WARNING: cannot parse date, using it verbatim: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012
diff --git a/regress/man/TH/longtit.in b/regress/man/TH/longtit.in
new file mode 100644
index 00000000..f0b66b97
--- /dev/null
+++ b/regress/man/TH/longtit.in
@@ -0,0 +1,5 @@
+.TH TH-LONGTIT-23456789012345678901234567890123456789012345678901234567890123456789 1 "November 20, 2014" source
+.SH NAME
+TH-longtit \- the title is longer than the line length
+.SH DESCRIPTION
+Some text.
diff --git a/regress/man/TH/longtit.out_ascii b/regress/man/TH/longtit.out_ascii
new file mode 100644
index 00000000..00dbe254
--- /dev/null
+++ b/regress/man/TH/longtit.out_ascii
@@ -0,0 +1,15 @@
+TH-LONGTIT-23456789012345678901234567890123456789012345678901234567890123456789(1)
+ General Commands Manual
+
+
+
+NNAAMMEE
+ TH-longtit - the title is longer than the line length
+
+DDEESSCCRRIIPPTTIIOONN
+ Some text.
+
+
+
+source November 20, 2014
+TH-LONGTIT-23456789012345678901234567890123456789012345678901234567890123456789(1)
diff --git a/regress/man/TH/longvol.in b/regress/man/TH/longvol.in
new file mode 100644
index 00000000..2b6d0f1f
--- /dev/null
+++ b/regress/man/TH/longvol.in
@@ -0,0 +1,5 @@
+.TH TH-LONGVOL 1 "November 20, 2014" source 1234567890123456789012345678901234567890123456789012345678901234567890123456789
+.SH NAME
+TH-longvol \- the volume string is longer than the line length
+.SH DESCRIPTION
+Some text.
diff --git a/regress/man/TH/longvol.out_ascii b/regress/man/TH/longvol.out_ascii
new file mode 100644
index 00000000..bdc881a8
--- /dev/null
+++ b/regress/man/TH/longvol.out_ascii
@@ -0,0 +1,14 @@
+TH-LONGVOL(1)
+1234567890123456789012345678901234567890123456789012345678901234567890123456789
+
+
+
+NNAAMMEE
+ TH-longvol - the volume string is longer than the line length
+
+DDEESSCCRRIIPPTTIIOONN
+ Some text.
+
+
+
+source November 20, 2014 TH-LONGVOL(1)
diff --git a/regress/man/TH/mdocdate.in b/regress/man/TH/mdocdate.in
new file mode 100644
index 00000000..1def0a1c
--- /dev/null
+++ b/regress/man/TH/mdocdate.in
@@ -0,0 +1,5 @@
+.TH TH-MDOCDATE 1 "July 2, 2011" source
+.SH NAME
+TH-mdocdate \- standard mdoc(7) date format
+.SH DESCRIPTION
+Some text.
diff --git a/regress/man/TH/mdocdate.out_ascii b/regress/man/TH/mdocdate.out_ascii
new file mode 100644
index 00000000..538c4fca
--- /dev/null
+++ b/regress/man/TH/mdocdate.out_ascii
@@ -0,0 +1,13 @@
+TH-MDOCDATE(1) General Commands Manual TH-MDOCDATE(1)
+
+
+
+NNAAMMEE
+ TH-mdocdate - standard mdoc(7) date format
+
+DDEESSCCRRIIPPTTIIOONN
+ Some text.
+
+
+
+source July 2, 2011 TH-MDOCDATE(1)
diff --git a/regress/man/TH/noTH.in b/regress/man/TH/noTH.in
new file mode 100644
index 00000000..1b1d9a69
--- /dev/null
+++ b/regress/man/TH/noTH.in
@@ -0,0 +1,4 @@
+.SH NAME
+TH-noTH \- TH macro missing
+.SH DESCRIPTION
+some text
diff --git a/regress/man/TH/noTH.out_lint b/regress/man/TH/noTH.out_lint
new file mode 100644
index 00000000..01b7b045
--- /dev/null
+++ b/regress/man/TH/noTH.out_lint
@@ -0,0 +1,2 @@
+mandoc: noTH.in: WARNING: missing manual title, using ""
+mandoc: noTH.in: WARNING: missing date, using today's date
diff --git a/regress/man/TH/noarg.in b/regress/man/TH/noarg.in
new file mode 100644
index 00000000..3c15e942
--- /dev/null
+++ b/regress/man/TH/noarg.in
@@ -0,0 +1,5 @@
+.TH
+.SH NAME
+TH-noarg \- no arguments to the TH macro
+.SH DESCRIPTION
+some text
diff --git a/regress/man/TH/noarg.out_ascii b/regress/man/TH/noarg.out_ascii
new file mode 100644
index 00000000..2857a908
--- /dev/null
+++ b/regress/man/TH/noarg.out_ascii
@@ -0,0 +1,13 @@
+() ()
+
+
+
+NNAAMMEE
+ TH-noarg - no arguments to the TH macro
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
+ ()
diff --git a/regress/man/TH/noarg.out_lint b/regress/man/TH/noarg.out_lint
new file mode 100644
index 00000000..aa0b4eb0
--- /dev/null
+++ b/regress/man/TH/noarg.out_lint
@@ -0,0 +1,3 @@
+mandoc: noarg.in:1:2: WARNING: missing manual title, using "": TH
+mandoc: noarg.in:1:2: WARNING: missing manual section, using "": TH
+mandoc: noarg.in:1:2: WARNING: missing date, using today's date: TH
diff --git a/regress/man/TH/nobody.in b/regress/man/TH/nobody.in
new file mode 100644
index 00000000..ab1a47b3
--- /dev/null
+++ b/regress/man/TH/nobody.in
@@ -0,0 +1 @@
+.TH TH-NOBODY 1 "June 20, 2014" OpenBSD
diff --git a/regress/man/TH/nobody.out_ascii b/regress/man/TH/nobody.out_ascii
new file mode 100644
index 00000000..c9f369d4
--- /dev/null
+++ b/regress/man/TH/nobody.out_ascii
@@ -0,0 +1,5 @@
+TH-NOBODY(1) General Commands Manual TH-NOBODY(1)
+
+
+
+OpenBSD June 20, 2014 TH-NOBODY(1)
diff --git a/regress/man/TH/nobody.out_lint b/regress/man/TH/nobody.out_lint
new file mode 100644
index 00000000..f5439fcd
--- /dev/null
+++ b/regress/man/TH/nobody.out_lint
@@ -0,0 +1 @@
+mandoc: nobody.in: WARNING: no document body
diff --git a/regress/man/TH/onearg.in b/regress/man/TH/onearg.in
new file mode 100644
index 00000000..fe77903e
--- /dev/null
+++ b/regress/man/TH/onearg.in
@@ -0,0 +1,5 @@
+.TH TH-ONEARG
+.SH NAME
+TH-onearg \- only one argument to the TH macro
+.SH DESCRIPTION
+some text
diff --git a/regress/man/TH/onearg.out_ascii b/regress/man/TH/onearg.out_ascii
new file mode 100644
index 00000000..08fb66af
--- /dev/null
+++ b/regress/man/TH/onearg.out_ascii
@@ -0,0 +1,13 @@
+TH-ONEARG() TH-ONEARG()
+
+
+
+NNAAMMEE
+ TH-onearg - only one argument to the TH macro
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
+ TH-ONEARG()
diff --git a/regress/man/TH/onearg.out_lint b/regress/man/TH/onearg.out_lint
new file mode 100644
index 00000000..e24e90f4
--- /dev/null
+++ b/regress/man/TH/onearg.out_lint
@@ -0,0 +1,2 @@
+mandoc: onearg.in:1:2: WARNING: missing manual section, using "": TH TH-ONEARG
+mandoc: onearg.in:1:2: WARNING: missing date, using today's date: TH
diff --git a/regress/man/TH/onlyyear.in b/regress/man/TH/onlyyear.in
new file mode 100644
index 00000000..1762438f
--- /dev/null
+++ b/regress/man/TH/onlyyear.in
@@ -0,0 +1,5 @@
+.TH TH-ONLYYEAR 1 2011 source
+.SH NAME
+TH-onlyyear \- the date has only a year
+.SH DESCRIPTION
+Some text.
diff --git a/regress/man/TH/onlyyear.out_ascii b/regress/man/TH/onlyyear.out_ascii
new file mode 100644
index 00000000..7b210a12
--- /dev/null
+++ b/regress/man/TH/onlyyear.out_ascii
@@ -0,0 +1,13 @@
+TH-ONLYYEAR(1) General Commands Manual TH-ONLYYEAR(1)
+
+
+
+NNAAMMEE
+ TH-onlyyear - the date has only a year
+
+DDEESSCCRRIIPPTTIIOONN
+ Some text.
+
+
+
+source 2011 TH-ONLYYEAR(1)
diff --git a/regress/man/TH/sixargs.in b/regress/man/TH/sixargs.in
new file mode 100644
index 00000000..5594818e
--- /dev/null
+++ b/regress/man/TH/sixargs.in
@@ -0,0 +1,5 @@
+.TH TH-SIXARGS 1 "January 16, 2011" OpenBSD regress SIX
+.SH NAME
+TH-sixargs \- six arguments to the TH macro
+.SH DESCRIPTION
+some text
diff --git a/regress/man/TH/sixargs.out_ascii b/regress/man/TH/sixargs.out_ascii
new file mode 100644
index 00000000..3e02362e
--- /dev/null
+++ b/regress/man/TH/sixargs.out_ascii
@@ -0,0 +1,13 @@
+TH-SIXARGS(1) regress TH-SIXARGS(1)
+
+
+
+NNAAMMEE
+ TH-sixargs - six arguments to the TH macro
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
+OpenBSD January 16, 2011 TH-SIXARGS(1)
diff --git a/regress/man/TH/sixargs.out_lint b/regress/man/TH/sixargs.out_lint
new file mode 100644
index 00000000..9ac7a838
--- /dev/null
+++ b/regress/man/TH/sixargs.out_lint
@@ -0,0 +1 @@
+mandoc: sixargs.in:1:53: ERROR: skipping excess arguments: TH ... SIX
diff --git a/regress/man/TH/twoargs.in b/regress/man/TH/twoargs.in
new file mode 100644
index 00000000..6048321a
--- /dev/null
+++ b/regress/man/TH/twoargs.in
@@ -0,0 +1,5 @@
+.TH TH-TWOARGS
+.SH NAME
+TH-twoargs \- only two arguments to the TH macro
+.SH DESCRIPTION
+some text
diff --git a/regress/man/TH/twoargs.out_ascii b/regress/man/TH/twoargs.out_ascii
new file mode 100644
index 00000000..b05312fd
--- /dev/null
+++ b/regress/man/TH/twoargs.out_ascii
@@ -0,0 +1,13 @@
+TH-TWOARGS() TH-TWOARGS()
+
+
+
+NNAAMMEE
+ TH-twoargs - only two arguments to the TH macro
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
+ TH-TWOARGS()
diff --git a/regress/man/TH/twoargs.out_lint b/regress/man/TH/twoargs.out_lint
new file mode 100644
index 00000000..ce7c74eb
--- /dev/null
+++ b/regress/man/TH/twoargs.out_lint
@@ -0,0 +1,2 @@
+mandoc: twoargs.in:1:2: WARNING: missing manual section, using "": TH TH-TWOARGS
+mandoc: twoargs.in:1:2: WARNING: missing date, using today's date: TH
diff --git a/regress/man/TP/Makefile b/regress/man/TP/Makefile
new file mode 100644
index 00000000..b867ba63
--- /dev/null
+++ b/regress/man/TP/Makefile
@@ -0,0 +1,14 @@
+# $OpenBSD: Makefile,v 1.12 2015/09/21 13:24:32 schwarze Exp $
+
+REGRESS_TARGETS = badarg broken double eof fill literal longhead
+REGRESS_TARGETS += macrotag manyargs sameline spacing width
+
+LINT_TARGETS = broken double eof
+
+# groff-1.22.3 defects:
+# - If .TP precedes .RE, the latter does not properly reset indentation.
+# - If the last line of the file is .TP, groff does not print a page footer.
+
+SKIP_GROFF = broken eof
+
+.include <bsd.regress.mk>
diff --git a/regress/man/TP/badarg.in b/regress/man/TP/badarg.in
new file mode 100644
index 00000000..d40759e2
--- /dev/null
+++ b/regress/man/TP/badarg.in
@@ -0,0 +1,20 @@
+.TH TP-BADARG 1 "November 18, 2012" OpenBSD
+.SH NAME
+TP-badarg \- invalid width specification for tagged paragraph
+.SH DESCRIPTION
+Non-numeric width specifications are ignored:
+.TP x
+tag
+indented
+.br
+text
+.TP xxxxx
+tag
+indented
+.br
+text
+.TP xxxxxxxxxx
+tag
+indented
+.br
+text
diff --git a/regress/man/TP/badarg.out_ascii b/regress/man/TP/badarg.out_ascii
new file mode 100644
index 00000000..f5b0a15a
--- /dev/null
+++ b/regress/man/TP/badarg.out_ascii
@@ -0,0 +1,22 @@
+TP-BADARG(1) General Commands Manual TP-BADARG(1)
+
+
+
+NNAAMMEE
+ TP-badarg - invalid width specification for tagged paragraph
+
+DDEESSCCRRIIPPTTIIOONN
+ Non-numeric width specifications are ignored:
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+
+
+OpenBSD November 18, 2012 TP-BADARG(1)
diff --git a/regress/man/TP/broken.in b/regress/man/TP/broken.in
new file mode 100644
index 00000000..c111caeb
--- /dev/null
+++ b/regress/man/TP/broken.in
@@ -0,0 +1,13 @@
+.TH TP-BROKEN 1 "December 16, 2014" OpenBSD
+.SH NAME
+TP-broken \- broken tagged paragraph
+.SH DESCRIPTION
+regular
+text
+.RS 4n
+indented
+text
+.TP
+.RE
+regular
+text
diff --git a/regress/man/TP/broken.out_ascii b/regress/man/TP/broken.out_ascii
new file mode 100644
index 00000000..e19efdf0
--- /dev/null
+++ b/regress/man/TP/broken.out_ascii
@@ -0,0 +1,15 @@
+TP-BROKEN(1) General Commands Manual TP-BROKEN(1)
+
+
+
+NNAAMMEE
+ TP-broken - broken tagged paragraph
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ indented text
+ regular text
+
+
+
+OpenBSD December 16, 2014 TP-BROKEN(1)
diff --git a/regress/man/TP/broken.out_lint b/regress/man/TP/broken.out_lint
new file mode 100644
index 00000000..3a1024fc
--- /dev/null
+++ b/regress/man/TP/broken.out_lint
@@ -0,0 +1 @@
+mandoc: broken.in:10:2: WARNING: line scope broken: RE breaks TP
diff --git a/regress/man/TP/double.in b/regress/man/TP/double.in
new file mode 100644
index 00000000..4a6b1674
--- /dev/null
+++ b/regress/man/TP/double.in
@@ -0,0 +1,40 @@
+.TH TP-DOUBLE 1 2013-06-23 OpenBSD
+.SH NAME
+TP-double \- effect of double tagged paragraph
+.SH DESCRIPTION
+leading text:
+This is a rather long text because we want to test the text width;
+at which point will this text wrap to the next line?
+.TP 16n
+first TP
+This is a rather long text because we want to test the text width;
+at which point will this text wrap to the next line?
+.TP 16n
+second TP
+This is a rather long text because we want to test the text width;
+at which point will this text wrap to the next line?
+.PP
+normal paragraph:
+This is a rather long text because we want to test the text width;
+at which point will this text wrap to the next line?
+.PP
+.TP 16n
+.TP 16n
+double TP
+This is a rather long text because we want to test the text width;
+at which point will this text wrap to the next line?
+.PP
+normal paragraph:
+This is a rather long text because we want to test the text width;
+at which point will this text wrap to the next line?
+.B
+.PP
+.TP 16n
+.TP 16n
+double TP
+This is a rather long text because we want to test the text width;
+at which point will this text wrap to the next line?
+.PP
+normal paragraph:
+This is a rather long text because we want to test the text width;
+at which point will this text wrap to the next line?
diff --git a/regress/man/TP/double.out_ascii b/regress/man/TP/double.out_ascii
new file mode 100644
index 00000000..63c5e9db
--- /dev/null
+++ b/regress/man/TP/double.out_ascii
@@ -0,0 +1,39 @@
+TP-DOUBLE(1) General Commands Manual TP-DOUBLE(1)
+
+
+
+NNAAMMEE
+ TP-double - effect of double tagged paragraph
+
+DDEESSCCRRIIPPTTIIOONN
+ leading text: This is a rather long text because we want to test the
+ text width; at which point will this text wrap to the next line?
+
+ first TP This is a rather long text because we want to test the
+ text width; at which point will this text wrap to the
+ next line?
+
+ second TP This is a rather long text because we want to test the
+ text width; at which point will this text wrap to the
+ next line?
+
+ normal paragraph: This is a rather long text because we want to test
+ the text width; at which point will this text wrap to the next line?
+
+ double TP This is a rather long text because we want to test the
+ text width; at which point will this text wrap to the
+ next line?
+
+ normal paragraph: This is a rather long text because we want to test
+ the text width; at which point will this text wrap to the next line?
+
+ double TP This is a rather long text because we want to test the
+ text width; at which point will this text wrap to the
+ next line?
+
+ normal paragraph: This is a rather long text because we want to test
+ the text width; at which point will this text wrap to the next line?
+
+
+
+OpenBSD 2013-06-23 TP-DOUBLE(1)
diff --git a/regress/man/TP/double.out_lint b/regress/man/TP/double.out_lint
new file mode 100644
index 00000000..0ec1aa87
--- /dev/null
+++ b/regress/man/TP/double.out_lint
@@ -0,0 +1,5 @@
+mandoc: double.in:21:2: WARNING: line scope broken: TP breaks TP
+mandoc: double.in:30:2: WARNING: line scope broken: PP breaks B
+mandoc: double.in:32:2: WARNING: line scope broken: TP breaks TP
+mandoc: double.in:20:2: WARNING: skipping paragraph macro: PP empty
+mandoc: double.in:31:2: WARNING: skipping paragraph macro: PP empty
diff --git a/regress/man/TP/eof.in b/regress/man/TP/eof.in
new file mode 100644
index 00000000..7ab9a100
--- /dev/null
+++ b/regress/man/TP/eof.in
@@ -0,0 +1,6 @@
+.TH TP-EOF 1 "July 7, 2014" OpenBSD
+.SH NAME
+TP-eof \- indented paragraph macro at the end of the file
+.SH DESCRIPTION
+The last line of the file is TP:
+.TP
diff --git a/regress/man/TP/eof.out_ascii b/regress/man/TP/eof.out_ascii
new file mode 100644
index 00000000..30e2cb76
--- /dev/null
+++ b/regress/man/TP/eof.out_ascii
@@ -0,0 +1,13 @@
+TP-EOF(1) General Commands Manual TP-EOF(1)
+
+
+
+NNAAMMEE
+ TP-eof - indented paragraph macro at the end of the file
+
+DDEESSCCRRIIPPTTIIOONN
+ The last line of the file is TP:
+
+
+
+OpenBSD July 7, 2014 TP-EOF(1)
diff --git a/regress/man/TP/eof.out_lint b/regress/man/TP/eof.out_lint
new file mode 100644
index 00000000..62d6ff86
--- /dev/null
+++ b/regress/man/TP/eof.out_lint
@@ -0,0 +1 @@
+mandoc: eof.in:6:2: WARNING: line scope broken: EOF breaks TP
diff --git a/regress/man/TP/fill.in b/regress/man/TP/fill.in
new file mode 100644
index 00000000..642c4e5a
--- /dev/null
+++ b/regress/man/TP/fill.in
@@ -0,0 +1,16 @@
+.TH TP-FILL 1 "September 4, 2015" OpenBSD
+.SH NAME
+TP-fill \- interaction of tagged paragraphs and fill mode
+.SH DESCRIPTION
+Switching off fill mode:
+.TP
+.nf
+tag
+indented
+text
+Switching it back on:
+.fi
+.TP
+This is an extremely long tag that will certainly wrap the line and continue onto the next one.
+indented
+text
diff --git a/regress/man/TP/fill.out_ascii b/regress/man/TP/fill.out_ascii
new file mode 100644
index 00000000..6af000b3
--- /dev/null
+++ b/regress/man/TP/fill.out_ascii
@@ -0,0 +1,21 @@
+TP-FILL(1) General Commands Manual TP-FILL(1)
+
+
+
+NNAAMMEE
+ TP-fill - interaction of tagged paragraphs and fill mode
+
+DDEESSCCRRIIPPTTIIOONN
+ Switching off fill mode:
+
+ tag indented
+ text
+ Switching it back on:
+
+ This is an extremely long tag that will certainly wrap the line and
+ continue onto the next one.
+ indented text
+
+
+
+OpenBSD September 4, 2015 TP-FILL(1)
diff --git a/regress/man/TP/literal.in b/regress/man/TP/literal.in
new file mode 100644
index 00000000..ca86df57
--- /dev/null
+++ b/regress/man/TP/literal.in
@@ -0,0 +1,26 @@
+.TH TP-LITERAL 1 "January 4, 2011" OpenBSD
+.SH NAME
+TP-literal \- indented paragraphs in literal context
+.SH DESCRIPTION
+regular
+text
+.TP 10n
+tag
+indented
+text
+.PP
+regular
+text
+.nf
+literal
+text
+.TP 10n
+tag
+indented
+text
+.PP
+literal
+text
+.fi
+regular
+text
diff --git a/regress/man/TP/literal.out_ascii b/regress/man/TP/literal.out_ascii
new file mode 100644
index 00000000..b8dddb7b
--- /dev/null
+++ b/regress/man/TP/literal.out_ascii
@@ -0,0 +1,26 @@
+TP-LITERAL(1) General Commands Manual TP-LITERAL(1)
+
+
+
+NNAAMMEE
+ TP-literal - indented paragraphs in literal context
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+
+ tag indented text
+
+ regular text
+ literal
+ text
+
+ tag indented
+ text
+
+ literal
+ text
+ regular text
+
+
+
+OpenBSD January 4, 2011 TP-LITERAL(1)
diff --git a/regress/man/TP/longhead.in b/regress/man/TP/longhead.in
new file mode 100644
index 00000000..2fab0df4
--- /dev/null
+++ b/regress/man/TP/longhead.in
@@ -0,0 +1,11 @@
+.TH TP-LONGHEAD 1 "April 8, 2014" OpenBSD
+.SH NAME
+TP-longhead \- tagged paragraph with a long head
+.SH DESCRIPTION
+normal text
+.TP 6n
+.B "This tagged paragraph has ridiculously long text \
+in its head, such that it doesn't even fit on the line"
+paragraph body
+.PP
+normal text
diff --git a/regress/man/TP/longhead.out_ascii b/regress/man/TP/longhead.out_ascii
new file mode 100644
index 00000000..f0de1ee5
--- /dev/null
+++ b/regress/man/TP/longhead.out_ascii
@@ -0,0 +1,19 @@
+TP-LONGHEAD(1) General Commands Manual TP-LONGHEAD(1)
+
+
+
+NNAAMMEE
+ TP-longhead - tagged paragraph with a long head
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ TThhiiss ttaaggggeedd ppaarraaggrraapphh hhaass rriiddiiccuulloouussllyy lloonngg tteexxtt iinn iittss hheeaadd,, ssuucchh tthhaatt
+ iitt ddooeessnn''tt eevveenn ffiitt oonn tthhee lliinnee
+ paragraph body
+
+ normal text
+
+
+
+OpenBSD April 8, 2014 TP-LONGHEAD(1)
diff --git a/regress/man/TP/macrotag.in b/regress/man/TP/macrotag.in
new file mode 100644
index 00000000..5fbb5914
--- /dev/null
+++ b/regress/man/TP/macrotag.in
@@ -0,0 +1,13 @@
+.TH TP-MACROTAG 1 "September 20, 2011" OpenBSD
+.SH NAME
+TP-macrotag \- macro in the head of a tagged paragraph
+.SH DESCRIPTION
+regular
+text
+.TP
+.B longindent
+indented
+text
+.PP
+regular
+text
diff --git a/regress/man/TP/macrotag.out_ascii b/regress/man/TP/macrotag.out_ascii
new file mode 100644
index 00000000..e466adcf
--- /dev/null
+++ b/regress/man/TP/macrotag.out_ascii
@@ -0,0 +1,18 @@
+TP-MACROTAG(1) General Commands Manual TP-MACROTAG(1)
+
+
+
+NNAAMMEE
+ TP-macrotag - macro in the head of a tagged paragraph
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+
+ lloonnggiinnddeenntt
+ indented text
+
+ regular text
+
+
+
+OpenBSD September 20, 2011 TP-MACROTAG(1)
diff --git a/regress/man/TP/manyargs.in b/regress/man/TP/manyargs.in
new file mode 100644
index 00000000..4270c786
--- /dev/null
+++ b/regress/man/TP/manyargs.in
@@ -0,0 +1,45 @@
+.TH TP-MANYARGS 1 "January 4, 2011" OpenBSD
+.SH NAME
+TP-manyargs \- too many header args for indented blocks
+.SH DESCRIPTION
+regular
+text
+.TP 10n
+tag1
+indented
+text
+.PP
+regular
+text
+.TP 10n tag1
+tag2
+indented
+text
+.PP
+regular
+text
+.TP 10n tag2 tag1
+tag3
+indented
+text
+.nf
+literal
+text
+.TP 10n
+tag1
+indented
+text
+.PP
+literal
+text
+.TP 10n tag1
+tag2
+indented
+text
+.PP
+literal
+text
+.TP 10n tag2 tag1
+tag3
+indented
+text
diff --git a/regress/man/TP/manyargs.out_ascii b/regress/man/TP/manyargs.out_ascii
new file mode 100644
index 00000000..a88b8d5b
--- /dev/null
+++ b/regress/man/TP/manyargs.out_ascii
@@ -0,0 +1,40 @@
+TP-MANYARGS(1) General Commands Manual TP-MANYARGS(1)
+
+
+
+NNAAMMEE
+ TP-manyargs - too many header args for indented blocks
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+
+ tag1 indented text
+
+ regular text
+
+ tag2 indented text
+
+ regular text
+
+ tag3 indented text
+ literal
+ text
+
+ tag1 indented
+ text
+
+ literal
+ text
+
+ tag2 indented
+ text
+
+ literal
+ text
+
+ tag3 indented
+ text
+
+
+
+OpenBSD January 4, 2011 TP-MANYARGS(1)
diff --git a/regress/man/TP/sameline.in b/regress/man/TP/sameline.in
new file mode 100644
index 00000000..8857b231
--- /dev/null
+++ b/regress/man/TP/sameline.in
@@ -0,0 +1,30 @@
+.TH TP-SAMELINE 1 "March 8, 2014" OpenBSD
+.SH NAME
+TP-sameline \- test sameline logic of indented paragraphs
+.SH DESCRIPTION
+.SS without user-defined macros
+with width:
+.TP 6n
+tag
+text
+.PP
+without width:
+.TP
+20n
+text
+.SS with user-defined macros
+.de mylist
+with width:
+.TP 6n
+tag
+text
+..
+.mylist
+.PP
+.de mylist
+without width:
+.TP
+20n
+text
+..
+.mylist
diff --git a/regress/man/TP/sameline.out_ascii b/regress/man/TP/sameline.out_ascii
new file mode 100644
index 00000000..767f46cc
--- /dev/null
+++ b/regress/man/TP/sameline.out_ascii
@@ -0,0 +1,29 @@
+TP-SAMELINE(1) General Commands Manual TP-SAMELINE(1)
+
+
+
+NNAAMMEE
+ TP-sameline - test sameline logic of indented paragraphs
+
+DDEESSCCRRIIPPTTIIOONN
+ wwiitthhoouutt uusseerr--ddeeffiinneedd mmaaccrrooss
+ with width:
+
+ tag text
+
+ without width:
+
+ 20n text
+
+ wwiitthh uusseerr--ddeeffiinneedd mmaaccrrooss
+ with width:
+
+ tag text
+
+ without width:
+
+ 20n text
+
+
+
+OpenBSD March 8, 2014 TP-SAMELINE(1)
diff --git a/regress/man/TP/spacing.in b/regress/man/TP/spacing.in
new file mode 100644
index 00000000..71c788aa
--- /dev/null
+++ b/regress/man/TP/spacing.in
@@ -0,0 +1,42 @@
+.TH TP-SPACING 1 "September 21, 2015" OpenBSD
+.SH NAME
+TP-spacing \- spacing in tagged paragraphs
+.SH DESCRIPTION
+Normal text.
+.TP
+tag
+Indented text.
+.TP
+four
+Indented text.
+.TP
+ffive
+Indented text.
+.TP
+sixsix
+Indented text.
+.TP
+seseven
+Indented text.
+.TP
+a much longer tag
+Indented text.
+.LP
+Tags with trailing space:
+.TP
+tag\ \&
+Three plus one makes four.
+.TP
+tag\ \ \&
+Three plus two makes five.
+.TP
+tag\ \ \ \&
+Three plus three makes six.
+.TP
+tag\ \ \ \ \ \&
+Three plus four makes seven.
+.TP
+tag\ \ \ \ \ \ \&
+Three plus five makes eight.
+.LP
+Normal text.
diff --git a/regress/man/TP/spacing.out_ascii b/regress/man/TP/spacing.out_ascii
new file mode 100644
index 00000000..247b25f9
--- /dev/null
+++ b/regress/man/TP/spacing.out_ascii
@@ -0,0 +1,43 @@
+TP-SPACING(1) General Commands Manual TP-SPACING(1)
+
+
+
+NNAAMMEE
+ TP-spacing - spacing in tagged paragraphs
+
+DDEESSCCRRIIPPTTIIOONN
+ Normal text.
+
+ tag Indented text.
+
+ four Indented text.
+
+ ffive Indented text.
+
+ sixsix Indented text.
+
+ seseven
+ Indented text.
+
+ a much longer tag
+ Indented text.
+
+ Tags with trailing space:
+
+ tag Three plus one makes four.
+
+ tag Three plus two makes five.
+
+ tag Three plus three makes six.
+
+ tag
+ Three plus four makes seven.
+
+ tag
+ Three plus five makes eight.
+
+ Normal text.
+
+
+
+OpenBSD September 21, 2015 TP-SPACING(1)
diff --git a/regress/man/TP/width.in b/regress/man/TP/width.in
new file mode 100644
index 00000000..1ba99e40
--- /dev/null
+++ b/regress/man/TP/width.in
@@ -0,0 +1,89 @@
+.TH TP-WIDTH 1 "December 23, 2014" OpenBSD
+.SH NAME
+TP-width \- indentation width of indented paragraphs
+.SH DESCRIPTION
+Regular mode:
+.TP -10n
+tag
+indented
+.br
+text
+.TP -4n
+tag
+indented
+.br
+text
+.TP 0n
+tag
+indented
+.br
+text
+.TP 1n
+tag
+indented
+.br
+text
+.TP 2n
+tag
+indented
+.br
+text
+.TP 3n
+tag
+indented
+.br
+text
+.TP 4n
+tag
+indented
+.br
+text
+.TP 5n
+tag
+indented
+.br
+text
+.TP 100n
+tag
+indented
+.br
+text
+.PP
+Literal mode:
+.nf
+.TP -10n
+tag
+indented
+text
+.TP -4n
+tag
+indented
+text
+.TP 0n
+tag
+indented
+text
+.TP 1n
+tag
+indented
+text
+.TP 2n
+tag
+indented
+text
+.TP 3n
+tag
+indented
+text
+.TP 4n
+tag
+indented
+text
+.TP 5n
+tag
+indented
+text
+.TP 100n
+tag
+indented
+text
diff --git a/regress/man/TP/width.out_ascii b/regress/man/TP/width.out_ascii
new file mode 100644
index 00000000..fea63883
--- /dev/null
+++ b/regress/man/TP/width.out_ascii
@@ -0,0 +1,81 @@
+TP-WIDTH(1) General Commands Manual TP-WIDTH(1)
+
+
+
+NNAAMMEE
+ TP-width - indentation width of indented paragraphs
+
+DDEESSCCRRIIPPTTIIOONN
+ Regular mode:
+
+ tag
+indented
+text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+ Literal mode:
+
+ tag
+indented
+text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag
+ indented
+ text
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+
+
+OpenBSD December 23, 2014 TP-WIDTH(1)
diff --git a/regress/man/TS/Makefile b/regress/man/TS/Makefile
new file mode 100644
index 00000000..1d20dc84
--- /dev/null
+++ b/regress/man/TS/Makefile
@@ -0,0 +1,22 @@
+# $OpenBSD: Makefile,v 1.3 2015/01/30 21:28:21 schwarze Exp $
+
+REGRESS_TARGETS = break vspace
+LINT_TARGETS = break
+
+# groff-1.22.3 defect:
+# - Starting a table in next-line scope confuses font handling,
+# and in the case of .TP indentation as well.
+
+SKIP_GROFF = break
+
+
+# OpenBSD only: maintainer targets
+
+TBL=/usr/local/bin/tbl
+
+.for t in ${REGRESS_TARGETS}
+${t}.out_ascii: ${t}.in
+ ${TBL} ${.ALLSRC} | ${NROFF} ${NOPTS} -Tascii > ${.TARGET}
+.endfor
+
+.include <bsd.regress.mk>
diff --git a/regress/man/TS/break.in b/regress/man/TS/break.in
new file mode 100644
index 00000000..31dfe631
--- /dev/null
+++ b/regress/man/TS/break.in
@@ -0,0 +1,33 @@
+.TH TBL-BREAK 1 "January 30, 2015" OpenBSD
+.SH NAME
+tbl-break \- tables breaking blocks
+.SH DESCRIPTION
+tagged paragraph:
+.TP 6n
+.TS
+l.
+first line
+second line
+.TE
+section:
+.SH
+.TS
+l.
+first line
+second line
+.TE
+subsection:
+.SS
+.TS
+l.
+first line
+second line
+.TE
+bold:
+.B
+.TS
+l.
+first line
+second line
+.TE
+final text
diff --git a/regress/man/TS/break.out_ascii b/regress/man/TS/break.out_ascii
new file mode 100644
index 00000000..57634e02
--- /dev/null
+++ b/regress/man/TS/break.out_ascii
@@ -0,0 +1,29 @@
+TBL-BREAK(1) General Commands Manual TBL-BREAK(1)
+
+
+
+NNAAMMEE
+ tbl-break - tables breaking blocks
+
+DDEESSCCRRIIPPTTIIOONN
+ tagged paragraph:
+
+ first line
+ second line
+ section:
+
+ first line
+ second line
+ subsection:
+
+ first line
+ second line
+ bold:
+
+ first line
+ second line
+ final text
+
+
+
+OpenBSD January 30, 2015 TBL-BREAK(1)
diff --git a/regress/man/TS/break.out_lint b/regress/man/TS/break.out_lint
new file mode 100644
index 00000000..4bff2ea1
--- /dev/null
+++ b/regress/man/TS/break.out_lint
@@ -0,0 +1,4 @@
+mandoc: break.in:6:2: WARNING: line scope broken: TS breaks TP
+mandoc: break.in:13:2: WARNING: line scope broken: TS breaks SH
+mandoc: break.in:20:2: WARNING: line scope broken: TS breaks SS
+mandoc: break.in:27:2: WARNING: line scope broken: TS breaks B
diff --git a/regress/man/TS/vspace.in b/regress/man/TS/vspace.in
new file mode 100644
index 00000000..c3a2363f
--- /dev/null
+++ b/regress/man/TS/vspace.in
@@ -0,0 +1,48 @@
+.TH TBL-VSPACE 1
+.SH NAME
+tbl-vspace \- vertical spacing around tables
+.SH DESCRIPTION
+normal text before table
+.TS
+L .
+table without box
+.TE
+normal text after table without box
+.TS
+box;
+L .
+table with box
+.TE
+.\" at least one vertical space is required here
+.\" or groff will clobber the box
+.sp 1v
+normal text after table with box
+.TS
+doublebox;
+L .
+table with double box
+.TE
+.\" at least two vertical spaces are required here
+.\" or groff will clobber the box
+.sp 2v
+normal text after table with double box
+.TS
+L .
+table without box
+.TE
+.TS
+box;
+L .
+table with box
+.TE
+.sp 1v
+.TS
+doublebox;
+L .
+table with double box
+.TE
+.sp 2v
+.TS
+L .
+table without box
+.TE
diff --git a/regress/man/TS/vspace.out_ascii b/regress/man/TS/vspace.out_ascii
new file mode 100644
index 00000000..6f2feee1
--- /dev/null
+++ b/regress/man/TS/vspace.out_ascii
@@ -0,0 +1,42 @@
+TBL-VSPACE(1) General Commands Manual TBL-VSPACE(1)
+
+
+
+NNAAMMEE
+ tbl-vspace - vertical spacing around tables
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text before table
+
+ table without box
+ normal text after table without box
+
+ +---------------+
+ |table with box |
+ +---------------+
+ normal text after table with box
+
+ +----------------------+
+ +----------------------+
+ |table with double box |
+ +----------------------+
+ +----------------------+
+ normal text after table with double box
+
+ table without box
+
+ +---------------+
+ |table with box |
+ +---------------+
+
+ +----------------------+
+ +----------------------+
+ |table with double box |
+ +----------------------+
+ +----------------------+
+
+ table without box
+
+
+
+ TBL-VSPACE(1)
diff --git a/regress/man/UR/Makefile b/regress/man/UR/Makefile
new file mode 100644
index 00000000..11cafcdf
--- /dev/null
+++ b/regress/man/UR/Makefile
@@ -0,0 +1,12 @@
+# $OpenBSD: Makefile,v 1.3 2015/02/06 11:54:03 schwarze Exp $
+
+REGRESS_TARGETS = args noUE
+LINT_TARGETS = args noUE
+
+# groff-1.22.3 defects:
+# - Without .UE, .UR does not print the URI.
+# - But .UE prints <> even without .UR.
+
+SKIP_GROFF = noUE
+
+.include <bsd.regress.mk>
diff --git a/regress/man/UR/args.in b/regress/man/UR/args.in
new file mode 100644
index 00000000..f45770b2
--- /dev/null
+++ b/regress/man/UR/args.in
@@ -0,0 +1,29 @@
+.TH UR-ARGS 1 "October 17, 2013" OpenBSD
+.SH NAME
+UR-basic \- argument handling of the man-ext URI macro
+.SH DESCRIPTION
+argument plus text:
+.UR http://www.openbsd.org/
+OpenBSD
+homepage
+.UE
+.PP
+argument but no text:
+.UR http://www.netbsd.org/
+.UE
+.PP
+no argument, but text:
+.UR
+some text
+.UE
+.PP
+two arguments plus text:
+.UR first second
+some text
+.UE
+.PP
+two arguments, but no text:
+.UR first second
+.UE
+.PP
+final text
diff --git a/regress/man/UR/args.out_ascii b/regress/man/UR/args.out_ascii
new file mode 100644
index 00000000..9368974a
--- /dev/null
+++ b/regress/man/UR/args.out_ascii
@@ -0,0 +1,23 @@
+UR-ARGS(1) General Commands Manual UR-ARGS(1)
+
+
+
+NNAAMMEE
+ UR-basic - argument handling of the man-ext URI macro
+
+DDEESSCCRRIIPPTTIIOONN
+ argument plus text: OpenBSD homepage <http://www.openbsd.org/>
+
+ argument but no text: <http://www.netbsd.org/>
+
+ no argument, but text: some text <>
+
+ two arguments plus text: some text <first>
+
+ two arguments, but no text: <first>
+
+ final text
+
+
+
+OpenBSD October 17, 2013 UR-ARGS(1)
diff --git a/regress/man/UR/args.out_lint b/regress/man/UR/args.out_lint
new file mode 100644
index 00000000..3e7ef528
--- /dev/null
+++ b/regress/man/UR/args.out_lint
@@ -0,0 +1,5 @@
+mandoc: args.in:21:11: ERROR: skipping excess arguments: UR ... second
+mandoc: args.in:26:11: ERROR: skipping excess arguments: UR ... second
+mandoc: args.in:12:2: WARNING: empty block: UR
+mandoc: args.in:16:2: WARNING: missing resource identifier, using "": UR
+mandoc: args.in:26:2: WARNING: empty block: UR
diff --git a/regress/man/UR/noUE.in b/regress/man/UR/noUE.in
new file mode 100644
index 00000000..8b6f61dd
--- /dev/null
+++ b/regress/man/UR/noUE.in
@@ -0,0 +1,11 @@
+.TH UR-NOUE 1 "July 7, 2014" OpenBSD
+.SH NAME
+UR-noUE \- unclosed URI macro
+.SH DESCRIPTION
+lonely UE:
+.UE
+.PP
+argument plus text:
+.UR http://www.openbsd.org/
+OpenBSD
+homepage
diff --git a/regress/man/UR/noUE.out_ascii b/regress/man/UR/noUE.out_ascii
new file mode 100644
index 00000000..19090f6b
--- /dev/null
+++ b/regress/man/UR/noUE.out_ascii
@@ -0,0 +1,15 @@
+UR-NOUE(1) General Commands Manual UR-NOUE(1)
+
+
+
+NNAAMMEE
+ UR-noUE - unclosed URI macro
+
+DDEESSCCRRIIPPTTIIOONN
+ lonely UE:
+
+ argument plus text: OpenBSD homepage <http://www.openbsd.org/>
+
+
+
+OpenBSD July 7, 2014 UR-NOUE(1)
diff --git a/regress/man/UR/noUE.out_lint b/regress/man/UR/noUE.out_lint
new file mode 100644
index 00000000..d81fad0f
--- /dev/null
+++ b/regress/man/UR/noUE.out_lint
@@ -0,0 +1,2 @@
+mandoc: noUE.in:6:2: ERROR: skipping end of block that is not open: UE
+mandoc: noUE.in:9:2: ERROR: appending missing end of block: UR
diff --git a/regress/man/blank/Makefile b/regress/man/blank/Makefile
new file mode 100644
index 00000000..f4759d32
--- /dev/null
+++ b/regress/man/blank/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.3 2014/07/02 05:51:49 schwarze Exp $
+
+REGRESS_TARGETS = line afterSH afterSS
+LINT_TARGETS = line afterSH afterSS
+
+.include <bsd.regress.mk>
diff --git a/regress/man/blank/afterSH.in b/regress/man/blank/afterSH.in
new file mode 100644
index 00000000..28934fdf
--- /dev/null
+++ b/regress/man/blank/afterSH.in
@@ -0,0 +1,77 @@
+.TH BLANK-AFTERSH 1 "November 10, 2013" OpenBSD
+.SH NAME
+blank-afterSH \- handling of blank lines right after a section heading
+.SH DESCRIPTION
+
+blank line before text
+.SH DESCRIPTION 2
+
+.PP
+blank line before PP
+.SH DESCRIPTION 3
+
+.RS 6n
+blank line before RS
+.RE
+.SH DESCRIPTION 4
+
+.IP TAG
+blank line before an indented paragraph
+.SH DESCRIPTION 5
+
+.TP
+TAG
+blank line before a tagged paragraph
+.SH DESCRIPTION 6
+
+.HP
+blank line before a hanged paragraph
+.SH DESCRIPTION 7
+
+.br
+blank line before br
+.SH DESCRIPTION 8
+
+.sp
+blank line before sp
+.SH DESCRIPTION 10
+
+
+double blank line before text
+.SH DESCRIPTION 12
+
+
+.PP
+double blank line before PP
+.SH DESCRIPTION 13
+
+
+.RS 6n
+double blank line before RS
+.RE
+.SH DESCRIPTION 14
+
+
+.IP TAG
+double blank line before an indented paragraph
+.SH DESCRIPTION 15
+
+
+.TP
+TAG
+double blank line before a tagged paragraph
+.SH DESCRIPTION 16
+
+
+.HP
+double blank line before a hanged paragraph
+.SH DESCRIPTION 17
+
+
+.br
+double blank line before br
+.SH DESCRIPTION 18
+
+
+.sp
+double blank line before sp
diff --git a/regress/man/blank/afterSH.out_ascii b/regress/man/blank/afterSH.out_ascii
new file mode 100644
index 00000000..aac7abab
--- /dev/null
+++ b/regress/man/blank/afterSH.out_ascii
@@ -0,0 +1,58 @@
+BLANK-AFTERSH(1) General Commands Manual BLANK-AFTERSH(1)
+
+
+
+NNAAMMEE
+ blank-afterSH - handling of blank lines right after a section heading
+
+DDEESSCCRRIIPPTTIIOONN
+ blank line before text
+
+DDEESSCCRRIIPPTTIIOONN 22
+ blank line before PP
+
+DDEESSCCRRIIPPTTIIOONN 33
+ blank line before RS
+
+DDEESSCCRRIIPPTTIIOONN 44
+ TAG blank line before an indented paragraph
+
+DDEESSCCRRIIPPTTIIOONN 55
+ TAG blank line before a tagged paragraph
+
+DDEESSCCRRIIPPTTIIOONN 66
+ blank line before a hanged paragraph
+
+DDEESSCCRRIIPPTTIIOONN 77
+ blank line before br
+
+DDEESSCCRRIIPPTTIIOONN 88
+ blank line before sp
+
+DDEESSCCRRIIPPTTIIOONN 1100
+ double blank line before text
+
+DDEESSCCRRIIPPTTIIOONN 1122
+ double blank line before PP
+
+DDEESSCCRRIIPPTTIIOONN 1133
+ double blank line before RS
+
+DDEESSCCRRIIPPTTIIOONN 1144
+ TAG double blank line before an indented paragraph
+
+DDEESSCCRRIIPPTTIIOONN 1155
+ TAG double blank line before a tagged paragraph
+
+DDEESSCCRRIIPPTTIIOONN 1166
+ double blank line before a hanged paragraph
+
+DDEESSCCRRIIPPTTIIOONN 1177
+ double blank line before br
+
+DDEESSCCRRIIPPTTIIOONN 1188
+ double blank line before sp
+
+
+
+OpenBSD November 10, 2013 BLANK-AFTERSH(1)
diff --git a/regress/man/blank/afterSH.out_lint b/regress/man/blank/afterSH.out_lint
new file mode 100644
index 00000000..0a77f218
--- /dev/null
+++ b/regress/man/blank/afterSH.out_lint
@@ -0,0 +1,4 @@
+mandoc: afterSH.in:31:2: WARNING: skipping paragraph macro: br after SH
+mandoc: afterSH.in:35:2: WARNING: skipping paragraph macro: sp after SH
+mandoc: afterSH.in:71:2: WARNING: skipping paragraph macro: br after SH
+mandoc: afterSH.in:76:2: WARNING: skipping paragraph macro: sp after SH
diff --git a/regress/man/blank/afterSS.in b/regress/man/blank/afterSS.in
new file mode 100644
index 00000000..cbf7afe3
--- /dev/null
+++ b/regress/man/blank/afterSS.in
@@ -0,0 +1,78 @@
+.TH BLANK-AFTERSS 1 "November 10, 2013" OpenBSD
+.SH NAME
+blank-afterSS \- handling of blank lines right after a subsection heading
+.SH DESCRIPTION
+.SS 1
+
+blank line before text
+.SS 2
+
+.PP
+blank line before PP
+.SS 3
+
+.RS 6n
+blank line before RS
+.RE
+.SS 4
+
+.IP TAG
+blank line before an indented paragraph
+.SS 5
+
+.TP
+TAG
+blank line before a tagged paragraph
+.SS 6
+
+.HP
+blank line before a hanged paragraph
+.SS 7
+
+.br
+blank line before br
+.SS 8
+
+.sp
+blank line before sp
+.SS 10
+
+
+double blank line before text
+.SS 12
+
+
+.PP
+double blank line before PP
+.SS 13
+
+
+.RS 6n
+double blank line before RS
+.RE
+.SS 14
+
+
+.IP TAG
+double blank line before an indented paragraph
+.SS 15
+
+
+.TP
+TAG
+double blank line before a tagged paragraph
+.SS 16
+
+
+.HP
+double blank line before a hanged paragraph
+.SS 17
+
+
+.br
+double blank line before br
+.SS 18
+
+
+.sp
+double blank line before sp
diff --git a/regress/man/blank/afterSS.out_ascii b/regress/man/blank/afterSS.out_ascii
new file mode 100644
index 00000000..1b30721e
--- /dev/null
+++ b/regress/man/blank/afterSS.out_ascii
@@ -0,0 +1,60 @@
+BLANK-AFTERSS(1) General Commands Manual BLANK-AFTERSS(1)
+
+
+
+NNAAMMEE
+ blank-afterSS - handling of blank lines right after a subsection
+ heading
+
+DDEESSCCRRIIPPTTIIOONN
+ 11
+ blank line before text
+
+ 22
+ blank line before PP
+
+ 33
+ blank line before RS
+
+ 44
+ TAG blank line before an indented paragraph
+
+ 55
+ TAG blank line before a tagged paragraph
+
+ 66
+ blank line before a hanged paragraph
+
+ 77
+ blank line before br
+
+ 88
+ blank line before sp
+
+ 1100
+ double blank line before text
+
+ 1122
+ double blank line before PP
+
+ 1133
+ double blank line before RS
+
+ 1144
+ TAG double blank line before an indented paragraph
+
+ 1155
+ TAG double blank line before a tagged paragraph
+
+ 1166
+ double blank line before a hanged paragraph
+
+ 1177
+ double blank line before br
+
+ 1188
+ double blank line before sp
+
+
+
+OpenBSD November 10, 2013 BLANK-AFTERSS(1)
diff --git a/regress/man/blank/afterSS.out_lint b/regress/man/blank/afterSS.out_lint
new file mode 100644
index 00000000..5129637c
--- /dev/null
+++ b/regress/man/blank/afterSS.out_lint
@@ -0,0 +1,4 @@
+mandoc: afterSS.in:32:2: WARNING: skipping paragraph macro: br after SS
+mandoc: afterSS.in:36:2: WARNING: skipping paragraph macro: sp after SS
+mandoc: afterSS.in:72:2: WARNING: skipping paragraph macro: br after SS
+mandoc: afterSS.in:77:2: WARNING: skipping paragraph macro: sp after SS
diff --git a/regress/man/blank/line.in b/regress/man/blank/line.in
new file mode 100644
index 00000000..e9479960
--- /dev/null
+++ b/regress/man/blank/line.in
@@ -0,0 +1,86 @@
+.TH BLANK-LINE 1 "July 14, 2012" OpenBSD
+.SH NAME
+blank-line \- handling of blank lines
+.SH DESCRIPTION
+.sp
+.PP
+Single br:
+.br
+Single PP:
+.PP
+Single sp:
+.sp
+Single blank:
+
+Double br:
+.br
+.br
+br PP:
+.br
+.PP
+PP br:
+.PP
+.br
+Double PP:
+.PP
+.PP
+br sp:
+.br
+.sp
+sp br:
+.sp
+.br
+PP sp:
+.PP
+.sp
+PP sp 2v:
+.PP
+.sp 2v
+sp PP:
+.sp
+.PP
+Double sp:
+.sp
+.sp
+br blank:
+.br
+
+blank br:
+
+.br
+PP blank:
+.PP
+
+blank PP:
+
+.PP
+sp blank:
+.sp
+
+blank sp:
+
+.sp
+Double blank:
+
+
+RS sp 2v:
+.RS 6n
+.sp 2v
+RE sp 2v:
+.RE
+.sp 2v
+IP sp 2v:
+.IP tag 6n
+.sp 2v
+TP sp 2v:
+.TP 6n
+tag
+.sp 2v
+SH sp 2v:
+.SH CUSTOM
+.sp 2v
+SS sp PP:
+.SS subsection
+.sp
+.PP
+End.
diff --git a/regress/man/blank/line.out_ascii b/regress/man/blank/line.out_ascii
new file mode 100644
index 00000000..2aa6fa6e
--- /dev/null
+++ b/regress/man/blank/line.out_ascii
@@ -0,0 +1,81 @@
+BLANK-LINE(1) General Commands Manual BLANK-LINE(1)
+
+
+
+NNAAMMEE
+ blank-line - handling of blank lines
+
+DDEESSCCRRIIPPTTIIOONN
+ Single br:
+ Single PP:
+
+ Single sp:
+
+ Single blank:
+
+ Double br:
+ br PP:
+
+ PP br:
+
+ Double PP:
+
+ br sp:
+
+ sp br:
+
+ PP sp:
+
+ PP sp 2v:
+
+ sp PP:
+
+
+ Double sp:
+
+
+ br blank:
+
+ blank br:
+
+ PP blank:
+
+ blank PP:
+
+
+ sp blank:
+
+
+ blank sp:
+
+
+ Double blank:
+
+
+ RS sp 2v:
+
+
+ RE sp 2v:
+
+
+ IP sp 2v:
+
+ tag
+
+
+ TP sp 2v:
+
+ tag
+
+
+ SH sp 2v:
+
+CCUUSSTTOOMM
+ SS sp PP:
+
+ ssuubbsseeccttiioonn
+ End.
+
+
+
+OpenBSD July 14, 2012 BLANK-LINE(1)
diff --git a/regress/man/blank/line.out_lint b/regress/man/blank/line.out_lint
new file mode 100644
index 00000000..8480cfc2
--- /dev/null
+++ b/regress/man/blank/line.out_lint
@@ -0,0 +1,4 @@
+mandoc: line.in:5:2: WARNING: skipping paragraph macro: sp after SH
+mandoc: line.in:25:2: WARNING: skipping paragraph macro: PP empty
+mandoc: line.in:81:2: WARNING: skipping paragraph macro: sp after SH
+mandoc: line.in:84:2: WARNING: skipping paragraph macro: sp after SS
diff --git a/regress/man/nf/Makefile b/regress/man/nf/Makefile
new file mode 100644
index 00000000..3f984661
--- /dev/null
+++ b/regress/man/nf/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.7 2015/02/06 08:28:04 schwarze Exp $
+
+REGRESS_TARGETS = indent args vert dupe userdef
+LINT_TARGETS = args dupe
+
+.include <bsd.regress.mk>
diff --git a/regress/man/nf/args.in b/regress/man/nf/args.in
new file mode 100644
index 00000000..8d0c7e58
--- /dev/null
+++ b/regress/man/nf/args.in
@@ -0,0 +1,12 @@
+.TH NF-ARGS 1 "January 16, 2011" OpenBSD
+.SH NAME
+nf-args \- filling macros with arguments
+.SH DESCRIPTION
+regular
+text
+.nf arg1 arg2 arg3
+literal
+text
+.fi arg1 arg2 arg3
+regular
+text
diff --git a/regress/man/nf/args.out_ascii b/regress/man/nf/args.out_ascii
new file mode 100644
index 00000000..114d2fb8
--- /dev/null
+++ b/regress/man/nf/args.out_ascii
@@ -0,0 +1,16 @@
+NF-ARGS(1) General Commands Manual NF-ARGS(1)
+
+
+
+NNAAMMEE
+ nf-args - filling macros with arguments
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ literal
+ text
+ regular text
+
+
+
+OpenBSD January 16, 2011 NF-ARGS(1)
diff --git a/regress/man/nf/args.out_lint b/regress/man/nf/args.out_lint
new file mode 100644
index 00000000..dc11881a
--- /dev/null
+++ b/regress/man/nf/args.out_lint
@@ -0,0 +1,2 @@
+mandoc: args.in:7:5: ERROR: skipping all arguments: nf arg1 arg2 arg3
+mandoc: args.in:10:5: ERROR: skipping all arguments: fi arg1 arg2 arg3
diff --git a/regress/man/nf/dupe.in b/regress/man/nf/dupe.in
new file mode 100644
index 00000000..dfa1acbb
--- /dev/null
+++ b/regress/man/nf/dupe.in
@@ -0,0 +1,17 @@
+.TH NF-DUPE 1 "July 2, 2014" OpenBSD
+.SH NAME
+nf-dupe \- duplicate filling macros
+.SH DESCRIPTION
+regular
+text
+.fi
+still
+regular
+text
+.nf
+literal
+text
+.nf
+still
+literal
+text
diff --git a/regress/man/nf/dupe.out_ascii b/regress/man/nf/dupe.out_ascii
new file mode 100644
index 00000000..ce7f153d
--- /dev/null
+++ b/regress/man/nf/dupe.out_ascii
@@ -0,0 +1,19 @@
+NF-DUPE(1) General Commands Manual NF-DUPE(1)
+
+
+
+NNAAMMEE
+ nf-dupe - duplicate filling macros
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ still regular text
+ literal
+ text
+ still
+ literal
+ text
+
+
+
+OpenBSD July 2, 2014 NF-DUPE(1)
diff --git a/regress/man/nf/dupe.out_lint b/regress/man/nf/dupe.out_lint
new file mode 100644
index 00000000..b33d44c6
--- /dev/null
+++ b/regress/man/nf/dupe.out_lint
@@ -0,0 +1,2 @@
+mandoc: dupe.in:7:2: WARNING: fill mode already enabled, skipping: fi
+mandoc: dupe.in:14:2: WARNING: fill mode already disabled, skipping: nf
diff --git a/regress/man/nf/indent.in b/regress/man/nf/indent.in
new file mode 100644
index 00000000..8c6aedbb
--- /dev/null
+++ b/regress/man/nf/indent.in
@@ -0,0 +1,21 @@
+.TH NF-INDENT 1 "January 4, 2011" OpenBSD
+.SH NAME
+nf-indent \- indentation of literal blocks
+.SH DESCRIPTION
+Here comes
+an indented block:
+.nf
+oneword
+two words
+and three words
+This is a very long line; because it is indented, it is a bit too long to fit.
+blank line:
+
+line with only a zero-width space:
+\&
+line with only a normal space character:
+
+end of literal
+.fi
+He is some more
+regular text.
diff --git a/regress/man/nf/indent.out_ascii b/regress/man/nf/indent.out_ascii
new file mode 100644
index 00000000..4c63327b
--- /dev/null
+++ b/regress/man/nf/indent.out_ascii
@@ -0,0 +1,25 @@
+NF-INDENT(1) General Commands Manual NF-INDENT(1)
+
+
+
+NNAAMMEE
+ nf-indent - indentation of literal blocks
+
+DDEESSCCRRIIPPTTIIOONN
+ Here comes an indented block:
+ oneword
+ two words
+ and three words
+ This is a very long line; because it is indented, it is a bit too long to fit.
+ blank line:
+
+ line with only a zero-width space:
+
+ line with only a normal space character:
+
+ end of literal
+ He is some more regular text.
+
+
+
+OpenBSD January 4, 2011 NF-INDENT(1)
diff --git a/regress/man/nf/userdef.in b/regress/man/nf/userdef.in
new file mode 100644
index 00000000..93422469
--- /dev/null
+++ b/regress/man/nf/userdef.in
@@ -0,0 +1,21 @@
+.TH NF-USERDEF 1 "March 8, 2014" OpenBSD
+.SH NAME
+nf-userdef \- setting unfilled mode via user-defined macros
+.SH DESCRIPTION
+filled
+text
+.nf
+unfilled
+text
+.fi
+filled
+text
+.de MYBLOCK
+.nf
+unfilled
+text
+.fi
+filled
+text
+..
+.MYBLOCK
diff --git a/regress/man/nf/userdef.out_ascii b/regress/man/nf/userdef.out_ascii
new file mode 100644
index 00000000..8b7c42ff
--- /dev/null
+++ b/regress/man/nf/userdef.out_ascii
@@ -0,0 +1,19 @@
+NF-USERDEF(1) General Commands Manual NF-USERDEF(1)
+
+
+
+NNAAMMEE
+ nf-userdef - setting unfilled mode via user-defined macros
+
+DDEESSCCRRIIPPTTIIOONN
+ filled text
+ unfilled
+ text
+ filled text
+ unfilled
+ text
+ filled text
+
+
+
+OpenBSD March 8, 2014 NF-USERDEF(1)
diff --git a/regress/man/nf/vert.in b/regress/man/nf/vert.in
new file mode 100644
index 00000000..3241e6af
--- /dev/null
+++ b/regress/man/nf/vert.in
@@ -0,0 +1,28 @@
+.TH NF-VERT 1 "June 2, 2012" OpenBSD
+.SH NAME
+nf-vert \- spacing around filling macros
+.SH DESCRIPTION
+regular
+text
+.nf
+literal
+text
+.fi
+regular
+text
+.br
+.nf
+literal
+text
+.br
+.fi
+regular
+text
+.sp
+.nf
+literal
+text
+.sp
+.fi
+regular
+text
diff --git a/regress/man/nf/vert.out_ascii b/regress/man/nf/vert.out_ascii
new file mode 100644
index 00000000..2f8732c9
--- /dev/null
+++ b/regress/man/nf/vert.out_ascii
@@ -0,0 +1,24 @@
+NF-VERT(1) General Commands Manual NF-VERT(1)
+
+
+
+NNAAMMEE
+ nf-vert - spacing around filling macros
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ literal
+ text
+ regular text
+ literal
+ text
+ regular text
+
+ literal
+ text
+
+ regular text
+
+
+
+OpenBSD June 2, 2012 NF-VERT(1)