--- /dev/null
+# $OpenBSD: Makefile,v 1.9 2014/06/20 18:27:51 schwarze Exp $
+
+SUBDIR = accent bar hyphen space unicode N
+
+.include "../Makefile.sub"
+.include <bsd.subdir.mk>
--- /dev/null
+# $OpenBSD: Makefile.inc,v 1.3 2015/02/03 19:37:25 schwarze Exp $
+
+SKIP_TMAN ?= ALL
+
+.include "../Makefile.inc"
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2011/11/17 16:28:45 schwarze Exp $
+
+REGRESS_TARGETS=basic
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH N-BASIC 1 "January 29, 2011" OpenBSD
+.SH NAME
+N-basic \- basic handling of character number escapes
+.SH DESCRIPTION
+basic usage: x\N'65'x
+.br
+too large: x\N'259'x
+.br
+much too large: x\N'2259'x
+.br
+.\" XXX mandoc ignores non-printable characters, while groff does not
+.\" too small: x\N'1'x
+.\" .br
+.\" null: x\N'0'x
+.\" .br
+non-numerical content: x\N'XX'x
+.br
+mixed content: x\N'65XX'x
+.br
+empty: x\N''x
+.br
+no quoting: x\N665x
+.br
+non-matching quoting characters: x\NX65Yx
+.br
+end of test document
--- /dev/null
+N-BASIC(1) General Commands Manual N-BASIC(1)
+
+
+
+N\bNA\bAM\bME\bE
+ N-basic - basic handling of character number escapes
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ basic usage: xAx
+ too large: xx
+ much too large: xx
+ non-numerical content: xX'x
+ mixed content: xAX'x
+ empty: xx
+ no quoting: x65x
+ non-matching quoting characters: xAx
+ end of test document
+
+
+
+OpenBSD January 29, 2011 N-BASIC(1)
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2014/03/08 18:00:59 schwarze Exp $
+
+REGRESS_TARGETS = nocombine utf8only combine
+SKIP_ASCII = utf8only combine
+UTF8_TARGETS = nocombine utf8only combine
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH CHAR-ACCENT-COMBINE 1 "February 28, 2014" OpenBSD
+.SH NAME
+\fBchar-accent-combine\fR - combining accents
+.SH DESCRIPTION
+char + combine char U: e\U'0301'
+.br
+char + combine char C: e\C'u0301'
+.br
+char + combine char named: e\[u0301]
+.\" XXX not implemented in mandoc
+.\" .br
+.\" combined chars named numeric: \[u0065_0301]
+.\" .br
+.\" combined chars named: \[e aa]
+.br
+combined char pre N: \['e]
+.br
+combined char pre 2: \('e
+.\" XXX Plan 9 roff only
+.\" .br
+.\" combined char post N: \[e']
+.\" .br
+.\" combined char post 2: \(e'
--- /dev/null
+CHAR-ACCENT-COMBINE(1) General Commands Manual CHAR-ACCENT-COMBINE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ c\bch\bha\bar\br-\b-a\bac\bcc\bce\ben\bnt\bt-\b-c\bco\bom\bmb\bbi\bin\bne\be - combining accents
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ char + combine char U: eU'0301'
+ char + combine char C: é
+ char + combine char named: é
+ combined char pre N: é
+ combined char pre 2: é
+
+
+
+OpenBSD February 28, 2014 CHAR-ACCENT-COMBINE(1)
--- /dev/null
+.TH CHAR-ACCENT-NOCOMBINE 1 "March 8, 2014" OpenBSD
+.SH NAME
+\fBchar-accent-nocombine\fR - non-combining accents
+.SH DESCRIPTION
+bare acute accent: e'e
+.br
+escaped acute accent: e\'e
+.br
+acute accent sequence: e\(aae
+.br
+bare grave accent: e`e
+.br
+escaped grave accent: e\`e
+.br
+acute grave sequence: e\(gae
+.br
+hungarian umlaut: e\(a"e
+.br
+.\" XXX This is ridiculous.
+.\" XXX groff prints the macron as an underscore in the previous line.
+.\" macron: e\(a-e
+.br
+.\" XXX groff doesn't have a dot in ASCII mode, only in UTF-8 mode.
+.\" dotted: e\(a.e
+.br
+circumflex: e\(a^e
+.br
+.\" XXX groff uses a backspace for this one in ASCII mode.
+.\" breve: e\(abe
+.br
+cedilla: e\(ace
+.br
+dieresis: e\(ade
+.br
+caron: e\(ahe
+.br
+ring: e\(aoe
+.br
+tilde: e\(a~e
+.br
+ogonek: e\(hoe
+.br
+text hat: e\(hae
+.br
+text tilde: e\(tie
--- /dev/null
+CHAR-ACCENT-NOCOMBINE(1) General Commands Manual CHAR-ACCENT-NOCOMBINE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ c\bch\bha\bar\br-\b-a\bac\bcc\bce\ben\bnt\bt-\b-n\bno\boc\bco\bom\bmb\bbi\bin\bne\be - non-combining accents
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ bare acute accent: e'e
+ escaped acute accent: e'e
+ acute accent sequence: e'e
+ bare grave accent: e`e
+ escaped grave accent: e`e
+ acute grave sequence: e`e
+ hungarian umlaut: e"e
+ circumflex: e^e
+ cedilla: e,e
+ dieresis: e"e
+ caron: eve
+ ring: eoe
+ tilde: e~e
+ ogonek: e,e
+ text hat: e^e
+ text tilde: e~e
+
+
+
+OpenBSD March 8, 2014 CHAR-ACCENT-NOCOMBINE(1)
--- /dev/null
+CHAR-ACCENT-NOCOMBINE(1) General Commands Manual CHAR-ACCENT-NOCOMBINE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ c\bch\bha\bar\br-\b-a\bac\bcc\bce\ben\bnt\bt-\b-n\bno\boc\bco\bom\bmb\bbi\bin\bne\be - non-combining accents
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ bare acute accent: e'e
+ escaped acute accent: e´e
+ acute accent sequence: e´e
+ bare grave accent: e`e
+ escaped grave accent: e`e
+ acute grave sequence: e`e
+ hungarian umlaut: e˝e
+ circumflex: e^e
+ cedilla: e¸e
+ dieresis: e¨e
+ caron: eˇe
+ ring: e˚e
+ tilde: e~e
+ ogonek: e˛e
+ text hat: e^e
+ text tilde: e~e
+
+
+
+OpenBSD March 8, 2014 CHAR-ACCENT-NOCOMBINE(1)
--- /dev/null
+.TH CHAR-ACCENT-UTF8ONLY 1 "March 8, 2014" OpenBSD
+.SH NAME
+\fBchar-accent-utf8only\fR - accents available in UTF-8 only
+.SH DESCRIPTION
+macron: e\(a-e
+.br
+dotted: e\(a.e
+.br
+breve: e\(abe
--- /dev/null
+CHAR-ACCENT-UTF8ONLY(1) General Commands Manual CHAR-ACCENT-UTF8ONLY(1)
+
+
+
+N\bNA\bAM\bME\bE
+ c\bch\bha\bar\br-\b-a\bac\bcc\bce\ben\bnt\bt-\b-u\but\btf\bf8\b8o\bon\bnl\bly\by - accents available in UTF-8 only
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ macron: e¯e
+ dotted: e˙e
+ breve: e˘e
+
+
+
+OpenBSD March 8, 2014 CHAR-ACCENT-UTF8ONLY(1)
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2012/07/18 10:36:20 schwarze Exp $
+
+REGRESS_TARGETS = man mdoc
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH bar-man 1 "July 17, 2012" OpenBSD
+.SH NAME
+\fBbar-man\fR - formatting the vertical bar symbol
+.SH DESCRIPTION
+.SS normal bar
+Manually switching fonts: \fIitalic\fRroman|roman\fPitalic
+.PP
+.B prefix | suffix
+.SS special character
+Manually switching fonts: \fIitalic\fRroman\(baroman\fPitalic
+.PP
+.B prefix \(ba suffix
--- /dev/null
+bar-man(1) General Commands Manual bar-man(1)
+
+
+
+N\bNA\bAM\bME\bE
+ b\bba\bar\br-\b-m\bma\ban\bn - formatting the vertical bar symbol
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ n\bno\bor\brm\bma\bal\bl b\bba\bar\br
+ Manually switching fonts: _\bi_\bt_\ba_\bl_\bi_\bcroman|roman_\bi_\bt_\ba_\bl_\bi_\bc
+
+ p\bpr\bre\bef\bfi\bix\bx |\b| s\bsu\buf\bff\bfi\bix\bx
+
+ s\bsp\bpe\bec\bci\bia\bal\bl c\bch\bha\bar\bra\bac\bct\bte\ber\br
+ Manually switching fonts: _\bi_\bt_\ba_\bl_\bi_\bcroman|roman_\bi_\bt_\ba_\bl_\bi_\bc
+
+ p\bpr\bre\bef\bfi\bix\bx |\b| s\bsu\buf\bff\bfi\bix\bx
+
+
+
+OpenBSD July 17, 2012 bar-man(1)
--- /dev/null
+.Dd July 17, 2012
+.Dt BAR-MDOC 1
+.Os OpenBSD
+.Sh NAME
+.Nm bar-mdoc
+.Nd formatting the vertical bar symbol
+.Sh DESCRIPTION
+.Ss normal bar
+Manually switching fonts: \fIitalic\fRroman|roman\fPitalic\fR
+.Pp
+.Fl isolated | em|bedded \fR|\fP formatted
+.br
+.Sy isolated | em|bedded \fR|\fP formatted
+.br
+.Ar isolated | em|bedded \fR|\fP formatted
+.br
+.Em isolated | em|bedded \fR|\fP formatted
+.Ss special character
+Manually switching fonts: \fIitalic\fRroman\(baroman\fPitalic\fR
+.Pp
+.Fl isolated \(ba em\(babedded \fR\(ba\fP formatted \fB\(ba\fP bold
+.br
+.Sy isolated \(ba em\(babedded \fR\(ba\fP formatted \fB\(ba\fP bold
+.br
+.Ar isolated \(ba em\(babedded \fR\(ba\fP formatted \fB\(ba\fP bold
+.br
+.Em isolated \(ba em\(babedded \fR\(ba\fP formatted \fB\(ba\fP bold
+.Ss predefined string
+Manually switching fonts: \fIitalic\fRroman\*(Baroman\fPbroken\fR
+.Pp
+.Fl isolated \*(Ba em\*(Babedded
+.br
+.Sy isolated \*(Ba em\*(Babedded
+.br
+.Ar isolated \*(Ba em\*(Babedded
+.br
+.Em isolated \*(Ba em\*(Babedded
--- /dev/null
+BAR-MDOC(1) General Commands Manual BAR-MDOC(1)
+
+N\bNA\bAM\bME\bE
+ b\bba\bar\br-\b-m\bmd\bdo\boc\bc - formatting the vertical bar symbol
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ n\bno\bor\brm\bma\bal\bl b\bba\bar\br
+ Manually switching fonts: _\bi_\bt_\ba_\bl_\bi_\bcroman|roman_\bi_\bt_\ba_\bl_\bi_\bc
+
+ -\b-i\bis\bso\bol\bla\bat\bte\bed\bd | -\b-e\bem\bm|\b|b\bbe\bed\bdd\bde\bed\bd | -\b-f\bfo\bor\brm\bma\bat\btt\bte\bed\bd
+ i\bis\bso\bol\bla\bat\bte\bed\bd | e\bem\bm|\b|b\bbe\bed\bdd\bde\bed\bd | f\bfo\bor\brm\bma\bat\btt\bte\bed\bd
+ _\bi_\bs_\bo_\bl_\ba_\bt_\be_\bd | _\be_\bm_\b|_\bb_\be_\bd_\bd_\be_\bd | _\bf_\bo_\br_\bm_\ba_\bt_\bt_\be_\bd
+ _\bi_\bs_\bo_\bl_\ba_\bt_\be_\bd | _\be_\bm_\b|_\bb_\be_\bd_\bd_\be_\bd | _\bf_\bo_\br_\bm_\ba_\bt_\bt_\be_\bd
+
+ s\bsp\bpe\bec\bci\bia\bal\bl c\bch\bha\bar\bra\bac\bct\bte\ber\br
+ Manually switching fonts: _\bi_\bt_\ba_\bl_\bi_\bcroman|roman_\bi_\bt_\ba_\bl_\bi_\bc
+
+ -\b-i\bis\bso\bol\bla\bat\bte\bed\bd -\b-|\b| -\b-e\bem\bm|\b|b\bbe\bed\bdd\bde\bed\bd -\b-| -\b-f\bfo\bor\brm\bma\bat\btt\bte\bed\bd -\b-|\b| -\b-b\bbo\bol\bld\bd
+ i\bis\bso\bol\bla\bat\bte\bed\bd |\b| e\bem\bm|\b|b\bbe\bed\bdd\bde\bed\bd | f\bfo\bor\brm\bma\bat\btt\bte\bed\bd |\b| b\bbo\bol\bld\bd
+ _\bi_\bs_\bo_\bl_\ba_\bt_\be_\bd _\b| _\be_\bm_\b|_\bb_\be_\bd_\bd_\be_\bd | _\bf_\bo_\br_\bm_\ba_\bt_\bt_\be_\bd |\b| _\bb_\bo_\bl_\bd
+ _\bi_\bs_\bo_\bl_\ba_\bt_\be_\bd _\b| _\be_\bm_\b|_\bb_\be_\bd_\bd_\be_\bd | _\bf_\bo_\br_\bm_\ba_\bt_\bt_\be_\bd |\b| _\bb_\bo_\bl_\bd
+
+ p\bpr\bre\bed\bde\bef\bfi\bin\bne\bed\bd s\bst\btr\bri\bin\bng\bg
+ Manually switching fonts: _\bi_\bt_\ba_\bl_\bi_\bcroman|romanbroken
+
+ -\b-i\bis\bso\bol\bla\bat\bte\bed\bd | -\b-e\bem\bm|b\bbe\bed\bdd\bde\bed\bd
+ i\bis\bso\bol\bla\bat\bte\bed\bd | e\bem\bm|b\bbe\bed\bdd\bde\bed\bd
+ _\bi_\bs_\bo_\bl_\ba_\bt_\be_\bd | _\be_\bm|_\bb_\be_\bd_\bd_\be_\bd
+ _\bi_\bs_\bo_\bl_\ba_\bt_\be_\bd | _\be_\bm|_\bb_\be_\bd_\bd_\be_\bd
+
+OpenBSD July 17, 2012 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2011/11/17 16:28:45 schwarze Exp $
+
+REGRESS_TARGETS=man mdoc
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH hyphen-man 1 "September 18, 2011" OpenBSD
+.SH NAME
+\fBhyphen-man\fR - formatting hyphens and breaking lines
+.SH DESCRIPTION
+This is a long line of text, such that the last word won't fit: break-here
+.PP
+Try the same thing once same again, but now in italic font mode:
+\fIbreak-here\fP
+.PP
+Finally, try it a third time, but this time in bold font mode:
+\fBbreak-here\fP
--- /dev/null
+hyphen-man(1) General Commands Manual hyphen-man(1)
+
+
+
+N\bNA\bAM\bME\bE
+ h\bhy\byp\bph\bhe\ben\bn-\b-m\bma\ban\bn - formatting hyphens and breaking lines
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is a long line of text, such that the last word won't fit: break-
+ here
+
+ Try the same thing once same again, but now in italic font mode: _\bb_\br_\be_\ba_\bk_\b-
+ _\bh_\be_\br_\be
+
+ Finally, try it a third time, but this time in bold font mode: b\bbr\bre\bea\bak\bk-\b-
+ h\bhe\ber\bre\be
+
+
+
+OpenBSD September 18, 2011 hyphen-man(1)
--- /dev/null
+.Dd February 22, 2014
+.Dt HYPHEN-MDOC 1
+.Os OpenBSD
+.Sh NAME
+.Nm hyphen-mdoc
+.Nd formatting hyphens and breaking lines
+.Sh DESCRIPTION
+This is a long line of text, such that the last word won't fit: break-here
+.Pp
+But do not break the line at hyphens inside macro arguments: no
+.No break-here
+.Pp
+Try the same thing once same again, but now in italic font mode:
+\fIbreak-here\fP
+.Pp
+And finally, try it a third time, but this time in bold font mode:
+\fBbreak-here\fP
--- /dev/null
+HYPHEN-MDOC(1) General Commands Manual HYPHEN-MDOC(1)
+
+N\bNA\bAM\bME\bE
+ h\bhy\byp\bph\bhe\ben\bn-\b-m\bmd\bdo\boc\bc - formatting hyphens and breaking lines
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is a long line of text, such that the last word won't fit: break-
+ here
+
+ But do not break the line at hyphens inside macro arguments: no
+ break-here
+
+ Try the same thing once same again, but now in italic font mode: _\bb_\br_\be_\ba_\bk_\b-
+ _\bh_\be_\br_\be
+
+ And finally, try it a third time, but this time in bold font mode: b\bbr\bre\bea\bak\bk-\b-
+ h\bhe\ber\bre\be
+
+OpenBSD February 22, 2014 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.12 2016/12/07 23:27:42 schwarze Exp $
+
+REGRESS_TARGETS = leading-mdoc leading-man multiple trailing-mdoc zerowidth
+REGRESS_TARGETS += eos eos-man break nobreak
+REGRESS_TARGETS += tab tab-man esct-mdoc esct-man
+
+UTF8_TARGETS = zerowidth
+
+HTML_TARGETS = zerowidth
+
+LINT_TARGETS = trailing-mdoc tab tab-man esct-mdoc esct-man
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd January 8, 2014
+.Dt CHAR-BREAK 1
+.Os OpenBSD
+.Sh NAME
+.Nm char-break
+.Nd optional line-break
+.Sh DESCRIPTION
+.Dl cons25,linux,rxvt,rxvt-unicode,\:sun,\:vt100,\:vt220,\:\
+wsvt25,\:xterm,\:xterm-color
+.Pp
+end of text
--- /dev/null
+CHAR-BREAK(1) General Commands Manual CHAR-BREAK(1)
+
+N\bNA\bAM\bME\bE
+ c\bch\bha\bar\br-\b-b\bbr\bre\bea\bak\bk - optional line-break
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ cons25,linux,rxvt,rxvt-unicode,sun,vt100,vt220,wsvt25,xterm,
+ xterm-color
+
+ end of text
+
+OpenBSD January 8, 2014 OpenBSD
--- /dev/null
+.TH SPACE-EOS-MAN 1 "December 22, 2013" OpenBSD
+.SH NAME
+SPACE-EOS-MAN \- end-of-sentence spacing in man(7) documents
+.SH DESCRIPTION
+This is a sentence.
+There is a double space before the next one.
+.PP
+Here is a full stop
+.B at the end of a macro.
+It causes a double space, too.
+.PP
+She said: "Here is another sentence."
+And it was detected even with quotation marks.
+(Really.)
+And within parantheses.
+.PP
+A dot in parantheses (.) is not a full stop.
+.PP
+A dot in the middle of an input line . is not a full stop.
+.PP
+At the end of an input line, even an escaped dot \&.
+is regarded as a full stop.
--- /dev/null
+SPACE-EOS-MAN(1) General Commands Manual SPACE-EOS-MAN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ SPACE-EOS-MAN - end-of-sentence spacing in man(7) documents
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is a sentence. There is a double space before the next one.
+
+ Here is a full stop a\bat\bt t\bth\bhe\be e\ben\bnd\bd o\bof\bf a\ba m\bma\bac\bcr\bro\bo.\b. It causes a double space,
+ too.
+
+ She said: "Here is another sentence." And it was detected even with
+ quotation marks. (Really.) And within parantheses.
+
+ A dot in parantheses (.) is not a full stop.
+
+ A dot in the middle of an input line . is not a full stop.
+
+ At the end of an input line, even an escaped dot . is regarded as a
+ full stop.
+
+
+
+OpenBSD December 22, 2013 SPACE-EOS-MAN(1)
--- /dev/null
+.Dd December 30, 2013
+.Dt SPACE-EOS 1
+.Os OpenBSD
+.Sh NAME
+.Nm space-eos
+.Nd end-of-sentence spacing
+.Sh DESCRIPTION
+This is a sentence.
+There is a double space before the next one.
+.Pp
+Here is a full stop
+.Pq quite lonely .
+It causes a double space, too.
+.Pp
+A dot in parantheses (.) is not a full stop.
+Not even
+.Pq Like in this case.
+when preceded by a letter.
+.Pp
+A lonely dot in an enclosure
+.Pq \&.
+is not a full stop.
+.Pp
+A dot in the middle of an input line . is not a full stop.
+.Pp
+At the end of an input line, even an escaped dot \&.
+is regarded as a full stop.
--- /dev/null
+SPACE-EOS(1) General Commands Manual SPACE-EOS(1)
+
+N\bNA\bAM\bME\bE
+ s\bsp\bpa\bac\bce\be-\b-e\beo\bos\bs - end-of-sentence spacing
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is a sentence. There is a double space before the next one.
+
+ Here is a full stop (quite lonely). It causes a double space, too.
+
+ A dot in parantheses (.) is not a full stop. Not even (Like in this
+ case.) when preceded by a letter.
+
+ A lonely dot in an enclosure (.) is not a full stop.
+
+ A dot in the middle of an input line . is not a full stop.
+
+ At the end of an input line, even an escaped dot . is regarded as a full
+ stop.
+
+OpenBSD December 30, 2013 OpenBSD
--- /dev/null
+.TH SPACE-ESCT-MAN 1 2013-06-20 OpenBSD
+.SH NAME
+SPACE-T-MAN \- the t escape sequence in pages with man macros
+.SH DESCRIPTION
+In plain text:
+.br
+single tab
+.br
+single\tescape-t
+.br
+double tab
+.br
+double\t\tescape-t
+.br
+\tThis line starts with escape-t and comes close to the right margin.
+\tThe next line starts with escape-t as well.
+.sp
+In a literal display:
+.nf
+single tab
+single\tescape-t
+double tab
+double\t\tescape-t
+.fi
+.sp
+After the IP macro:
+.IP single tab 3n
+text
+.IP single\tescape-t 3n
+text
+.PP
+After font macros:
+.br
+.B single\ttab
--- /dev/null
+SPACE-ESCT-MAN(1) General Commands Manual SPACE-ESCT-MAN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ SPACE-T-MAN - the t escape sequence in pages with man macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ In plain text:
+ single tab
+ singleescape-t
+ double tab
+ doubleescape-t
+ This line starts with escape-t and comes close to the right margin.
+ The next line starts with escape-t as well.
+
+ In a literal display:
+ single tab
+ singleescape-t
+ double tab
+ doubleescape-t
+
+ After the IP macro:
+
+ single tab
+ text
+
+ single escape-t
+ text
+
+ After font macros:
+ s\bsi\bin\bng\bgl\ble\be t\bta\bab\bb
+
+
+
+OpenBSD 2013-06-20 SPACE-ESCT-MAN(1)
--- /dev/null
+mandoc: esct-man.in:7:7: WARNING: tab in filled text
+mandoc: esct-man.in:11:7: WARNING: tab in filled text
+mandoc: esct-man.in:11:8: WARNING: tab in filled text
+mandoc: esct-man.in:27:11: WARNING: tab in filled text
+mandoc: esct-man.in:29:11: WARNING: tab in filled text
+mandoc: esct-man.in:34:10: WARNING: tab in filled text
--- /dev/null
+.Dd $Mdocdate: February 8 2017 $
+.Dt SPACE-ESCT-MDOC 1
+.Os OpenBSD
+.Sh NAME
+.Nm space-esct-mdoc
+.Nd the t escape sequence in pages with mdoc macros
+.Sh DESCRIPTION
+In plain text:
+.Pp
+single tab
+.Pp
+single\tescape-t
+.Pp
+double tab
+.Pp
+double\t\tescape-t
+.Pp
+\tThis line starts with escape-t and comes close to the right margin.
+\tThe next line starts with escape-t as well.
+.Pp
+In an unfilled display:
+.Bd -unfilled -offset 3n
+single tab
+single\tescape-t
+double tab
+double\t\tescape-t
+.Ed
+.Pp
+In a literal display:
+.Bd -literal -offset 3n
+single tab
+single\tescape-t
+double tab
+double\t\tescape-t
+.Ed
--- /dev/null
+SPACE-ESCT-MDOC(1) General Commands Manual SPACE-ESCT-MDOC(1)
+
+N\bNA\bAM\bME\bE
+ s\bsp\bpa\bac\bce\be-\b-e\bes\bsc\bct\bt-\b-m\bmd\bdo\boc\bc - the t escape sequence in pages with mdoc macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ In plain text:
+
+ single tab
+
+ singleescape-t
+
+ double tab
+
+ doubleescape-t
+
+ This line starts with escape-t and comes close to the right margin. The
+ next line starts with escape-t as well.
+
+ In an unfilled display:
+
+ single tab
+ singleescape-t
+ double tab
+ doubleescape-t
+
+ In a literal display:
+
+ single tab
+ singleescape-t
+ double tab
+ doubleescape-t
+
+OpenBSD June 20, 2013 OpenBSD
--- /dev/null
+mandoc: esct-mdoc.in:10:7: WARNING: tab in filled text
+mandoc: esct-mdoc.in:14:7: WARNING: tab in filled text
+mandoc: esct-mdoc.in:14:8: WARNING: tab in filled text
--- /dev/null
+.TH SPACE-LEADING-MAN 1 "January 15, 2011" OpenBSD
+.SH NAME
+space-leading-man \- leading spaces on text lines in man documents
+.SH DESCRIPTION
+normal line of text
+second normal line
+ leading space
+.BI bold italic
+normal after macro
+.BI bold italic
+ leading space after a macro line
--- /dev/null
+SPACE-LEADING-MAN(1) General Commands Manual SPACE-LEADING-MAN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ space-leading-man - leading spaces on text lines in man documents
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal line of text second normal line
+ leading space b\bbo\bol\bld\bd_\bi_\bt_\ba_\bl_\bi_\bc normal after macro b\bbo\bol\bld\bd_\bi_\bt_\ba_\bl_\bi_\bc
+ leading space after a macro line
+
+
+
+OpenBSD January 15, 2011 SPACE-LEADING-MAN(1)
--- /dev/null
+.Dd January 15, 2011
+.Dt SPACE-LEADING_MDOC 1
+.Os OpenBSD
+.Sh NAME
+.Nm space-leading-mdoc
+.Nd leading spaces on text lines in mdoc documents
+.Sh DESCRIPTION
+normal line of text
+second normal line
+ line with a leading space
+.Ux
+normal line after a macro line
+.Ux
+ leading space after a macro line
+.Bd -literal
+normal line in a literal display
+ leading space in a literal display
+another normal line
+.Ed
+.Bd -filled
+normal line in a filled display
+ leading space in a filled display
+another normal line
+.Ed
--- /dev/null
+SPACE-LEADING_MDOC(1) General Commands Manual SPACE-LEADING_MDOC(1)
+
+N\bNA\bAM\bME\bE
+ s\bsp\bpa\bac\bce\be-\b-l\ble\bea\bad\bdi\bin\bng\bg-\b-m\bmd\bdo\boc\bc - leading spaces on text lines in mdoc documents
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal line of text second normal line
+ line with a leading space UNIX normal line after a macro line UNIX
+ leading space after a macro line
+
+ normal line in a literal display
+ leading space in a literal display
+ another normal line
+
+ normal line in a filled display
+ leading space in a filled display another normal line
+
+OpenBSD January 15, 2011 OpenBSD
--- /dev/null
+.Dd April 23, 2010
+.Dt SPACE-MULTIPLE 1
+.Os OpenBSD
+.Sh NAME
+.Nm space-multiple
+.Nd handling of multiple adjacent space characters
+.Sh DESCRIPTION
+one space here
+.Pp
+two spaces here
+.Pp
+three spaces here
+.Pp
+one non-collapsing space here
+.Pp
+two non-collapsing spaces\ \ here
+.Pp
+three non-collapsing spaces\ \ \ here
--- /dev/null
+SPACE-MULTIPLE(1) General Commands Manual SPACE-MULTIPLE(1)
+
+N\bNA\bAM\bME\bE
+ s\bsp\bpa\bac\bce\be-\b-m\bmu\bul\blt\bti\bip\bpl\ble\be - handling of multiple adjacent space characters
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ one space here
+
+ two spaces here
+
+ three spaces here
+
+ one non-collapsing space here
+
+ two non-collapsing spaces here
+
+ three non-collapsing spaces here
+
+OpenBSD April 23, 2010 OpenBSD
--- /dev/null
+.Dd July 29, 2012
+.Dt SPACE-NOBREAK 1
+.Os OpenBSD
+.Sh NAME
+.Nm space-nobreak
+.Nd non-breaking, non-collapsing space
+.Sh DESCRIPTION
+The following line has 78 characters and fits:
+.Pp
+78 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x x
+.Pp
+The following line has 79 characters and breaks:
+.Pp
+79 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x x
+.Pp
+With a non-breaking space, it breaks earlier:
+.Pp
+79 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x\~x
+.Pp
+The same with backslash-space:
+.Pp
+79 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x\ x
+.Pp
+Only non-breaking spaces:
+.Pp
+79\~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\~x\~x
+.Pp
+The same with backslash-space:
+.Pp
+79\ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\ x\ x
--- /dev/null
+SPACE-NOBREAK(1) General Commands Manual SPACE-NOBREAK(1)
+
+N\bNA\bAM\bME\bE
+ s\bsp\bpa\bac\bce\be-\b-n\bno\bob\bbr\bre\bea\bak\bk - non-breaking, non-collapsing space
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The following line has 78 characters and fits:
+
+ 78 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x x
+
+ The following line has 79 characters and breaks:
+
+ 79 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x
+ x
+
+ With a non-breaking space, it breaks earlier:
+
+ 79 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ x x
+
+ The same with backslash-space:
+
+ 79 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ x x
+
+ Only non-breaking spaces:
+
+ 79 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x x
+
+ The same with backslash-space:
+
+ 79 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x x
+
+OpenBSD July 29, 2012 OpenBSD
--- /dev/null
+.TH SPACE-TAB-MAN 1 "May 24, 2010" OpenBSD
+.SH NAME
+SPACE-TAB-MAN \- handling of literal tab characters
+.SH DESCRIPTION
+In plain text:
+.br
+1 x
+.br
+22 x
+.br
+333 x
+.br
+4444 x
+.br
+55555 x
+.br
+666666 x
+.br
+7777777 x
+.br
+88888888 x
+.br
+999999999 x
+.br
+aaaaaaaaaa x
+.br
+bbbbbbbbbbb x
+.br
+cccccccccccc x
+.br
+ddddddddddddd x
+.br
+tab space
+.br
+tab tab
+.br
+space tab
+.br
+ tab
+.br
+ tab
+.br
+ This line starts with a tab and comes close to the right margin.
+ The next line starts with a tab as well.
+.br
+In a literal display:
+.nf
+1 x
+22 x
+333 x
+4444 x
+55555 x
+666666 x
+7777777 x
+88888888 x
+999999999 x
+aaaaaaaaaa x
+bbbbbbbbbbb x
+cccccccccccc x
+ddddddddddddd x
+tab space
+tab tab
+space tab
+ tab
+ tab
+.fi
--- /dev/null
+SPACE-TAB-MAN(1) General Commands Manual SPACE-TAB-MAN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ SPACE-TAB-MAN - handling of literal tab characters
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ In plain text:
+ 1 x
+ 22 x
+ 333 x
+ 4444 x
+ 55555 x
+ 666666 x
+ 7777777 x
+ 88888888 x
+ 999999999 x
+ aaaaaaaaaa x
+ bbbbbbbbbbb x
+ cccccccccccc x
+ ddddddddddddd x
+ tab space
+ tab tab
+ space tab
+ tab
+ tab
+ This line starts with a tab and comes close to the right margin.
+ The next line starts with a tab as well.
+ In a literal display:
+ 1 x
+ 22 x
+ 333 x
+ 4444 x
+ 55555 x
+ 666666 x
+ 7777777 x
+ 88888888 x
+ 999999999 x
+ aaaaaaaaaa x
+ bbbbbbbbbbb x
+ cccccccccccc x
+ ddddddddddddd x
+ tab space
+ tab tab
+ space tab
+ tab
+ tab
+
+
+
+OpenBSD May 24, 2010 SPACE-TAB-MAN(1)
--- /dev/null
+mandoc: tab-man.in:7:2: WARNING: tab in filled text
+mandoc: tab-man.in:9:3: WARNING: tab in filled text
+mandoc: tab-man.in:11:4: WARNING: tab in filled text
+mandoc: tab-man.in:13:5: WARNING: tab in filled text
+mandoc: tab-man.in:15:6: WARNING: tab in filled text
+mandoc: tab-man.in:17:7: WARNING: tab in filled text
+mandoc: tab-man.in:19:8: WARNING: tab in filled text
+mandoc: tab-man.in:21:9: WARNING: tab in filled text
+mandoc: tab-man.in:23:10: WARNING: tab in filled text
+mandoc: tab-man.in:25:11: WARNING: tab in filled text
+mandoc: tab-man.in:27:12: WARNING: tab in filled text
+mandoc: tab-man.in:29:13: WARNING: tab in filled text
+mandoc: tab-man.in:31:14: WARNING: tab in filled text
+mandoc: tab-man.in:33:4: WARNING: tab in filled text
+mandoc: tab-man.in:35:4: WARNING: tab in filled text
+mandoc: tab-man.in:35:5: WARNING: tab in filled text
+mandoc: tab-man.in:37:7: WARNING: tab in filled text
+mandoc: tab-man.in:39:1: WARNING: tab in filled text
+mandoc: tab-man.in:41:1: WARNING: tab in filled text
+mandoc: tab-man.in:41:2: WARNING: tab in filled text
+mandoc: tab-man.in:43:1: WARNING: tab in filled text
+mandoc: tab-man.in:44:1: WARNING: tab in filled text
--- /dev/null
+.Dd April 23, 2010
+.Dt SPACE-TAB 1
+.Os OpenBSD
+.Sh NAME
+.Nm space-tab
+.Nd handling of literal space characters
+.Sh DESCRIPTION
+plain text
+.br
+1 x
+.br
+22 x
+.br
+333 x
+.br
+4444 x
+.br
+55555 x
+.br
+666666 x
+.br
+7777777 x
+.br
+88888888 x
+.br
+999999999 x
+.br
+aaaaaaaaaa x
+.br
+bbbbbbbbbbb x
+.br
+cccccccccccc x
+.br
+ddddddddddddd x
+.br
+tab space
+.br
+tab tab
+.br
+space tab
+.br
+ tab
+.br
+ tab
+.br
+ This line starts with a tab and comes close to the right margin.
+ The next line starts with a tab as well.
+.br
+ragged display
+.Bd -ragged -offset 2n
+1 x
+.br
+22 x
+.br
+333 x
+.br
+4444 x
+.br
+55555 x
+.br
+666666 x
+.br
+7777777 x
+.br
+88888888 x
+.br
+999999999 x
+.br
+aaaaaaaaaa x
+.br
+bbbbbbbbbbb x
+.br
+cccccccccccc x
+.br
+ddddddddddddd x
+.br
+tab space
+.br
+tab tab
+.br
+space tab
+.br
+ tab
+.br
+ tab
+.Ed
+unfilled display
+.Bd -unfilled -offset 2n
+1 x
+22 x
+333 x
+4444 x
+55555 x
+666666 x
+7777777 x
+88888888 x
+999999999 x
+aaaaaaaaaa x
+bbbbbbbbbbb x
+cccccccccccc x
+ddddddddddddd x
+tab space
+tab tab
+space tab
+ tab
+ tab
+.Ed
+literal display
+.Bd -literal -offset 2n
+1 x
+22 x
+333 x
+4444 x
+55555 x
+666666 x
+7777777 x
+88888888 x
+999999999 x
+aaaaaaaaaa x
+bbbbbbbbbbb x
+cccccccccccc x
+ddddddddddddd x
+tab space
+tab tab
+space tab
+ tab
+ tab
+.Ed
--- /dev/null
+SPACE-TAB(1) General Commands Manual SPACE-TAB(1)
+
+N\bNA\bAM\bME\bE
+ s\bsp\bpa\bac\bce\be-\b-t\bta\bab\bb - handling of literal space characters
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ plain text
+ 1 x
+ 22 x
+ 333 x
+ 4444 x
+ 55555 x
+ 666666 x
+ 7777777 x
+ 88888888 x
+ 999999999 x
+ aaaaaaaaaa x
+ bbbbbbbbbbb x
+ cccccccccccc x
+ ddddddddddddd x
+ tab space
+ tab tab
+ space tab
+ tab
+ tab
+ This line starts with a tab and comes close to the right margin.
+ The next line starts with a tab as well.
+ ragged display
+
+ 1 x
+ 22 x
+ 333 x
+ 4444 x
+ 55555 x
+ 666666 x
+ 7777777 x
+ 88888888 x
+ 999999999 x
+ aaaaaaaaaa x
+ bbbbbbbbbbb x
+ cccccccccccc x
+ ddddddddddddd x
+ tab space
+ tab tab
+ space tab
+ tab
+ tab
+ unfilled display
+
+ 1 x
+ 22 x
+ 333 x
+ 4444 x
+ 55555 x
+ 666666 x
+ 7777777 x
+ 88888888 x
+ 999999999 x
+ aaaaaaaaaa x
+ bbbbbbbbbbb x
+ cccccccccccc x
+ ddddddddddddd x
+ tab space
+ tab tab
+ space tab
+ tab
+ tab
+ literal display
+
+ 1 x
+ 22 x
+ 333 x
+ 4444 x
+ 55555 x
+ 666666 x
+ 7777777 x
+ 88888888 x
+ 999999999 x
+ aaaaaaaaaa x
+ bbbbbbbbbbb x
+ cccccccccccc x
+ ddddddddddddd x
+ tab space
+ tab tab
+ space tab
+ tab
+ tab
+
+OpenBSD April 23, 2010 OpenBSD
--- /dev/null
+mandoc: tab.in:10:2: WARNING: tab in filled text
+mandoc: tab.in:12:3: WARNING: tab in filled text
+mandoc: tab.in:14:4: WARNING: tab in filled text
+mandoc: tab.in:16:5: WARNING: tab in filled text
+mandoc: tab.in:18:6: WARNING: tab in filled text
+mandoc: tab.in:20:7: WARNING: tab in filled text
+mandoc: tab.in:22:8: WARNING: tab in filled text
+mandoc: tab.in:24:9: WARNING: tab in filled text
+mandoc: tab.in:26:10: WARNING: tab in filled text
+mandoc: tab.in:28:11: WARNING: tab in filled text
+mandoc: tab.in:30:12: WARNING: tab in filled text
+mandoc: tab.in:32:13: WARNING: tab in filled text
+mandoc: tab.in:34:14: WARNING: tab in filled text
+mandoc: tab.in:36:4: WARNING: tab in filled text
+mandoc: tab.in:38:4: WARNING: tab in filled text
+mandoc: tab.in:38:5: WARNING: tab in filled text
+mandoc: tab.in:40:7: WARNING: tab in filled text
+mandoc: tab.in:42:1: WARNING: tab in filled text
+mandoc: tab.in:44:1: WARNING: tab in filled text
+mandoc: tab.in:44:2: WARNING: tab in filled text
+mandoc: tab.in:46:1: WARNING: tab in filled text
+mandoc: tab.in:47:1: WARNING: tab in filled text
+mandoc: tab.in:51:2: WARNING: tab in filled text
+mandoc: tab.in:53:3: WARNING: tab in filled text
+mandoc: tab.in:55:4: WARNING: tab in filled text
+mandoc: tab.in:57:5: WARNING: tab in filled text
+mandoc: tab.in:59:6: WARNING: tab in filled text
+mandoc: tab.in:61:7: WARNING: tab in filled text
+mandoc: tab.in:63:8: WARNING: tab in filled text
+mandoc: tab.in:65:9: WARNING: tab in filled text
+mandoc: tab.in:67:10: WARNING: tab in filled text
+mandoc: tab.in:69:11: WARNING: tab in filled text
+mandoc: tab.in:71:12: WARNING: tab in filled text
+mandoc: tab.in:73:13: WARNING: tab in filled text
+mandoc: tab.in:75:14: WARNING: tab in filled text
+mandoc: tab.in:77:4: WARNING: tab in filled text
+mandoc: tab.in:79:4: WARNING: tab in filled text
+mandoc: tab.in:79:5: WARNING: tab in filled text
+mandoc: tab.in:81:7: WARNING: tab in filled text
+mandoc: tab.in:83:1: WARNING: tab in filled text
+mandoc: tab.in:85:1: WARNING: tab in filled text
+mandoc: tab.in:85:2: WARNING: tab in filled text
--- /dev/null
+.Dd December 8, 2016
+.Dt SPACE-TRAILING-MDOC 1
+.Os OpenBSD
+.Sh NAME
+.Nm space-trailing-mdoc
+.Nd trailing spaces on input lines
+.Sh DESCRIPTION
+on a text line,
+on a
+.Em macro
+line, after a comment \"
--- /dev/null
+SPACE-TRAILING-MDOC(1) General Commands Manual SPACE-TRAILING-MDOC(1)
+
+N\bNA\bAM\bME\bE
+ s\bsp\bpa\bac\bce\be-\b-t\btr\bra\bai\bil\bli\bin\bng\bg-\b-m\bmd\bdo\boc\bc - trailing spaces on input lines
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ on a text line, on a _\bm_\ba_\bc_\br_\bo line, after a comment
+
+OpenBSD December 8, 2016 OpenBSD
--- /dev/null
+mandoc: trailing-mdoc.in:8:16: WARNING: whitespace at end of input line
+mandoc: trailing-mdoc.in:10:12: WARNING: whitespace at end of input line
+mandoc: trailing-mdoc.in:11:27: WARNING: whitespace at end of input line
--- /dev/null
+.TH SPACE-ZEROWIDTH 1 "October 27, 2014" OpenBSD
+.SH NAME
+space-zerowidth \- zero width and narrow space characters
+.SH DESCRIPTION
+.nf
+BEGINTEST
+zero width space \e& between A and B: A\&B
+hyphenation allowed \e% between A and B: A\%B
+half-narrow (1/12) space \e^ between A and B: A\^B
+narrow space (1/6) \e| between A and B: A\|B
+ENDTEST
+.fi
--- /dev/null
+SPACE-ZEROWIDTH(1) General Commands Manual SPACE-ZEROWIDTH(1)
+
+
+
+N\bNA\bAM\bME\bE
+ space-zerowidth - zero width and narrow space characters
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ zero width space \& between A and B: AB
+ hyphenation allowed \% between A and B: AB
+ half-narrow (1/12) space \^ between A and B: AB
+ narrow space (1/6) \| between A and B: AB
+ ENDTEST
+
+
+
+OpenBSD October 27, 2014 SPACE-ZEROWIDTH(1)
--- /dev/null
+BEGINTEST
+zero width space \& between A and B: AB
+hyphenation allowed \% between A and B: AB
+half-narrow (1/12) space \^ between A and B: AB
+narrow space (1/6) \| between A and B: AB
+ENDTEST
--- /dev/null
+SPACE-ZEROWIDTH(1) General Commands Manual SPACE-ZEROWIDTH(1)
+
+
+
+N\bNA\bAM\bME\bE
+ space-zerowidth - zero width and narrow space characters
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ zero width space \& between A and B: AB
+ hyphenation allowed \% between A and B: AB
+ half-narrow (1/12) space \^ between A and B: AB
+ narrow space (1/6) \| between A and B: AB
+ ENDTEST
+
+
+
+OpenBSD October 27, 2014 SPACE-ZEROWIDTH(1)
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2014/12/19 04:57:11 schwarze Exp $
+
+REGRESS_TARGETS = ascii input invalid latin1 latin1diff
+REGRESS_TARGETS += man mdoc named namediff nogroff
+SKIP_ASCII = man mdoc
+UTF8_TARGETS = ${REGRESS_TARGETS}
+HTML_TARGETS = ascii invalid latin1 latin1diff named namediff nogroff
+LINT_TARGETS = input invalid
+
+SKIP_GROFF = input nogroff
+SKIP_GROFF_ASCII = latin1diff namediff
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH CHAR-UNICODE-ASCII 1 "October 27, 2014" OpenBSD
+.SH NAME
+char-unicode-ascii \- Unicode characters in the ASCII range
+.SH DESCRIPTION
+.nf
+BEGINTEST
+\[u0022]\N'34'\(dq QUOTATION MARK
+\[u0023]\N'35'\(sh NUMBER SIGN
+\[u0024]\N'36'\(Do DOLLAR SIGN
+\[u0027]\N'39'\(aq APOSTROPHE
+\[u002B]\N'43'\(pl PLUS SIGN
+\N'45'\- HYPHEN-MINUS
+\N'46'\. FULL STOP
+\[u002F]\N'47'\(sl SOLIDUS
+\[u003D]\N'61'\(eq EQUALS SIGN
+\[u0040]\N'64'\(at COMMERCIAL AT
+\[u005B]\N'91'\(lB LEFT SQUARE BRACKET
+\[u005C]\N'92'\e\(rs REVERSE SOLIDUS
+\[u005D]\N'93'\(rB RIGHT SQUARE BRACKET
+\[u005E]\N'94'\(a^\(ha CIRCUMFLEX ACCENT
+\[u005F]\N'95'\(ul LOW LINE
+\[u0060]\N'96'\`\(ga GRAVE ACCENT
+\[u007B]\N'123'\(lC LEFT CURLY BRACKET
+\[u007C]\N'124'\(ba\(or VERTICAL LINE
+\[u007D]\N'125'\(rC RIGHT CURLY BRACKET
+\[u007E]\N'126'\(a~\(ti TILDE
+ENDTEST
+.fi
--- /dev/null
+CHAR-UNICODE-ASCII(1) General Commands Manual CHAR-UNICODE-ASCII(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-ascii - Unicode characters in the ASCII range
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ """ QUOTATION MARK
+ ### NUMBER SIGN
+ $$$ DOLLAR SIGN
+ ''' APOSTROPHE
+ +++ PLUS SIGN
+ -- HYPHEN-MINUS
+ .. FULL STOP
+ /// SOLIDUS
+ === EQUALS SIGN
+ @@@ COMMERCIAL AT
+ [[[ LEFT SQUARE BRACKET
+ \\\\ REVERSE SOLIDUS
+ ]]] RIGHT SQUARE BRACKET
+ ^^^^ CIRCUMFLEX ACCENT
+ ___ LOW LINE
+ ```` GRAVE ACCENT
+ {{{ LEFT CURLY BRACKET
+ |||| VERTICAL LINE
+ }}} RIGHT CURLY BRACKET
+ ~~~~ TILDE
+ ENDTEST
+
+
+
+OpenBSD October 27, 2014 CHAR-UNICODE-ASCII(1)
--- /dev/null
+BEGINTEST
+""" QUOTATION MARK
+### NUMBER SIGN
+$$$ DOLLAR SIGN
+''' APOSTROPHE
++++ PLUS SIGN
+-- HYPHEN-MINUS
+.. FULL STOP
+/// SOLIDUS
+=== EQUALS SIGN
+@@@ COMMERCIAL AT
+[[[ LEFT SQUARE BRACKET
+\\\\ REVERSE SOLIDUS
+]]] RIGHT SQUARE BRACKET
+^^^^ CIRCUMFLEX ACCENT
+___ LOW LINE
+```` GRAVE ACCENT
+{{{ LEFT CURLY BRACKET
+|||| VERTICAL LINE
+}}} RIGHT CURLY BRACKET
+~~~~ TILDE
+ENDTEST
--- /dev/null
+CHAR-UNICODE-ASCII(1) General Commands Manual CHAR-UNICODE-ASCII(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-ascii - Unicode characters in the ASCII range
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ """ QUOTATION MARK
+ ### NUMBER SIGN
+ $$$ DOLLAR SIGN
+ ''' APOSTROPHE
+ +++ PLUS SIGN
+ -- HYPHEN-MINUS
+ .. FULL STOP
+ /// SOLIDUS
+ === EQUALS SIGN
+ @@@ COMMERCIAL AT
+ [[[ LEFT SQUARE BRACKET
+ \\\\ REVERSE SOLIDUS
+ ]]] RIGHT SQUARE BRACKET
+ ^^^^ CIRCUMFLEX ACCENT
+ ___ LOW LINE
+ ```` GRAVE ACCENT
+ {{{ LEFT CURLY BRACKET
+ |||| VERTICAL LINE
+ }}} RIGHT CURLY BRACKET
+ ~~~~ TILDE
+ ENDTEST
+
+
+
+OpenBSD October 27, 2014 CHAR-UNICODE-ASCII(1)
--- /dev/null
+CHAR-UNICODE-INPUT(1) General Commands Manual CHAR-UNICODE-INPUT(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-input - Unicode characters in the input file
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ lowest valid: <80>
+
+ O\bOn\bne\be-\b-b\bby\byt\bte\be r\bra\ban\bng\bge\be
+
+ U+0000 0x00 <NUL>? lowest ASCII
+ U+001f 0x1f <US>? highest ASCII control character
+ U+007f 0x7f <DEL>? highest ASCII
+ 0x80 ? leading lowest continuation
+ 0xbf ? leading highest continuation
+
+ T\bTw\bwo\bo-\b-b\bby\byt\bte\be r\bra\ban\bng\bge\be
+
+ U+0000 0xc080 ?? lowest obfuscated ASCII
+ U+007f 0xc1bf ?? highest obfuscated ASCII
+ 0xc278 ?x ASCII continuation
+ U+0080 0xc280 <80><80> lowest two-byte
+ 0xc2c380 ?`\bA high continuation
+ U+07FF 0xdfbf <?><?> highest two-byte
+
+ T\bTh\bhr\bre\bee\be-\b-b\bby\byt\bte\be r\bra\ban\bng\bge\be
+
+ U+0000 0xe08080 ??? lowest obfuscated ASCII
+ U+007f 0xe081bf ??? highest obfuscated ASCII
+ U+0080 0xe08280 ??? lowest obfuscated two-byte
+ U+07FF 0xe09fbf ??? highest obfuscated two-byte
+ U+0800 0xe0a080 <?><?> lowest three-byte
+ U+0FFF 0xe0bfbf <?><?> end of first middle byte
+ U+1000 0xe18080 <?><?> begin of second middle byte
+ U+CFFF 0xecbfbf <?><?> end of last normal middle byte
+ U+D000 0xed8080 <?><?> begin of strange middle byte
+ U+D7FF 0xed9fbf <?><?> highest public three-byte
+ U+D800 0xeda080 ??? lowest surrogate
+ U+DFFF 0xedbfbf ??? highest surrogate
+ U+E000 0xee8080 <?><?> lowest private use
+ U+FFFF 0xefbfbf <?><?> highest three-byte
+
+ F\bFo\bou\bur\br-\b-b\bby\byt\bte\be r\bra\ban\bng\bge\be
+
+ U+0000 0xf0808080 ???? lowest obfuscated ASCII
+ U+007f 0xf08081bf ???? highest obfuscated ASCII
+ U+0080 0xf0808280 ???? lowest obfuscated two-byte
+ U+07FF 0xf0809fbf ???? highest obfuscated two-byte
+ U+0800 0xf080a080 ???? lowest obfuscated three-byte
+ U+FFFF 0xf08fbfbf ???? highest obfuscated three-byte
+ U+10000 0xf0908080 <?><?> lowest four-byte
+ U+3FFFF 0xf0bfbfbf <?><?> end of first middle byte
+ U+40000 0xf1808080 <?><?> second middle byte
+ U+FFFFF 0xf3bfbfbf <?><?> last normal middle byte
+ U+100000 0xf4808080 <?><?> strange middle byte
+ U+10FFFF 0xf48fbfbf <?><?> last valid four-byte
+ U+110000 0xf4908080 ???? lowest beyond Unicode
+ U+13FFFF 0xf4bfbfbf ???? end of strange middle byte
+ U+140000 0xf5808080 ???? lowest invalid middle byte
+ U+1FFFFF 0xf7bfbfbf ???? highest four-byte
+ U+200000 0xf888808080 ????? lowest five-byte
+
+
+
+OpenBSD December 19, 2014 CHAR-UNICODE-INPUT(1)
--- /dev/null
+mandoc: input.in:10:21: ERROR: skipping bad character: 0x0
+mandoc: input.in:11:21: ERROR: skipping bad character: 0x1f
+mandoc: input.in:12:21: ERROR: skipping bad character: 0x7f
+mandoc: input.in:13:7: ERROR: skipping bad character: 0x80
+mandoc: input.in:14:7: ERROR: skipping bad character: 0xbf
+mandoc: input.in:20:15: ERROR: skipping bad character: 0xc0
+mandoc: input.in:20:16: ERROR: skipping bad character: 0x80
+mandoc: input.in:21:15: ERROR: skipping bad character: 0xc1
+mandoc: input.in:21:16: ERROR: skipping bad character: 0xbf
+mandoc: input.in:22:9: ERROR: skipping bad character: 0xc2
+mandoc: input.in:24:11: ERROR: skipping bad character: 0xc2
+mandoc: input.in:31:17: ERROR: skipping bad character: 0xc0
+mandoc: input.in:31:18: ERROR: skipping bad character: 0x80
+mandoc: input.in:31:19: ERROR: skipping bad character: 0x80
+mandoc: input.in:32:17: ERROR: skipping bad character: 0xe0
+mandoc: input.in:32:18: ERROR: skipping bad character: 0x81
+mandoc: input.in:32:19: ERROR: skipping bad character: 0xbf
+mandoc: input.in:33:17: ERROR: skipping bad character: 0xe0
+mandoc: input.in:33:18: ERROR: skipping bad character: 0x82
+mandoc: input.in:33:19: ERROR: skipping bad character: 0x80
+mandoc: input.in:34:17: ERROR: skipping bad character: 0xe0
+mandoc: input.in:34:18: ERROR: skipping bad character: 0x9f
+mandoc: input.in:34:19: ERROR: skipping bad character: 0xbf
+mandoc: input.in:41:25: ERROR: skipping bad character: 0xed
+mandoc: input.in:41:26: ERROR: skipping bad character: 0xa0
+mandoc: input.in:41:27: ERROR: skipping bad character: 0x80
+mandoc: input.in:41:17: WARNING: invalid escape sequence: \[uD800]
+mandoc: input.in:42:25: ERROR: skipping bad character: 0xed
+mandoc: input.in:42:26: ERROR: skipping bad character: 0xbf
+mandoc: input.in:42:27: ERROR: skipping bad character: 0xbf
+mandoc: input.in:42:17: WARNING: invalid escape sequence: \[uDFFF]
+mandoc: input.in:50:19: ERROR: skipping bad character: 0xf0
+mandoc: input.in:50:20: ERROR: skipping bad character: 0x80
+mandoc: input.in:50:21: ERROR: skipping bad character: 0x80
+mandoc: input.in:50:22: ERROR: skipping bad character: 0x80
+mandoc: input.in:51:19: ERROR: skipping bad character: 0xf0
+mandoc: input.in:51:20: ERROR: skipping bad character: 0x80
+mandoc: input.in:51:21: ERROR: skipping bad character: 0x81
+mandoc: input.in:51:22: ERROR: skipping bad character: 0xbf
+mandoc: input.in:52:19: ERROR: skipping bad character: 0xf0
+mandoc: input.in:52:20: ERROR: skipping bad character: 0x80
+mandoc: input.in:52:21: ERROR: skipping bad character: 0x82
+mandoc: input.in:52:22: ERROR: skipping bad character: 0x80
+mandoc: input.in:53:19: ERROR: skipping bad character: 0xf0
+mandoc: input.in:53:20: ERROR: skipping bad character: 0x80
+mandoc: input.in:53:21: ERROR: skipping bad character: 0x9f
+mandoc: input.in:53:22: ERROR: skipping bad character: 0xbf
+mandoc: input.in:54:19: ERROR: skipping bad character: 0xf0
+mandoc: input.in:54:20: ERROR: skipping bad character: 0x80
+mandoc: input.in:54:21: ERROR: skipping bad character: 0xa0
+mandoc: input.in:54:22: ERROR: skipping bad character: 0x80
+mandoc: input.in:55:19: ERROR: skipping bad character: 0xf0
+mandoc: input.in:55:20: ERROR: skipping bad character: 0x8f
+mandoc: input.in:55:21: ERROR: skipping bad character: 0xbf
+mandoc: input.in:55:22: ERROR: skipping bad character: 0xbf
+mandoc: input.in:62:31: ERROR: skipping bad character: 0xf4
+mandoc: input.in:62:32: ERROR: skipping bad character: 0x90
+mandoc: input.in:62:33: ERROR: skipping bad character: 0x80
+mandoc: input.in:62:34: ERROR: skipping bad character: 0x80
+mandoc: input.in:62:21: WARNING: invalid escape sequence: \[u110000]
+mandoc: input.in:63:31: ERROR: skipping bad character: 0xf4
+mandoc: input.in:63:32: ERROR: skipping bad character: 0xbf
+mandoc: input.in:63:33: ERROR: skipping bad character: 0xbf
+mandoc: input.in:63:34: ERROR: skipping bad character: 0xbf
+mandoc: input.in:63:21: WARNING: invalid escape sequence: \[u13FFFF]
+mandoc: input.in:64:31: ERROR: skipping bad character: 0xf5
+mandoc: input.in:64:32: ERROR: skipping bad character: 0x80
+mandoc: input.in:64:33: ERROR: skipping bad character: 0x80
+mandoc: input.in:64:34: ERROR: skipping bad character: 0x80
+mandoc: input.in:64:21: WARNING: invalid escape sequence: \[u140000]
+mandoc: input.in:65:31: ERROR: skipping bad character: 0xf7
+mandoc: input.in:65:32: ERROR: skipping bad character: 0xbf
+mandoc: input.in:65:33: ERROR: skipping bad character: 0xbf
+mandoc: input.in:65:34: ERROR: skipping bad character: 0xbf
+mandoc: input.in:65:21: WARNING: invalid escape sequence: \[u1FFFFF]
+mandoc: input.in:66:33: ERROR: skipping bad character: 0xf8
+mandoc: input.in:66:34: ERROR: skipping bad character: 0x88
+mandoc: input.in:66:35: ERROR: skipping bad character: 0x80
+mandoc: input.in:66:36: ERROR: skipping bad character: 0x80
+mandoc: input.in:66:37: ERROR: skipping bad character: 0x80
+mandoc: input.in:66:23: WARNING: invalid escape sequence: \[u200000]
--- /dev/null
+CHAR-UNICODE-INPUT(1) General Commands Manual CHAR-UNICODE-INPUT(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-input - Unicode characters in the input file
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ lowest valid: �
+
+ O\bOn\bne\be-\b-b\bby\byt\bte\be r\bra\ban\bng\bge\be
+
+ U+0000 0x00 �? lowest ASCII
+ U+001f 0x1f �? highest ASCII control character
+ U+007f 0x7f �? highest ASCII
+ 0x80 ? leading lowest continuation
+ 0xbf ? leading highest continuation
+
+ T\bTw\bwo\bo-\b-b\bby\byt\bte\be r\bra\ban\bng\bge\be
+
+ U+0000 0xc080 ?? lowest obfuscated ASCII
+ U+007f 0xc1bf ?? highest obfuscated ASCII
+ 0xc278 ?x ASCII continuation
+ U+0080 0xc280 �� lowest two-byte
+ 0xc2c380 ?À high continuation
+ U+07FF 0xdfbf ߿߿ highest two-byte
+
+ T\bTh\bhr\bre\bee\be-\b-b\bby\byt\bte\be r\bra\ban\bng\bge\be
+
+ U+0000 0xe08080 ??? lowest obfuscated ASCII
+ U+007f 0xe081bf ??? highest obfuscated ASCII
+ U+0080 0xe08280 ??? lowest obfuscated two-byte
+ U+07FF 0xe09fbf ??? highest obfuscated two-byte
+ U+0800 0xe0a080 ࠀࠀ lowest three-byte
+ U+0FFF 0xe0bfbf end of first middle byte
+ U+1000 0xe18080 ကက begin of second middle byte
+ U+CFFF 0xecbfbf 쿿쿿 end of last normal middle byte
+ U+D000 0xed8080 퀀퀀 begin of strange middle byte
+ U+D7FF 0xed9fbf highest public three-byte
+ U+D800 0xeda080 ??? lowest surrogate
+ U+DFFF 0xedbfbf ??? highest surrogate
+ U+E000 0xee8080 lowest private use
+ U+FFFF 0xefbfbf highest three-byte
+
+ F\bFo\bou\bur\br-\b-b\bby\byt\bte\be r\bra\ban\bng\bge\be
+
+ U+0000 0xf0808080 ???? lowest obfuscated ASCII
+ U+007f 0xf08081bf ???? highest obfuscated ASCII
+ U+0080 0xf0808280 ???? lowest obfuscated two-byte
+ U+07FF 0xf0809fbf ???? highest obfuscated two-byte
+ U+0800 0xf080a080 ???? lowest obfuscated three-byte
+ U+FFFF 0xf08fbfbf ???? highest obfuscated three-byte
+ U+10000 0xf0908080 𐀀𐀀 lowest four-byte
+ U+3FFFF 0xf0bfbfbf end of first middle byte
+ U+40000 0xf1808080 second middle byte
+ U+FFFFF 0xf3bfbfbf last normal middle byte
+ U+100000 0xf4808080 strange middle byte
+ U+10FFFF 0xf48fbfbf last valid four-byte
+ U+110000 0xf4908080 ???? lowest beyond Unicode
+ U+13FFFF 0xf4bfbfbf ???? end of strange middle byte
+ U+140000 0xf5808080 ???? lowest invalid middle byte
+ U+1FFFFF 0xf7bfbfbf ???? highest four-byte
+ U+200000 0xf888808080 ????? lowest five-byte
+
+
+
+OpenBSD December 19, 2014 CHAR-UNICODE-INPUT(1)
--- /dev/null
+.Dd October 28, 2014
+.Dt CHAR-UNICODE-INVALID 1
+.Os OpenBSD
+.Sh NAME
+.Nm char-unicode-invalid
+.Nd invalid unicode characters
+.Sh DESCRIPTION
+.Bd -unfilled
+BEGINTEST
+too short: >\[u2B].\[u02B]<
+just right: >\[u002B]<
+too long: >\[u0002B].\[u00002B].\[u000002B]<
+too large: >\[u110000].\[u200000].\[u1000000]<
+trailing garbage: >\[u1234g]<
+not unicode: >\[ul].\[ua].\[uA]<
+ENDTEST
+.Ed
--- /dev/null
+CHAR-UNICODE-INVALID(1) General Commands Manual CHAR-UNICODE-INVALID(1)
+
+N\bNA\bAM\bME\bE
+ c\bch\bha\bar\br-\b-u\bun\bni\bic\bco\bod\bde\be-\b-i\bin\bnv\bva\bal\bli\bid\bd - invalid unicode characters
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ too short: >.<
+ just right: >+<
+ too long: >..<
+ too large: >..<
+ trailing garbage: ><
+ not unicode: >_.|\b^.=\b^<
+ ENDTEST
+
+OpenBSD October 28, 2014 OpenBSD
--- /dev/null
+BEGINTEST
+too short: >.<
+just right: >+<
+too long: >..<
+too large: >..<
+trailing garbage: ><
+not unicode: >_.↑.⇑<
+ENDTEST
--- /dev/null
+mandoc: invalid.in:10:20: WARNING: invalid escape sequence: \[u02B]
+mandoc: invalid.in:10:13: WARNING: invalid escape sequence: \[u2B]
+mandoc: invalid.in:12:33: WARNING: invalid escape sequence: \[u000002B]
+mandoc: invalid.in:12:22: WARNING: invalid escape sequence: \[u00002B]
+mandoc: invalid.in:12:12: WARNING: invalid escape sequence: \[u0002B]
+mandoc: invalid.in:13:35: WARNING: invalid escape sequence: \[u1000000]
+mandoc: invalid.in:13:24: WARNING: invalid escape sequence: \[u200000]
+mandoc: invalid.in:13:13: WARNING: invalid escape sequence: \[u110000]
+mandoc: invalid.in:14:20: WARNING: invalid escape sequence: \[u1234g]
--- /dev/null
+CHAR-UNICODE-INVALID(1) General Commands Manual CHAR-UNICODE-INVALID(1)
+
+N\bNA\bAM\bME\bE
+ c\bch\bha\bar\br-\b-u\bun\bni\bic\bco\bod\bde\be-\b-i\bin\bnv\bva\bal\bli\bid\bd – invalid unicode characters
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ too short: >.<
+ just right: >+<
+ too long: >..<
+ too large: >..<
+ trailing garbage: ><
+ not unicode: >_.↑.⇑<
+ ENDTEST
+
+OpenBSD October 28, 2014 OpenBSD
--- /dev/null
+.TH CHAR-UNICODE-LATIN1 1 "October 27, 2014" OpenBSD
+.SH NAME
+char-unicode-latin1 \- Unicode characters in the ISO-8859-1 range
+.SH DESCRIPTION
+.nf
+BEGINTEST
+\[u00A2]\(ct CENT SIGN
+\[u00A4]\(Cs CURRENCY SIGN
+\[u00A5]\(Ye YEN SIGN
+\[u00A6]\(bb BROKEN BAR
+\[u00A8]\(ad DIAERESIS
+\[u00A9]\(co COPYRIGHT SIGN
+\[u00AA] FEMININE ORDINAL INDICATOR
+\[u00AB]\(Fo LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+\[u00AC]\(no\[tno] NOT SIGN
+\[u00AD] SOFT HYPHEN
+\[u00AE]\(rg REGISTERED SIGN
+\[u00B1]\(+-\[t+-] PLUS-MINUS SIGN
+\[u00B2] SUPERSCRIPT TWO
+\[u00B3] SUPERSCRIPT THREE
+\[u00B4]\'\(aa ACUTE ACCENT
+\[u00B5]\(mc MICRO SIGN
+\[u00B7]\(pc MIDDLE DOT
+\[u00B8]\(ac CEDILLA
+\[u00B9] SUPERSCRIPT ONE
+\[u00BA] MASCULINE ORDINAL INDICATOR
+\[u00BB]\(Fc RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+\[u00BC]\(14 VULGAR FRACTION ONE QUARTER
+\[u00BD]\(12 VULGAR FRACTION ONE HALF
+\[u00BE]\(34 VULGAR FRACTION THREE QUARTERS
+\[u00C0]\(`A LATIN CAPITAL LETTER A WITH GRAVE
+\[u00C1]\('A LATIN CAPITAL LETTER A WITH ACUTE
+\[u00C2]\(^A LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+\[u00C3]\(~A LATIN CAPITAL LETTER A WITH TILDE
+\[u00C4]\(:A LATIN CAPITAL LETTER A WITH DIAERESIS
+\[u00C5]\(oA LATIN CAPITAL LETTER A WITH RING ABOVE
+\[u00C6]\(AE LATIN CAPITAL LETTER AE
+\[u00C7]\(,C LATIN CAPITAL LETTER C WITH CEDILLA
+\[u00C8]\(`E LATIN CAPITAL LETTER E WITH GRAVE
+\[u00C9]\('E LATIN CAPITAL LETTER E WITH ACUTE
+\[u00CA]\(^E LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+\[u00CB]\(:E LATIN CAPITAL LETTER E WITH DIAERESIS
+\[u00CC]\(`I LATIN CAPITAL LETTER I WITH GRAVE
+\[u00CD]\('I LATIN CAPITAL LETTER I WITH ACUTE
+\[u00CE]\(^I LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+\[u00CF]\(:I LATIN CAPITAL LETTER I WITH DIAERESIS
+\[u00D0]\(-D LATIN CAPITAL LETTER ETH
+\[u00D1]\(~N LATIN CAPITAL LETTER N WITH TILDE
+\[u00D2]\(`O LATIN CAPITAL LETTER O WITH GRAVE
+\[u00D3]\('O LATIN CAPITAL LETTER O WITH ACUTE
+\[u00D4]\(^O LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+\[u00D5]\(~O LATIN CAPITAL LETTER O WITH TILDE
+\[u00D6]\(:O LATIN CAPITAL LETTER O WITH DIAERESIS
+\[u00D7]\(mu\[tmu] MULTIPLICATION SIGN
+\[u00D8]\(/O LATIN CAPITAL LETTER O WITH STROKE
+\[u00D9]\(`U LATIN CAPITAL LETTER U WITH GRAVE
+\[u00DA]\('U LATIN CAPITAL LETTER U WITH ACUTE
+\[u00DB]\(^U LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+\[u00DC]\(:U LATIN CAPITAL LETTER U WITH DIAERESIS
+\[u00DD] LATIN CAPITAL LETTER Y WITH ACUTE
+\[u00E0]\(`a LATIN SMALL LETTER A WITH GRAVE
+\[u00E1]\('a LATIN SMALL LETTER A WITH ACUTE
+\[u00E2]\(^a LATIN SMALL LETTER A WITH CIRCUMFLEX
+\[u00E3]\(~a LATIN SMALL LETTER A WITH TILDE
+\[u00E4]\(:a LATIN SMALL LETTER A WITH DIAERESIS
+\[u00E5]\(oa LATIN SMALL LETTER A WITH RING ABOVE
+\[u00E6]\(ae LATIN SMALL LETTER AE
+\[u00E7]\(,c LATIN SMALL LETTER C WITH CEDILLA
+\[u00E8]\(`e LATIN SMALL LETTER E WITH GRAVE
+\[u00E9]\('e LATIN SMALL LETTER E WITH ACUTE
+\[u00EA]\(^e LATIN SMALL LETTER E WITH CIRCUMFLEX
+\[u00EB]\(:e LATIN SMALL LETTER E WITH DIAERESIS
+\[u00EC]\(`i LATIN SMALL LETTER I WITH GRAVE
+\[u00ED]\('i LATIN SMALL LETTER I WITH ACUTE
+\[u00EE]\(^i LATIN SMALL LETTER I WITH CIRCUMFLEX
+\[u00EF]\(:i LATIN SMALL LETTER I WITH DIAERESIS
+\[u00F1]\(~n LATIN SMALL LETTER N WITH TILDE
+\[u00F2]\(`o LATIN SMALL LETTER O WITH GRAVE
+\[u00F3]\('o LATIN SMALL LETTER O WITH ACUTE
+\[u00F4]\(^o LATIN SMALL LETTER O WITH CIRCUMFLEX
+\[u00F5]\(~o LATIN SMALL LETTER O WITH TILDE
+\[u00F6]\(:o LATIN SMALL LETTER O WITH DIAERESIS
+\[u00F7]\(di\[tdi] DIVISION SIGN
+\[u00F8]\(/o LATIN SMALL LETTER O WITH STROKE
+\[u00F9]\(`u LATIN SMALL LETTER U WITH GRAVE
+\[u00FA]\('u LATIN SMALL LETTER U WITH ACUTE
+\[u00FB]\(^u LATIN SMALL LETTER U WITH CIRCUMFLEX
+\[u00FC]\(:u LATIN SMALL LETTER U WITH DIAERESIS
+\[u00FD] LATIN SMALL LETTER Y WITH ACUTE
+\[u00FF]\(:y LATIN SMALL LETTER Y WITH DIAERESIS
+ENDTEST
+.fi
--- /dev/null
+CHAR-UNICODE-LATIN1(1) General Commands Manual CHAR-UNICODE-LATIN1(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-latin1 - Unicode characters in the ISO-8859-1 range
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ /\bc/\bc CENT SIGN
+ o\bxo\bx CURRENCY SIGN
+ =\bY=\bY YEN SIGN
+ || BROKEN BAR
+ "" DIAERESIS
+ (C)(C) COPYRIGHT SIGN
+ _\ba FEMININE ORDINAL INDICATOR
+ <<<< LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ ~~~ NOT SIGN
+ SOFT HYPHEN
+ (R)(R) REGISTERED SIGN
+ +-+-+- PLUS-MINUS SIGN
+ 2 SUPERSCRIPT TWO
+ 3 SUPERSCRIPT THREE
+ ''' ACUTE ACCENT
+ ,\bu,\bu MICRO SIGN
+ .. MIDDLE DOT
+ ,, CEDILLA
+ 1 SUPERSCRIPT ONE
+ _\bo MASCULINE ORDINAL INDICATOR
+ >>>> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 1/41/4 VULGAR FRACTION ONE QUARTER
+ 1/21/2 VULGAR FRACTION ONE HALF
+ 3/43/4 VULGAR FRACTION THREE QUARTERS
+ `\bA`\bA LATIN CAPITAL LETTER A WITH GRAVE
+ '\bA'\bA LATIN CAPITAL LETTER A WITH ACUTE
+ ^\bA^\bA LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ ~\bA~\bA LATIN CAPITAL LETTER A WITH TILDE
+ "\bA"\bA LATIN CAPITAL LETTER A WITH DIAERESIS
+ o\bAo\bA LATIN CAPITAL LETTER A WITH RING ABOVE
+ AEAE LATIN CAPITAL LETTER AE
+ ,\bC,\bC LATIN CAPITAL LETTER C WITH CEDILLA
+ `\bE`\bE LATIN CAPITAL LETTER E WITH GRAVE
+ '\bE'\bE LATIN CAPITAL LETTER E WITH ACUTE
+ ^\bE^\bE LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ "\bE"\bE LATIN CAPITAL LETTER E WITH DIAERESIS
+ `\bI`\bI LATIN CAPITAL LETTER I WITH GRAVE
+ '\bI'\bI LATIN CAPITAL LETTER I WITH ACUTE
+ ^\bI^\bI LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ "\bI"\bI LATIN CAPITAL LETTER I WITH DIAERESIS
+ -\bD-\bD LATIN CAPITAL LETTER ETH
+ ~\bN~\bN LATIN CAPITAL LETTER N WITH TILDE
+ `\bO`\bO LATIN CAPITAL LETTER O WITH GRAVE
+ '\bO'\bO LATIN CAPITAL LETTER O WITH ACUTE
+ ^\bO^\bO LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ ~\bO~\bO LATIN CAPITAL LETTER O WITH TILDE
+ "\bO"\bO LATIN CAPITAL LETTER O WITH DIAERESIS
+ xxx MULTIPLICATION SIGN
+ /\bO/\bO LATIN CAPITAL LETTER O WITH STROKE
+ `\bU`\bU LATIN CAPITAL LETTER U WITH GRAVE
+ '\bU'\bU LATIN CAPITAL LETTER U WITH ACUTE
+ ^\bU^\bU LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ "\bU"\bU LATIN CAPITAL LETTER U WITH DIAERESIS
+ '\bY LATIN CAPITAL LETTER Y WITH ACUTE
+ `\ba`\ba LATIN SMALL LETTER A WITH GRAVE
+ '\ba'\ba LATIN SMALL LETTER A WITH ACUTE
+ ^\ba^\ba LATIN SMALL LETTER A WITH CIRCUMFLEX
+ ~\ba~\ba LATIN SMALL LETTER A WITH TILDE
+ "\ba"\ba LATIN SMALL LETTER A WITH DIAERESIS
+ o\bao\ba LATIN SMALL LETTER A WITH RING ABOVE
+ aeae LATIN SMALL LETTER AE
+ ,\bc,\bc LATIN SMALL LETTER C WITH CEDILLA
+ `\be`\be LATIN SMALL LETTER E WITH GRAVE
+ '\be'\be LATIN SMALL LETTER E WITH ACUTE
+ ^\be^\be LATIN SMALL LETTER E WITH CIRCUMFLEX
+ "\be"\be LATIN SMALL LETTER E WITH DIAERESIS
+ `\bi`\bi LATIN SMALL LETTER I WITH GRAVE
+ '\bi'\bi LATIN SMALL LETTER I WITH ACUTE
+ ^\bi^\bi LATIN SMALL LETTER I WITH CIRCUMFLEX
+ "\bi"\bi LATIN SMALL LETTER I WITH DIAERESIS
+ ~\bn~\bn LATIN SMALL LETTER N WITH TILDE
+ `\bo`\bo LATIN SMALL LETTER O WITH GRAVE
+ '\bo'\bo LATIN SMALL LETTER O WITH ACUTE
+ ^\bo^\bo LATIN SMALL LETTER O WITH CIRCUMFLEX
+ ~\bo~\bo LATIN SMALL LETTER O WITH TILDE
+ "\bo"\bo LATIN SMALL LETTER O WITH DIAERESIS
+ -:--:--:- DIVISION SIGN
+ /\bo/\bo LATIN SMALL LETTER O WITH STROKE
+ `\bu`\bu LATIN SMALL LETTER U WITH GRAVE
+ '\bu'\bu LATIN SMALL LETTER U WITH ACUTE
+ ^\bu^\bu LATIN SMALL LETTER U WITH CIRCUMFLEX
+ "\bu"\bu LATIN SMALL LETTER U WITH DIAERESIS
+ '\by LATIN SMALL LETTER Y WITH ACUTE
+ "\by"\by LATIN SMALL LETTER Y WITH DIAERESIS
+ ENDTEST
+
+
+
+OpenBSD October 27, 2014 CHAR-UNICODE-LATIN1(1)
--- /dev/null
+BEGINTEST
+¢¢ CENT SIGN
+¤¤ CURRENCY SIGN
+¥¥ YEN SIGN
+¦¦ BROKEN BAR
+¨¨ DIAERESIS
+©© COPYRIGHT SIGN
+ª FEMININE ORDINAL INDICATOR
+«« LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+¬¬¬ NOT SIGN
+­ SOFT HYPHEN
+®® REGISTERED SIGN
+±±± PLUS-MINUS SIGN
+² SUPERSCRIPT TWO
+³ SUPERSCRIPT THREE
+´´´ ACUTE ACCENT
+µµ MICRO SIGN
+·· MIDDLE DOT
+¸¸ CEDILLA
+¹ SUPERSCRIPT ONE
+º MASCULINE ORDINAL INDICATOR
+»» RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+¼¼ VULGAR FRACTION ONE QUARTER
+½½ VULGAR FRACTION ONE HALF
+¾¾ VULGAR FRACTION THREE QUARTERS
+ÀÀ LATIN CAPITAL LETTER A WITH GRAVE
+ÁÁ LATIN CAPITAL LETTER A WITH ACUTE
+ÂÂ LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ÃÃ LATIN CAPITAL LETTER A WITH TILDE
+ÄÄ LATIN CAPITAL LETTER A WITH DIAERESIS
+ÅÅ LATIN CAPITAL LETTER A WITH RING ABOVE
+ÆÆ LATIN CAPITAL LETTER AE
+ÇÇ LATIN CAPITAL LETTER C WITH CEDILLA
+ÈÈ LATIN CAPITAL LETTER E WITH GRAVE
+ÉÉ LATIN CAPITAL LETTER E WITH ACUTE
+ÊÊ LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ËË LATIN CAPITAL LETTER E WITH DIAERESIS
+ÌÌ LATIN CAPITAL LETTER I WITH GRAVE
+ÍÍ LATIN CAPITAL LETTER I WITH ACUTE
+ÎÎ LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ÏÏ LATIN CAPITAL LETTER I WITH DIAERESIS
+ÐÐ LATIN CAPITAL LETTER ETH
+ÑÑ LATIN CAPITAL LETTER N WITH TILDE
+ÒÒ LATIN CAPITAL LETTER O WITH GRAVE
+ÓÓ LATIN CAPITAL LETTER O WITH ACUTE
+ÔÔ LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ÕÕ LATIN CAPITAL LETTER O WITH TILDE
+ÖÖ LATIN CAPITAL LETTER O WITH DIAERESIS
+××× MULTIPLICATION SIGN
+ØØ LATIN CAPITAL LETTER O WITH STROKE
+ÙÙ LATIN CAPITAL LETTER U WITH GRAVE
+ÚÚ LATIN CAPITAL LETTER U WITH ACUTE
+ÛÛ LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ÜÜ LATIN CAPITAL LETTER U WITH DIAERESIS
+Ý LATIN CAPITAL LETTER Y WITH ACUTE
+àà LATIN SMALL LETTER A WITH GRAVE
+áá LATIN SMALL LETTER A WITH ACUTE
+ââ LATIN SMALL LETTER A WITH CIRCUMFLEX
+ãã LATIN SMALL LETTER A WITH TILDE
+ää LATIN SMALL LETTER A WITH DIAERESIS
+åå LATIN SMALL LETTER A WITH RING ABOVE
+ææ LATIN SMALL LETTER AE
+çç LATIN SMALL LETTER C WITH CEDILLA
+èè LATIN SMALL LETTER E WITH GRAVE
+éé LATIN SMALL LETTER E WITH ACUTE
+êê LATIN SMALL LETTER E WITH CIRCUMFLEX
+ëë LATIN SMALL LETTER E WITH DIAERESIS
+ìì LATIN SMALL LETTER I WITH GRAVE
+íí LATIN SMALL LETTER I WITH ACUTE
+îî LATIN SMALL LETTER I WITH CIRCUMFLEX
+ïï LATIN SMALL LETTER I WITH DIAERESIS
+ññ LATIN SMALL LETTER N WITH TILDE
+òò LATIN SMALL LETTER O WITH GRAVE
+óó LATIN SMALL LETTER O WITH ACUTE
+ôô LATIN SMALL LETTER O WITH CIRCUMFLEX
+õõ LATIN SMALL LETTER O WITH TILDE
+öö LATIN SMALL LETTER O WITH DIAERESIS
+÷÷÷ DIVISION SIGN
+øø LATIN SMALL LETTER O WITH STROKE
+ùù LATIN SMALL LETTER U WITH GRAVE
+úú LATIN SMALL LETTER U WITH ACUTE
+ûû LATIN SMALL LETTER U WITH CIRCUMFLEX
+üü LATIN SMALL LETTER U WITH DIAERESIS
+ý LATIN SMALL LETTER Y WITH ACUTE
+ÿÿ LATIN SMALL LETTER Y WITH DIAERESIS
+ENDTEST
--- /dev/null
+CHAR-UNICODE-LATIN1(1) General Commands Manual CHAR-UNICODE-LATIN1(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-latin1 - Unicode characters in the ISO-8859-1 range
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ ¢¢ CENT SIGN
+ ¤¤ CURRENCY SIGN
+ ¥¥ YEN SIGN
+ ¦¦ BROKEN BAR
+ ¨¨ DIAERESIS
+ ©© COPYRIGHT SIGN
+ ª FEMININE ORDINAL INDICATOR
+ «« LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ ¬¬¬ NOT SIGN
+ SOFT HYPHEN
+ ®® REGISTERED SIGN
+ ±±± PLUS-MINUS SIGN
+ ² SUPERSCRIPT TWO
+ ³ SUPERSCRIPT THREE
+ ´´´ ACUTE ACCENT
+ µµ MICRO SIGN
+ ·· MIDDLE DOT
+ ¸¸ CEDILLA
+ ¹ SUPERSCRIPT ONE
+ º MASCULINE ORDINAL INDICATOR
+ »» RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ ¼¼ VULGAR FRACTION ONE QUARTER
+ ½½ VULGAR FRACTION ONE HALF
+ ¾¾ VULGAR FRACTION THREE QUARTERS
+ ÀÀ LATIN CAPITAL LETTER A WITH GRAVE
+ ÁÁ LATIN CAPITAL LETTER A WITH ACUTE
+ ÂÂ LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ ÃÃ LATIN CAPITAL LETTER A WITH TILDE
+ ÄÄ LATIN CAPITAL LETTER A WITH DIAERESIS
+ ÅÅ LATIN CAPITAL LETTER A WITH RING ABOVE
+ ÆÆ LATIN CAPITAL LETTER AE
+ ÇÇ LATIN CAPITAL LETTER C WITH CEDILLA
+ ÈÈ LATIN CAPITAL LETTER E WITH GRAVE
+ ÉÉ LATIN CAPITAL LETTER E WITH ACUTE
+ ÊÊ LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ ËË LATIN CAPITAL LETTER E WITH DIAERESIS
+ ÌÌ LATIN CAPITAL LETTER I WITH GRAVE
+ ÍÍ LATIN CAPITAL LETTER I WITH ACUTE
+ ÎÎ LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ ÏÏ LATIN CAPITAL LETTER I WITH DIAERESIS
+ ÐÐ LATIN CAPITAL LETTER ETH
+ ÑÑ LATIN CAPITAL LETTER N WITH TILDE
+ ÒÒ LATIN CAPITAL LETTER O WITH GRAVE
+ ÓÓ LATIN CAPITAL LETTER O WITH ACUTE
+ ÔÔ LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ ÕÕ LATIN CAPITAL LETTER O WITH TILDE
+ ÖÖ LATIN CAPITAL LETTER O WITH DIAERESIS
+ ××× MULTIPLICATION SIGN
+ ØØ LATIN CAPITAL LETTER O WITH STROKE
+ ÙÙ LATIN CAPITAL LETTER U WITH GRAVE
+ ÚÚ LATIN CAPITAL LETTER U WITH ACUTE
+ ÛÛ LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ ÜÜ LATIN CAPITAL LETTER U WITH DIAERESIS
+ Ý LATIN CAPITAL LETTER Y WITH ACUTE
+ àà LATIN SMALL LETTER A WITH GRAVE
+ áá LATIN SMALL LETTER A WITH ACUTE
+ ââ LATIN SMALL LETTER A WITH CIRCUMFLEX
+ ãã LATIN SMALL LETTER A WITH TILDE
+ ää LATIN SMALL LETTER A WITH DIAERESIS
+ åå LATIN SMALL LETTER A WITH RING ABOVE
+ ææ LATIN SMALL LETTER AE
+ çç LATIN SMALL LETTER C WITH CEDILLA
+ èè LATIN SMALL LETTER E WITH GRAVE
+ éé LATIN SMALL LETTER E WITH ACUTE
+ êê LATIN SMALL LETTER E WITH CIRCUMFLEX
+ ëë LATIN SMALL LETTER E WITH DIAERESIS
+ ìì LATIN SMALL LETTER I WITH GRAVE
+ íí LATIN SMALL LETTER I WITH ACUTE
+ îî LATIN SMALL LETTER I WITH CIRCUMFLEX
+ ïï LATIN SMALL LETTER I WITH DIAERESIS
+ ññ LATIN SMALL LETTER N WITH TILDE
+ òò LATIN SMALL LETTER O WITH GRAVE
+ óó LATIN SMALL LETTER O WITH ACUTE
+ ôô LATIN SMALL LETTER O WITH CIRCUMFLEX
+ õõ LATIN SMALL LETTER O WITH TILDE
+ öö LATIN SMALL LETTER O WITH DIAERESIS
+ ÷÷÷ DIVISION SIGN
+ øø LATIN SMALL LETTER O WITH STROKE
+ ùù LATIN SMALL LETTER U WITH GRAVE
+ úú LATIN SMALL LETTER U WITH ACUTE
+ ûû LATIN SMALL LETTER U WITH CIRCUMFLEX
+ üü LATIN SMALL LETTER U WITH DIAERESIS
+ ý LATIN SMALL LETTER Y WITH ACUTE
+ ÿÿ LATIN SMALL LETTER Y WITH DIAERESIS
+ ENDTEST
+
+
+
+OpenBSD October 27, 2014 CHAR-UNICODE-LATIN1(1)
--- /dev/null
+.TH CHAR-UNICODE-LATIN1DIFF 1 "October 27, 2014" OpenBSD
+.SH NAME
+char-unicode-latin1diff \- Unicode characters in the ISO-8859-1 range
+.SH DESCRIPTION
+.nf
+BEGINTEST
+\[u00A1]\(r! INVERTED EXCLAMATION MARK
+\[u00A3]\(Po POUND SIGN
+\[u00A7]\(sc SECTION SIGN
+\[u00AF]\(a- MACRON
+\[u00B0]\(de DEGREE SIGN
+\[u00B6]\(ps PILCROW SIGN
+\[u00BF]\(r? INVERTED QUESTION MARK
+\[u00DE]\(TP LATIN CAPITAL LETTER THORN
+\[u00DF]\(ss LATIN SMALL LETTER SHARP S
+\[u00F0]\(Sd LATIN SMALL LETTER ETH
+\[u00FE]\(Tp LATIN SMALL LETTER THORN
+ENDTEST
+.fi
--- /dev/null
+CHAR-UNICODE-LATIN1DIFF(1) General Commands Manual CHAR-UNICODE-LATIN1DIFF(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-latin1diff - Unicode characters in the ISO-8859-1 range
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ !! INVERTED EXCLAMATION MARK
+ GBPGBP POUND SIGN
+ <sec><sec> SECTION SIGN
+ -- MACRON
+ <deg><deg> DEGREE SIGN
+ <par><par> PILCROW SIGN
+ ?? INVERTED QUESTION MARK
+ ThTh LATIN CAPITAL LETTER THORN
+ ssss LATIN SMALL LETTER SHARP S
+ dd LATIN SMALL LETTER ETH
+ thth LATIN SMALL LETTER THORN
+ ENDTEST
+
+
+
+OpenBSD October 27, 2014 CHAR-UNICODE-LATIN1DIFF(1)
--- /dev/null
+BEGINTEST
+¡¡ INVERTED EXCLAMATION MARK
+££ POUND SIGN
+§§ SECTION SIGN
+¯¯ MACRON
+°° DEGREE SIGN
+¶¶ PILCROW SIGN
+¿¿ INVERTED QUESTION MARK
+ÞÞ LATIN CAPITAL LETTER THORN
+ßß LATIN SMALL LETTER SHARP S
+ðð LATIN SMALL LETTER ETH
+þþ LATIN SMALL LETTER THORN
+ENDTEST
--- /dev/null
+CHAR-UNICODE-LATIN1DIFF(1) General Commands Manual CHAR-UNICODE-LATIN1DIFF(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-latin1diff - Unicode characters in the ISO-8859-1 range
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ ¡¡ INVERTED EXCLAMATION MARK
+ ££ POUND SIGN
+ §§ SECTION SIGN
+ ¯¯ MACRON
+ °° DEGREE SIGN
+ ¶¶ PILCROW SIGN
+ ¿¿ INVERTED QUESTION MARK
+ ÞÞ LATIN CAPITAL LETTER THORN
+ ßß LATIN SMALL LETTER SHARP S
+ ðð LATIN SMALL LETTER ETH
+ þþ LATIN SMALL LETTER THORN
+ ENDTEST
+
+
+
+OpenBSD October 27, 2014 CHAR-UNICODE-LATIN1DIFF(1)
--- /dev/null
+.TH CHAR-UNICODE-MAN 1 "October 13, 2014" OpenBSD
+.SH NAME
+char-unicode-mdoc \- unicode characters in man code
+.SH DESCRIPTION
+Copyright symbol: \[u00A9] = \C'u00A9'
+.PP
+m-dash: \[u2014] = \C'u2014'
+.PP
+nabla: \[u1D6C1] = \C'u1D6C1'
+.PP
+not really Unicode:
+up arrows: \(ua\(uA = \[ua]\[uA] = \C'ua'\C'uA'
--- /dev/null
+CHAR-UNICODE-MAN(1) General Commands Manual CHAR-UNICODE-MAN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-mdoc - unicode characters in man code
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Copyright symbol: © = ©
+
+ m-dash: — = —
+
+ nabla: 𝛁 = 𝛁
+
+ not really Unicode: up arrows: ↑⇑ = ↑⇑ = ↑⇑
+
+
+
+OpenBSD October 13, 2014 CHAR-UNICODE-MAN(1)
--- /dev/null
+.Dd October 13, 2014
+.Dt CHAR-UNICODE-MDOC 1
+.Os OpenBSD
+.Sh NAME
+.Nm char-unicode-mdoc
+.Nd unicode characters in mdoc code
+.Sh DESCRIPTION
+Copyright symbol: \[u00A9] = \C'u00A9'
+.Pp
+m-dash: \[u2014] = \C'u2014'
+.Pp
+nabla: \[u1D6C1] = \C'u1D6C1'
+.Pp
+not really Unicode:
+up arrows: \(ua\(uA = \[ua]\[uA] = \C'ua'\C'uA'
--- /dev/null
+CHAR-UNICODE-MDOC(1) General Commands Manual CHAR-UNICODE-MDOC(1)
+
+N\bNA\bAM\bME\bE
+ c\bch\bha\bar\br-\b-u\bun\bni\bic\bco\bod\bde\be-\b-m\bmd\bdo\boc\bc – unicode characters in mdoc code
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Copyright symbol: © = ©
+
+ m-dash: — = —
+
+ nabla: 𝛁 = 𝛁
+
+ not really Unicode: up arrows: ↑⇑ = ↑⇑ = ↑⇑
+
+OpenBSD October 13, 2014 OpenBSD
--- /dev/null
+.TH CHAR-UNICODE-NAMED 1 "October 27, 2014" OpenBSD
+.SH NAME
+char-unicode-named \- Unicode characters having named escapes
+.SH DESCRIPTION
+.nf
+BEGINTEST
+\[u0131]\(.i LATIN SMALL LETTER DOTLESS I
+\[u0132]\(IJ LATIN CAPITAL LIGATURE IJ
+\[u0133]\(ij LATIN SMALL LIGATURE IJ
+\[u0141]\(/L LATIN CAPITAL LETTER L WITH STROKE
+\[u0142]\(/l LATIN SMALL LETTER L WITH STROKE
+\[u0152]\(OE LATIN CAPITAL LIGATURE OE
+\[u0153]\(oe LATIN SMALL LIGATURE OE
+\[u0192]\(Fn LATIN SMALL LETTER F WITH HOOK
+\[u02C7]\(ah CARON
+\[u02D8]\(ab BREVE
+\[u02DA]\(ao RING ABOVE
+\[u02DB]\(ho OGONEK
+\[u02DD]\(a" DOUBLE ACUTE ACCENT
+\[u0391]\(*A GREEK CAPITAL LETTER ALPHA
+\[u0392]\(*B GREEK CAPITAL LETTER BETA
+\[u0394]\(*D GREEK CAPITAL LETTER DELTA
+\[u0395]\(*E GREEK CAPITAL LETTER EPSILON
+\[u0396]\(*Z GREEK CAPITAL LETTER ZETA
+\[u0397]\(*Y GREEK CAPITAL LETTER ETA
+\[u0398]\(*H GREEK CAPITAL LETTER THETA
+\[u0399]\(*I GREEK CAPITAL LETTER IOTA
+\[u039A]\(*K GREEK CAPITAL LETTER KAPPA
+\[u039B]\(*L GREEK CAPITAL LETTER LAMDA
+\[u039C]\(*M GREEK CAPITAL LETTER MU
+\[u039D]\(*N GREEK CAPITAL LETTER NU
+\[u039E]\(*C GREEK CAPITAL LETTER XI
+\[u039F]\(*O GREEK CAPITAL LETTER OMICRON
+\[u03A0]\(*P GREEK CAPITAL LETTER PI
+\[u03A1]\(*R GREEK CAPITAL LETTER RHO
+\[u03A4]\(*T GREEK CAPITAL LETTER TAU
+\[u03A5]\(*U GREEK CAPITAL LETTER UPSILON
+\[u03A6]\(*F GREEK CAPITAL LETTER PHI
+\[u03A7]\(*X GREEK CAPITAL LETTER CHI
+\[u03A8]\(*Q GREEK CAPITAL LETTER PSI
+\[u03A9]\(*W GREEK CAPITAL LETTER OMEGA
+\[u03B1]\(*a GREEK SMALL LETTER ALPHA
+\[u03B2]\(*b GREEK SMALL LETTER BETA
+\[u03B3]\(*g GREEK SMALL LETTER GAMMA
+\[u03B4]\(*d GREEK SMALL LETTER DELTA
+\[u03B5]\(*e GREEK SMALL LETTER EPSILON
+\[u03B6]\(*z GREEK SMALL LETTER ZETA
+\[u03B7]\(*y GREEK SMALL LETTER ETA
+\[u03B8]\(*h GREEK SMALL LETTER THETA
+\[u03B9]\(*i GREEK SMALL LETTER IOTA
+\[u03BA]\(*k GREEK SMALL LETTER KAPPA
+\[u03BB]\(*l GREEK SMALL LETTER LAMDA
+\[u03BC]\(*m GREEK SMALL LETTER MU
+\[u03BD]\(*n GREEK SMALL LETTER NU
+\[u03BE]\(*c GREEK SMALL LETTER XI
+\[u03BF]\(*o GREEK SMALL LETTER OMICRON
+\[u03C0]\(*p GREEK SMALL LETTER PI
+\[u03C1]\(*r GREEK SMALL LETTER RHO
+\[u03C2]\(ts GREEK SMALL LETTER FINAL SIGMA
+\[u03C3]\(*s GREEK SMALL LETTER SIGMA
+\[u03C4]\(*t GREEK SMALL LETTER TAU
+\[u03C5]\(*u GREEK SMALL LETTER UPSILON
+\[u03C6]\(+f GREEK SMALL LETTER PHI
+\[u03C7]\(*x GREEK SMALL LETTER CHI
+\[u03C8]\(*q GREEK SMALL LETTER PSI
+\[u03C9]\(*w GREEK SMALL LETTER OMEGA
+\[u03D1]\(+h GREEK THETA SYMBOL
+\[u03D5]\(*f GREEK PHI SYMBOL
+\[u03D6]\(+p GREEK PI SYMBOL
+\[u03F5]\(+e GREEK LUNATE EPSILON SYMBOL
+\[u2010]\(hy HYPHEN
+\[u2013]\(en EN DASH
+\[u2014]\(em EM DASH
+\[u2018]\(oq LEFT SINGLE QUOTATION MARK
+\[u2019]\(cq RIGHT SINGLE QUOTATION MARK
+\[u201A]\(bq SINGLE LOW-9 QUOTATION MARK
+\[u201C]\(lq LEFT DOUBLE QUOTATION MARK
+\[u201D]\(rq RIGHT DOUBLE QUOTATION MARK
+\[u201E]\(Bq DOUBLE LOW-9 QUOTATION MARK
+\[u2020]\(dg DAGGER
+\[u2021]\(dd DOUBLE DAGGER
+\[u2022]\(bu BULLET
+\[u2030]\(%0 PER MILLE SIGN
+\[u2032]\(fm PRIME
+\[u2033]\(sd DOUBLE PRIME
+\[u2039]\(fo SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+\[u203A]\(fc SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+\[u2044]\(f/ FRACTION SLASH
+\[u20AC]\(Eu\(eu EURO SIGN
+\[u2111]\(Im BLACK-LETTER CAPITAL I
+\[u211C]\(Re BLACK-LETTER CAPITAL R
+\[u2122]\(tm TRADE MARK SIGN
+\[u2135]\(Ah ALEF SYMBOL
+\[u2190]\(<- LEFTWARDS ARROW
+\[u2191]\(ua UPWARDS ARROW
+\[u2192]\(-> RIGHTWARDS ARROW
+\[u2193]\(da DOWNWARDS ARROW
+\[u2194]\(<> LEFT RIGHT ARROW
+\[u21B5]\(CR DOWNWARDS ARROW WITH CORNER LEFTWARDS
+\[u21D0]\(lA LEFTWARDS DOUBLE ARROW
+\[u21D1]\(uA UPWARDS DOUBLE ARROW
+\[u21D2]\(rA RIGHTWARDS DOUBLE ARROW
+\[u21D3]\(dA DOWNWARDS DOUBLE ARROW
+\[u21D4]\(hA LEFT RIGHT DOUBLE ARROW
+\[u2200]\(fa FOR ALL
+\[u2202]\(pd PARTIAL DIFFERENTIAL
+\[u2203]\(te THERE EXISTS
+\[u2205]\(es EMPTY SET
+\[u2208]\(mo ELEMENT OF
+\[u220B]\(st CONTAINS AS MEMBER
+\[u2212]\(mi MINUS SIGN
+\[u2213]\(-+ MINUS-OR-PLUS SIGN
+\[u2217]\(** ASTERISK OPERATOR
+\[u221A]\(sr SQUARE ROOT
+\[u221D]\(pt PROPORTIONAL TO
+\[u221E]\(if INFINITY
+\[u2220]\(/_ ANGLE
+\[u2227]\(AN LOGICAL AND
+\[u2228]\(OR LOGICAL OR
+\[u2229]\(ca INTERSECTION
+\[u222A]\(cu UNION
+\[u222B]\(is INTEGRAL
+\[u2234]\(tf\(3d THEREFORE
+\[u223C]\(ap TILDE OPERATOR
+\[u2243]\(|= ASYMPTOTICALLY EQUAL TO
+\[u2245]\(=~ APPROXIMATELY EQUAL TO
+\[u2248]\(~~\(~= ALMOST EQUAL TO
+\[u2260]\(!= NOT EQUAL TO
+\[u2261]\(== IDENTICAL TO
+\[u2262]\(ne NOT IDENTICAL TO
+\[u2264]\(<= LESS-THAN OR EQUAL TO
+\[u2265]\(>= GREATER-THAN OR EQUAL TO
+\[u2282]\(sb SUBSET OF
+\[u2283]\(sp SUPERSET OF
+\[u2286]\(ib SUBSET OF OR EQUAL TO
+\[u2287]\(ip SUPERSET OF OR EQUAL TO
+\[u2295]\(c+ CIRCLED PLUS
+\[u2297]\(c* CIRCLED TIMES
+\[u22A5]\(pp UP TACK
+\[u22C5]\(md DOT OPERATOR
+\[u2308]\(lc LEFT CEILING
+\[u2309]\(rc RIGHT CEILING
+\[u230A]\(lf LEFT FLOOR
+\[u230B]\(rf RIGHT FLOOR
+\[u23AA]\(bv CURLY BRACKET EXTENSION
+\[u2502]\(br BOX DRAWINGS LIGHT VERTICAL
+\[u25A1]\(sq WHITE SQUARE
+\[u25CA]\(lz LOZENGE
+\[u25CB]\(ci WHITE CIRCLE
+\[u261C]\(lh WHITE LEFT POINTING INDEX
+\[u261E]\(rh WHITE RIGHT POINTING INDEX
+\[u27E8]\(la MATHEMATICAL LEFT ANGLE BRACKET
+\[u27E9]\(ra MATHEMATICAL RIGHT ANGLE BRACKET
+ENDTEST
+.fi
--- /dev/null
+CHAR-UNICODE-NAMED(1) General Commands Manual CHAR-UNICODE-NAMED(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-named - Unicode characters having named escapes
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ ii LATIN SMALL LETTER DOTLESS I
+ IJIJ LATIN CAPITAL LIGATURE IJ
+ ijij LATIN SMALL LIGATURE IJ
+ /\bL/\bL LATIN CAPITAL LETTER L WITH STROKE
+ /\bl/\bl LATIN SMALL LETTER L WITH STROKE
+ OEOE LATIN CAPITAL LIGATURE OE
+ oeoe LATIN SMALL LIGATURE OE
+ ,\bf,\bf LATIN SMALL LETTER F WITH HOOK
+ vv CARON
+ '\b`'\b` BREVE
+ oo RING ABOVE
+ ,, OGONEK
+ "" DOUBLE ACUTE ACCENT
+ AA GREEK CAPITAL LETTER ALPHA
+ BB GREEK CAPITAL LETTER BETA
+ _\b/_\b\_\b/_\b\ GREEK CAPITAL LETTER DELTA
+ EE GREEK CAPITAL LETTER EPSILON
+ ZZ GREEK CAPITAL LETTER ZETA
+ HH GREEK CAPITAL LETTER ETA
+ -\bO-\bO GREEK CAPITAL LETTER THETA
+ II GREEK CAPITAL LETTER IOTA
+ KK GREEK CAPITAL LETTER KAPPA
+ /\/\ GREEK CAPITAL LETTER LAMDA
+ MM GREEK CAPITAL LETTER MU
+ NN GREEK CAPITAL LETTER NU
+ _\bH_\bH GREEK CAPITAL LETTER XI
+ OO GREEK CAPITAL LETTER OMICRON
+ TTTT GREEK CAPITAL LETTER PI
+ PP GREEK CAPITAL LETTER RHO
+ TT GREEK CAPITAL LETTER TAU
+ YY GREEK CAPITAL LETTER UPSILON
+ I\bOI\bO GREEK CAPITAL LETTER PHI
+ XX GREEK CAPITAL LETTER CHI
+ I\bYI\bY GREEK CAPITAL LETTER PSI
+ _\bO_\bO GREEK CAPITAL LETTER OMEGA
+ aa GREEK SMALL LETTER ALPHA
+ BB GREEK SMALL LETTER BETA
+ yy GREEK SMALL LETTER GAMMA
+ dd GREEK SMALL LETTER DELTA
+ ee GREEK SMALL LETTER EPSILON
+ ,\bC,\bC GREEK SMALL LETTER ZETA
+ nn GREEK SMALL LETTER ETA
+ -\b0-\b0 GREEK SMALL LETTER THETA
+ ii GREEK SMALL LETTER IOTA
+ kk GREEK SMALL LETTER KAPPA
+ >\b\>\b\ GREEK SMALL LETTER LAMDA
+ ,\bu,\bu GREEK SMALL LETTER MU
+ vv GREEK SMALL LETTER NU
+ ,\bE,\bE GREEK SMALL LETTER XI
+ oo GREEK SMALL LETTER OMICRON
+ -\bn-\bn GREEK SMALL LETTER PI
+ pp GREEK SMALL LETTER RHO
+ ss GREEK SMALL LETTER FINAL SIGMA
+ -\bo-\bo GREEK SMALL LETTER SIGMA
+ ~\bt~\bt GREEK SMALL LETTER TAU
+ uu GREEK SMALL LETTER UPSILON
+ |\bo|\bo GREEK SMALL LETTER PHI
+ xx GREEK SMALL LETTER CHI
+ |\bu|\bu GREEK SMALL LETTER PSI
+ ww GREEK SMALL LETTER OMEGA
+ -\b0-\b0 GREEK THETA SYMBOL
+ |\bo|\bo GREEK PHI SYMBOL
+ -\bw-\bw GREEK PI SYMBOL
+ ee GREEK LUNATE EPSILON SYMBOL
+ -- HYPHEN
+ -- EN DASH
+ ---- EM DASH
+ `` LEFT SINGLE QUOTATION MARK
+ '' RIGHT SINGLE QUOTATION MARK
+ ,, SINGLE LOW-9 QUOTATION MARK
+ "" LEFT DOUBLE QUOTATION MARK
+ "" RIGHT DOUBLE QUOTATION MARK
+ ,,,, DOUBLE LOW-9 QUOTATION MARK
+ |\b-|\b- DAGGER
+ |\b=|\b= DOUBLE DAGGER
+ +\bo+\bo BULLET
+ %o%o PER MILLE SIGN
+ '' PRIME
+ '''' DOUBLE PRIME
+ << SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ >> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ // FRACTION SLASH
+ EUREUREUR EURO SIGN
+ II BLACK-LETTER CAPITAL I
+ RR BLACK-LETTER CAPITAL R
+ tmtm TRADE MARK SIGN
+ NN ALEF SYMBOL
+ <-<- LEFTWARDS ARROW
+ |\b^|\b^ UPWARDS ARROW
+ ->-> RIGHTWARDS ARROW
+ |\bv|\bv DOWNWARDS ARROW
+ <-><-> LEFT RIGHT ARROW
+ _|_| DOWNWARDS ARROW WITH CORNER LEFTWARDS
+ <=<= LEFTWARDS DOUBLE ARROW
+ =\b^=\b^ UPWARDS DOUBLE ARROW
+ =>=> RIGHTWARDS DOUBLE ARROW
+ =\bv=\bv DOWNWARDS DOUBLE ARROW
+ <=><=> LEFT RIGHT DOUBLE ARROW
+ -\bV-\bV FOR ALL
+ aa PARTIAL DIFFERENTIAL
+ 33 THERE EXISTS
+ {}{} EMPTY SET
+ EE ELEMENT OF
+ -)-) CONTAINS AS MEMBER
+ -- MINUS SIGN
+ -+-+ MINUS-OR-PLUS SIGN
+ ** ASTERISK OPERATOR
+ \/\/ SQUARE ROOT
+ ococ PROPORTIONAL TO
+ oooo INFINITY
+ _\b/_\b/ ANGLE
+ ^^ LOGICAL AND
+ vv LOGICAL OR
+ (^)(^) INTERSECTION
+ UU UNION
+ '\b,\bI'\b,\bI INTEGRAL
+ .:..:..:. THEREFORE
+ ~~ TILDE OPERATOR
+ -~-~ ASYMPTOTICALLY EQUAL TO
+ =~=~ APPROXIMATELY EQUAL TO
+ ~~~~~= ALMOST EQUAL TO
+ !=!= NOT EQUAL TO
+ ==== IDENTICAL TO
+ !==!== NOT IDENTICAL TO
+ <=<= LESS-THAN OR EQUAL TO
+ >=>= GREATER-THAN OR EQUAL TO
+ (=(= SUBSET OF
+ =)=) SUPERSET OF
+ (=\b_(=\b_ SUBSET OF OR EQUAL TO
+ =\b_)=\b_) SUPERSET OF OR EQUAL TO
+ O\b+O\b+ CIRCLED PLUS
+ O\bxO\bx CIRCLED TIMES
+ _\b|_\b| UP TACK
+ .. DOT OPERATOR
+ |~|~ LEFT CEILING
+ ~|~| RIGHT CEILING
+ |_|_ LEFT FLOOR
+ _|_| RIGHT FLOOR
+ || CURLY BRACKET EXTENSION
+ || BOX DRAWINGS LIGHT VERTICAL
+ [][] WHITE SQUARE
+ <><> LOZENGE
+ OO WHITE CIRCLE
+ <=<= WHITE LEFT POINTING INDEX
+ =>=> WHITE RIGHT POINTING INDEX
+ << MATHEMATICAL LEFT ANGLE BRACKET
+ >> MATHEMATICAL RIGHT ANGLE BRACKET
+ ENDTEST
+
+
+
+OpenBSD October 27, 2014 CHAR-UNICODE-NAMED(1)
--- /dev/null
+BEGINTEST
+ıı LATIN SMALL LETTER DOTLESS I
+IJIJ LATIN CAPITAL LIGATURE IJ
+ijij LATIN SMALL LIGATURE IJ
+ŁŁ LATIN CAPITAL LETTER L WITH STROKE
+łł LATIN SMALL LETTER L WITH STROKE
+ŒŒ LATIN CAPITAL LIGATURE OE
+œœ LATIN SMALL LIGATURE OE
+ƒƒ LATIN SMALL LETTER F WITH HOOK
+ˇˇ CARON
+˘˘ BREVE
+˚˚ RING ABOVE
+˛˛ OGONEK
+˝˝ DOUBLE ACUTE ACCENT
+ΑΑ GREEK CAPITAL LETTER ALPHA
+ΒΒ GREEK CAPITAL LETTER BETA
+ΔΔ GREEK CAPITAL LETTER DELTA
+ΕΕ GREEK CAPITAL LETTER EPSILON
+ΖΖ GREEK CAPITAL LETTER ZETA
+ΗΗ GREEK CAPITAL LETTER ETA
+ΘΘ GREEK CAPITAL LETTER THETA
+ΙΙ GREEK CAPITAL LETTER IOTA
+ΚΚ GREEK CAPITAL LETTER KAPPA
+ΛΛ GREEK CAPITAL LETTER LAMDA
+ΜΜ GREEK CAPITAL LETTER MU
+ΝΝ GREEK CAPITAL LETTER NU
+ΞΞ GREEK CAPITAL LETTER XI
+ΟΟ GREEK CAPITAL LETTER OMICRON
+ΠΠ GREEK CAPITAL LETTER PI
+ΡΡ GREEK CAPITAL LETTER RHO
+ΤΤ GREEK CAPITAL LETTER TAU
+ΥΥ GREEK CAPITAL LETTER UPSILON
+ΦΦ GREEK CAPITAL LETTER PHI
+ΧΧ GREEK CAPITAL LETTER CHI
+ΨΨ GREEK CAPITAL LETTER PSI
+ΩΩ GREEK CAPITAL LETTER OMEGA
+αα GREEK SMALL LETTER ALPHA
+ββ GREEK SMALL LETTER BETA
+γγ GREEK SMALL LETTER GAMMA
+δδ GREEK SMALL LETTER DELTA
+εε GREEK SMALL LETTER EPSILON
+ζζ GREEK SMALL LETTER ZETA
+ηη GREEK SMALL LETTER ETA
+θθ GREEK SMALL LETTER THETA
+ιι GREEK SMALL LETTER IOTA
+κκ GREEK SMALL LETTER KAPPA
+λλ GREEK SMALL LETTER LAMDA
+μμ GREEK SMALL LETTER MU
+νν GREEK SMALL LETTER NU
+ξξ GREEK SMALL LETTER XI
+οο GREEK SMALL LETTER OMICRON
+ππ GREEK SMALL LETTER PI
+ρρ GREEK SMALL LETTER RHO
+ςς GREEK SMALL LETTER FINAL SIGMA
+σσ GREEK SMALL LETTER SIGMA
+ττ GREEK SMALL LETTER TAU
+υυ GREEK SMALL LETTER UPSILON
+φφ GREEK SMALL LETTER PHI
+χχ GREEK SMALL LETTER CHI
+ψψ GREEK SMALL LETTER PSI
+ωω GREEK SMALL LETTER OMEGA
+ϑϑ GREEK THETA SYMBOL
+ϕϕ GREEK PHI SYMBOL
+ϖϖ GREEK PI SYMBOL
+ϵϵ GREEK LUNATE EPSILON SYMBOL
+‐‐ HYPHEN
+–– EN DASH
+—— EM DASH
+‘‘ LEFT SINGLE QUOTATION MARK
+’’ RIGHT SINGLE QUOTATION MARK
+‚‚ SINGLE LOW-9 QUOTATION MARK
+““ LEFT DOUBLE QUOTATION MARK
+”” RIGHT DOUBLE QUOTATION MARK
+„„ DOUBLE LOW-9 QUOTATION MARK
+†† DAGGER
+‡‡ DOUBLE DAGGER
+•• BULLET
+‰‰ PER MILLE SIGN
+′′ PRIME
+″″ DOUBLE PRIME
+‹‹ SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+›› SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+⁄⁄ FRACTION SLASH
+€€€ EURO SIGN
+ℑℑ BLACK-LETTER CAPITAL I
+ℜℜ BLACK-LETTER CAPITAL R
+™™ TRADE MARK SIGN
+ℵℵ ALEF SYMBOL
+←← LEFTWARDS ARROW
+↑↑ UPWARDS ARROW
+→→ RIGHTWARDS ARROW
+↓↓ DOWNWARDS ARROW
+↔↔ LEFT RIGHT ARROW
+↵↵ DOWNWARDS ARROW WITH CORNER LEFTWARDS
+⇐⇐ LEFTWARDS DOUBLE ARROW
+⇑⇑ UPWARDS DOUBLE ARROW
+⇒⇒ RIGHTWARDS DOUBLE ARROW
+⇓⇓ DOWNWARDS DOUBLE ARROW
+⇔⇔ LEFT RIGHT DOUBLE ARROW
+∀∀ FOR ALL
+∂∂ PARTIAL DIFFERENTIAL
+∃∃ THERE EXISTS
+∅∅ EMPTY SET
+∈∈ ELEMENT OF
+∋∋ CONTAINS AS MEMBER
+−− MINUS SIGN
+∓∓ MINUS-OR-PLUS SIGN
+∗∗ ASTERISK OPERATOR
+√√ SQUARE ROOT
+∝∝ PROPORTIONAL TO
+∞∞ INFINITY
+∠∠ ANGLE
+∧∧ LOGICAL AND
+∨∨ LOGICAL OR
+∩∩ INTERSECTION
+∪∪ UNION
+∫∫ INTEGRAL
+∴∴∴ THEREFORE
+∼∼ TILDE OPERATOR
+≃≃ ASYMPTOTICALLY EQUAL TO
+≅≅ APPROXIMATELY EQUAL TO
+≈≈≈ ALMOST EQUAL TO
+≠≠ NOT EQUAL TO
+≡≡ IDENTICAL TO
+≢≢ NOT IDENTICAL TO
+≤≤ LESS-THAN OR EQUAL TO
+≥≥ GREATER-THAN OR EQUAL TO
+⊂⊂ SUBSET OF
+⊃⊃ SUPERSET OF
+⊆⊆ SUBSET OF OR EQUAL TO
+⊇⊇ SUPERSET OF OR EQUAL TO
+⊕⊕ CIRCLED PLUS
+⊗⊗ CIRCLED TIMES
+⊥⊥ UP TACK
+⋅⋅ DOT OPERATOR
+⌈⌈ LEFT CEILING
+⌉⌉ RIGHT CEILING
+⌊⌊ LEFT FLOOR
+⌋⌋ RIGHT FLOOR
+⎪⎪ CURLY BRACKET EXTENSION
+││ BOX DRAWINGS LIGHT VERTICAL
+□□ WHITE SQUARE
+◊◊ LOZENGE
+○○ WHITE CIRCLE
+☜☜ WHITE LEFT POINTING INDEX
+☞☞ WHITE RIGHT POINTING INDEX
+⟨⟨ MATHEMATICAL LEFT ANGLE BRACKET
+⟩⟩ MATHEMATICAL RIGHT ANGLE BRACKET
+ENDTEST
--- /dev/null
+CHAR-UNICODE-NAMED(1) General Commands Manual CHAR-UNICODE-NAMED(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-named - Unicode characters having named escapes
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ ıı LATIN SMALL LETTER DOTLESS I
+ IJIJ LATIN CAPITAL LIGATURE IJ
+ ijij LATIN SMALL LIGATURE IJ
+ ŁŁ LATIN CAPITAL LETTER L WITH STROKE
+ łł LATIN SMALL LETTER L WITH STROKE
+ ŒŒ LATIN CAPITAL LIGATURE OE
+ œœ LATIN SMALL LIGATURE OE
+ ƒƒ LATIN SMALL LETTER F WITH HOOK
+ ˇˇ CARON
+ ˘˘ BREVE
+ ˚˚ RING ABOVE
+ ˛˛ OGONEK
+ ˝˝ DOUBLE ACUTE ACCENT
+ ΑΑ GREEK CAPITAL LETTER ALPHA
+ ΒΒ GREEK CAPITAL LETTER BETA
+ ΔΔ GREEK CAPITAL LETTER DELTA
+ ΕΕ GREEK CAPITAL LETTER EPSILON
+ ΖΖ GREEK CAPITAL LETTER ZETA
+ ΗΗ GREEK CAPITAL LETTER ETA
+ ΘΘ GREEK CAPITAL LETTER THETA
+ ΙΙ GREEK CAPITAL LETTER IOTA
+ ΚΚ GREEK CAPITAL LETTER KAPPA
+ ΛΛ GREEK CAPITAL LETTER LAMDA
+ ΜΜ GREEK CAPITAL LETTER MU
+ ΝΝ GREEK CAPITAL LETTER NU
+ ΞΞ GREEK CAPITAL LETTER XI
+ ΟΟ GREEK CAPITAL LETTER OMICRON
+ ΠΠ GREEK CAPITAL LETTER PI
+ ΡΡ GREEK CAPITAL LETTER RHO
+ ΤΤ GREEK CAPITAL LETTER TAU
+ ΥΥ GREEK CAPITAL LETTER UPSILON
+ ΦΦ GREEK CAPITAL LETTER PHI
+ ΧΧ GREEK CAPITAL LETTER CHI
+ ΨΨ GREEK CAPITAL LETTER PSI
+ ΩΩ GREEK CAPITAL LETTER OMEGA
+ αα GREEK SMALL LETTER ALPHA
+ ββ GREEK SMALL LETTER BETA
+ γγ GREEK SMALL LETTER GAMMA
+ δδ GREEK SMALL LETTER DELTA
+ εε GREEK SMALL LETTER EPSILON
+ ζζ GREEK SMALL LETTER ZETA
+ ηη GREEK SMALL LETTER ETA
+ θθ GREEK SMALL LETTER THETA
+ ιι GREEK SMALL LETTER IOTA
+ κκ GREEK SMALL LETTER KAPPA
+ λλ GREEK SMALL LETTER LAMDA
+ μμ GREEK SMALL LETTER MU
+ νν GREEK SMALL LETTER NU
+ ξξ GREEK SMALL LETTER XI
+ οο GREEK SMALL LETTER OMICRON
+ ππ GREEK SMALL LETTER PI
+ ρρ GREEK SMALL LETTER RHO
+ ςς GREEK SMALL LETTER FINAL SIGMA
+ σσ GREEK SMALL LETTER SIGMA
+ ττ GREEK SMALL LETTER TAU
+ υυ GREEK SMALL LETTER UPSILON
+ φφ GREEK SMALL LETTER PHI
+ χχ GREEK SMALL LETTER CHI
+ ψψ GREEK SMALL LETTER PSI
+ ωω GREEK SMALL LETTER OMEGA
+ ϑϑ GREEK THETA SYMBOL
+ ϕϕ GREEK PHI SYMBOL
+ ϖϖ GREEK PI SYMBOL
+ ϵϵ GREEK LUNATE EPSILON SYMBOL
+ ‐‐ HYPHEN
+ –– EN DASH
+ —— EM DASH
+ ‘‘ LEFT SINGLE QUOTATION MARK
+ ’’ RIGHT SINGLE QUOTATION MARK
+ ‚‚ SINGLE LOW-9 QUOTATION MARK
+ ““ LEFT DOUBLE QUOTATION MARK
+ ”” RIGHT DOUBLE QUOTATION MARK
+ „„ DOUBLE LOW-9 QUOTATION MARK
+ †† DAGGER
+ ‡‡ DOUBLE DAGGER
+ •• BULLET
+ ‰‰ PER MILLE SIGN
+ ′′ PRIME
+ ″″ DOUBLE PRIME
+ ‹‹ SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ ›› SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ ⁄⁄ FRACTION SLASH
+ €€€ EURO SIGN
+ ℑℑ BLACK-LETTER CAPITAL I
+ ℜℜ BLACK-LETTER CAPITAL R
+ ™™ TRADE MARK SIGN
+ ℵℵ ALEF SYMBOL
+ ←← LEFTWARDS ARROW
+ ↑↑ UPWARDS ARROW
+ →→ RIGHTWARDS ARROW
+ ↓↓ DOWNWARDS ARROW
+ ↔↔ LEFT RIGHT ARROW
+ ↵↵ DOWNWARDS ARROW WITH CORNER LEFTWARDS
+ ⇐⇐ LEFTWARDS DOUBLE ARROW
+ ⇑⇑ UPWARDS DOUBLE ARROW
+ ⇒⇒ RIGHTWARDS DOUBLE ARROW
+ ⇓⇓ DOWNWARDS DOUBLE ARROW
+ ⇔⇔ LEFT RIGHT DOUBLE ARROW
+ ∀∀ FOR ALL
+ ∂∂ PARTIAL DIFFERENTIAL
+ ∃∃ THERE EXISTS
+ ∅∅ EMPTY SET
+ ∈∈ ELEMENT OF
+ ∋∋ CONTAINS AS MEMBER
+ −− MINUS SIGN
+ ∓∓ MINUS-OR-PLUS SIGN
+ ∗∗ ASTERISK OPERATOR
+ √√ SQUARE ROOT
+ ∝∝ PROPORTIONAL TO
+ ∞∞ INFINITY
+ ∠∠ ANGLE
+ ∧∧ LOGICAL AND
+ ∨∨ LOGICAL OR
+ ∩∩ INTERSECTION
+ ∪∪ UNION
+ ∫∫ INTEGRAL
+ ∴∴∴ THEREFORE
+ ∼∼ TILDE OPERATOR
+ ≃≃ ASYMPTOTICALLY EQUAL TO
+ ≅≅ APPROXIMATELY EQUAL TO
+ ≈≈≈ ALMOST EQUAL TO
+ ≠≠ NOT EQUAL TO
+ ≡≡ IDENTICAL TO
+ ≢≢ NOT IDENTICAL TO
+ ≤≤ LESS-THAN OR EQUAL TO
+ ≥≥ GREATER-THAN OR EQUAL TO
+ ⊂⊂ SUBSET OF
+ ⊃⊃ SUPERSET OF
+ ⊆⊆ SUBSET OF OR EQUAL TO
+ ⊇⊇ SUPERSET OF OR EQUAL TO
+ ⊕⊕ CIRCLED PLUS
+ ⊗⊗ CIRCLED TIMES
+ ⊥⊥ UP TACK
+ ⋅⋅ DOT OPERATOR
+ ⌈⌈ LEFT CEILING
+ ⌉⌉ RIGHT CEILING
+ ⌊⌊ LEFT FLOOR
+ ⌋⌋ RIGHT FLOOR
+ ⎪⎪ CURLY BRACKET EXTENSION
+ ││ BOX DRAWINGS LIGHT VERTICAL
+ □□ WHITE SQUARE
+ ◊◊ LOZENGE
+ ○○ WHITE CIRCLE
+ ☜☜ WHITE LEFT POINTING INDEX
+ ☞☞ WHITE RIGHT POINTING INDEX
+ ⟨⟨ MATHEMATICAL LEFT ANGLE BRACKET
+ ⟩⟩ MATHEMATICAL RIGHT ANGLE BRACKET
+ ENDTEST
+
+
+
+OpenBSD October 27, 2014 CHAR-UNICODE-NAMED(1)
--- /dev/null
+.TH CHAR-UNICODE-NAMEDIFF 1 "October 27, 2014" OpenBSD
+.SH NAME
+char-unicode-namediff \- Unicode characters having named escapes
+.SH DESCRIPTION
+.nf
+BEGINTEST
+\[u0237]\(.j LATIN SMALL LETTER DOTLESS J
+\[u02D9]\(a. DOT ABOVE
+\[u0393]\(*G GREEK CAPITAL LETTER GAMMA
+\[u03A3]\(*S GREEK CAPITAL LETTER SIGMA
+\[u203E]\(rn OVERLINE
+\[u210F]\(-h PLANCK CONSTANT OVER TWO PI
+\[u2195]\(va UP DOWN ARROW
+\[u21D5]\(vA UP DOWN DOUBLE ARROW
+\[u2207]\(gr NABLA
+\[u2209]\(nm NOT AN ELEMENT OF
+\[u220F]\[product] N-ARY PRODUCT
+\[u2210]\[coproduct] N-ARY COPRODUCT
+\[u2211]\[sum] N-ARY SUMMATION
+\[u2284]\(nb NOT A SUBSET OF
+\[u2285]\(nc NOT A SUPERSET OF
+\[u239B]\[parenlefttp] LEFT PARENTHESIS UPPER HOOK
+\[u239C]\[parenleftex] LEFT PARENTHESIS EXTENSION
+\[u239D]\[parenleftbt] LEFT PARENTHESIS LOWER HOOK
+\[u239E]\[parenrighttp] RIGHT PARENTHESIS UPPER HOOK
+\[u239F]\[parenrightex] RIGHT PARENTHESIS EXTENSION
+\[u23A0]\[parenrightbt] RIGHT PARENTHESIS LOWER HOOK
+\[u23A1]\[bracketlefttp] LEFT SQUARE BRACKET UPPER CORNER
+\[u23A2]\[bracketleftex] LEFT SQUARE BRACKET EXTENSION
+\[u23A3]\[bracketleftbt] LEFT SQUARE BRACKET LOWER CORNER
+\[u23A4]\[bracketrighttp] RIGHT SQUARE BRACKET UPPER CORNER
+\[u23A5]\[bracketrightex] RIGHT SQUARE BRACKET EXTENSION
+\[u23A6]\[bracketrightbt] RIGHT SQUARE BRACKET LOWER CORNER
+\[u23A7]\[bracelefttp] LEFT CURLY BRACKET UPPER HOOK
+\[u23A8]\[braceleftmid] LEFT CURLY BRACKET MIDDLE PIECE
+\[u23A9]\[braceleftbt] LEFT CURLY BRACKET LOWER HOOK
+\[u23AA]\[braceex]\[braceleftex]\[bracerightex] CURLY BRACKET EXTENSION
+\[u23AB]\[bracerighttp] RIGHT CURLY BRACKET UPPER HOOK
+\[u23AC]\[bracerightmid] RIGHT CURLY BRACKET MIDDLE PIECE
+\[u23AD]\[bracerightbt] RIGHT CURLY BRACKET LOWER HOOK
+\[u2713]\(OK CHECK MARK
+ENDTEST
+.fi
--- /dev/null
+CHAR-UNICODE-NAMEDIFF(1) General Commands Manual CHAR-UNICODE-NAMEDIFF(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-namediff - Unicode characters having named escapes
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ jj LATIN SMALL LETTER DOTLESS J
+ .. DOT ABOVE
+ GG GREEK CAPITAL LETTER GAMMA
+ SS GREEK CAPITAL LETTER SIGMA
+ -- OVERLINE
+ /h/h PLANCK CONSTANT OVER TWO PI
+ ^v^v UP DOWN ARROW
+ ^=v^=v UP DOWN DOUBLE ARROW
+ VV NABLA
+ !E!E NOT AN ELEMENT OF
+ TTTT N-ARY PRODUCT
+ UU N-ARY COPRODUCT
+ EE N-ARY SUMMATION
+ (!=(!= NOT A SUBSET OF
+ !=)!=) NOT A SUPERSET OF
+ // LEFT PARENTHESIS UPPER HOOK
+ || LEFT PARENTHESIS EXTENSION
+ \\ LEFT PARENTHESIS LOWER HOOK
+ \\ RIGHT PARENTHESIS UPPER HOOK
+ || RIGHT PARENTHESIS EXTENSION
+ // RIGHT PARENTHESIS LOWER HOOK
+ || LEFT SQUARE BRACKET UPPER CORNER
+ || LEFT SQUARE BRACKET EXTENSION
+ || LEFT SQUARE BRACKET LOWER CORNER
+ || RIGHT SQUARE BRACKET UPPER CORNER
+ || RIGHT SQUARE BRACKET EXTENSION
+ || RIGHT SQUARE BRACKET LOWER CORNER
+ ,-,- LEFT CURLY BRACKET UPPER HOOK
+ {{ LEFT CURLY BRACKET MIDDLE PIECE
+ `-`- LEFT CURLY BRACKET LOWER HOOK
+ |||| CURLY BRACKET EXTENSION
+ -.-. RIGHT CURLY BRACKET UPPER HOOK
+ }} RIGHT CURLY BRACKET MIDDLE PIECE
+ -'-' RIGHT CURLY BRACKET LOWER HOOK
+ \/\/ CHECK MARK
+ ENDTEST
+
+
+
+OpenBSD October 27, 2014 CHAR-UNICODE-NAMEDIFF(1)
--- /dev/null
+BEGINTEST
+ȷȷ LATIN SMALL LETTER DOTLESS J
+˙˙ DOT ABOVE
+ΓΓ GREEK CAPITAL LETTER GAMMA
+ΣΣ GREEK CAPITAL LETTER SIGMA
+‾‾ OVERLINE
+ℏℏ PLANCK CONSTANT OVER TWO PI
+↕↕ UP DOWN ARROW
+⇕⇕ UP DOWN DOUBLE ARROW
+∇∇ NABLA
+∉∉ NOT AN ELEMENT OF
+∏∏ N-ARY PRODUCT
+∐∐ N-ARY COPRODUCT
+∑∑ N-ARY SUMMATION
+⊄⊄ NOT A SUBSET OF
+⊅⊅ NOT A SUPERSET OF
+⎛⎛ LEFT PARENTHESIS UPPER HOOK
+⎜⎜ LEFT PARENTHESIS EXTENSION
+⎝⎝ LEFT PARENTHESIS LOWER HOOK
+⎞⎞ RIGHT PARENTHESIS UPPER HOOK
+⎟⎟ RIGHT PARENTHESIS EXTENSION
+⎠⎠ RIGHT PARENTHESIS LOWER HOOK
+⎡⎡ LEFT SQUARE BRACKET UPPER CORNER
+⎢⎢ LEFT SQUARE BRACKET EXTENSION
+⎣⎣ LEFT SQUARE BRACKET LOWER CORNER
+⎤⎤ RIGHT SQUARE BRACKET UPPER CORNER
+⎥⎥ RIGHT SQUARE BRACKET EXTENSION
+⎦⎦ RIGHT SQUARE BRACKET LOWER CORNER
+⎧⎧ LEFT CURLY BRACKET UPPER HOOK
+⎨⎨ LEFT CURLY BRACKET MIDDLE PIECE
+⎩⎩ LEFT CURLY BRACKET LOWER HOOK
+⎪⎪⎪⎪ CURLY BRACKET EXTENSION
+⎫⎫ RIGHT CURLY BRACKET UPPER HOOK
+⎬⎬ RIGHT CURLY BRACKET MIDDLE PIECE
+⎭⎭ RIGHT CURLY BRACKET LOWER HOOK
+✓✓ CHECK MARK
+ENDTEST
--- /dev/null
+CHAR-UNICODE-NAMEDIFF(1) General Commands Manual CHAR-UNICODE-NAMEDIFF(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-namediff - Unicode characters having named escapes
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ ȷȷ LATIN SMALL LETTER DOTLESS J
+ ˙˙ DOT ABOVE
+ ΓΓ GREEK CAPITAL LETTER GAMMA
+ ΣΣ GREEK CAPITAL LETTER SIGMA
+ ‾‾ OVERLINE
+ ℏℏ PLANCK CONSTANT OVER TWO PI
+ ↕↕ UP DOWN ARROW
+ ⇕⇕ UP DOWN DOUBLE ARROW
+ ∇∇ NABLA
+ ∉∉ NOT AN ELEMENT OF
+ ∏∏ N-ARY PRODUCT
+ ∐∐ N-ARY COPRODUCT
+ ∑∑ N-ARY SUMMATION
+ ⊄⊄ NOT A SUBSET OF
+ ⊅⊅ NOT A SUPERSET OF
+ ⎛⎛ LEFT PARENTHESIS UPPER HOOK
+ ⎜⎜ LEFT PARENTHESIS EXTENSION
+ ⎝⎝ LEFT PARENTHESIS LOWER HOOK
+ ⎞⎞ RIGHT PARENTHESIS UPPER HOOK
+ ⎟⎟ RIGHT PARENTHESIS EXTENSION
+ ⎠⎠ RIGHT PARENTHESIS LOWER HOOK
+ ⎡⎡ LEFT SQUARE BRACKET UPPER CORNER
+ ⎢⎢ LEFT SQUARE BRACKET EXTENSION
+ ⎣⎣ LEFT SQUARE BRACKET LOWER CORNER
+ ⎤⎤ RIGHT SQUARE BRACKET UPPER CORNER
+ ⎥⎥ RIGHT SQUARE BRACKET EXTENSION
+ ⎦⎦ RIGHT SQUARE BRACKET LOWER CORNER
+ ⎧⎧ LEFT CURLY BRACKET UPPER HOOK
+ ⎨⎨ LEFT CURLY BRACKET MIDDLE PIECE
+ ⎩⎩ LEFT CURLY BRACKET LOWER HOOK
+ ⎪⎪⎪⎪ CURLY BRACKET EXTENSION
+ ⎫⎫ RIGHT CURLY BRACKET UPPER HOOK
+ ⎬⎬ RIGHT CURLY BRACKET MIDDLE PIECE
+ ⎭⎭ RIGHT CURLY BRACKET LOWER HOOK
+ ✓✓ CHECK MARK
+ ENDTEST
+
+
+
+OpenBSD October 27, 2014 CHAR-UNICODE-NAMEDIFF(1)
--- /dev/null
+.TH CHAR-UNICODE-NOGROFF 1 "October 28, 2014" OpenBSD
+.SH NAME
+char-unicode-nogroff \- characters handled differently by groff
+.SH DESCRIPTION
+.nf
+BEGINTEST
+\[u0000]\N'0' <control> NULL
+\[u0001]\N'1' <control> START OF HEADING
+\[u0007]\N'7' <control> BELL
+\[u0008]\N'8' <control> BACKSPACE
+\[u0009]\N'9' <control> CHARACTER TABULATION
+\[u000A]\N'10' <control> LINE FEED
+\[u000B]\N'11' <control> LINE TABULATION
+\[u000C]\N'12' <control> FORM FEED
+\[u000D]\N'13' <control> CARRIAGE RETURN
+\[u001B]\N'27' <control> ESCAPE
+\[u007F]\N'127' <control> DELETE
+\[u0080]\N'128' <control> 0x80
+\[u0081]\N'129' <control> 0x81
+\[u0082]\N'130' <control> BREAK PERMITTED HERE
+\[u0083]\N'131' <control> NO BREAK HERE
+\[u009E]\N'158' <control> PRIVACY MESSAGE
+\[u009F]\N'159' <control> APPLICATION PROGRAM COMMAND
+\[u226A]\(<< MUCH LESS-THAN
+\[u226B]\(>> MUCH GREATER-THAN
+\[uFB00]\(ff LATIN SMALL LIGATURE FF
+\[uFB01]\(fi LATIN SMALL LIGATURE FI
+\[uFB02]\(fl LATIN SMALL LIGATURE FL
+\[uFB03]\(Fi LATIN SMALL LIGATURE FFI
+\[uFB04]\(Fl LATIN SMALL LIGATURE FFL
+\[uFFFD] REPLACEMENT CHARACTER
+\[uFFFE] <undefined>
+\[uFFFF] <undefined>
+\[u10000] LINEAR B SYLLABLE B008 A
+\[uFFFFD] <Plane 15 Private Use, Last>
+\[uFFFFE] <undefined>
+\[uFFFFF] <undefined>
+\[u100000] <Plane 16 Private Use, First>
+\[u10FFFD] <Plane 16 Private Use, Last>
+\[u10FFFE] <undefined>
+\[u10FFFF] <undefined>
+ENDTEST
+.fi
--- /dev/null
+CHAR-UNICODE-NOGROFF(1) General Commands Manual CHAR-UNICODE-NOGROFF(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-nogroff - characters handled differently by groff
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ <NUL><NUL> <control> NULL
+ <SOH><SOH> <control> START OF HEADING
+ <BEL><BEL> <control> BELL
+ <BS><BS> <control> BACKSPACE
+ <control> CHARACTER TABULATION
+ <LF><LF> <control> LINE FEED
+ <VT><VT> <control> LINE TABULATION
+ <FF><FF> <control> FORM FEED
+ <CR><CR> <control> CARRIAGE RETURN
+ <ESC><ESC> <control> ESCAPE
+ <DEL><DEL> <control> DELETE
+ <80><80> <control> 0x80
+ <81><81> <control> 0x81
+ <82><82> <control> BREAK PERMITTED HERE
+ <83><83> <control> NO BREAK HERE
+ <9E><9E> <control> PRIVACY MESSAGE
+ <9F><9F> <control> APPLICATION PROGRAM COMMAND
+ <<<< MUCH LESS-THAN
+ >>>> MUCH GREATER-THAN
+ ffff LATIN SMALL LIGATURE FF
+ fifi LATIN SMALL LIGATURE FI
+ flfl LATIN SMALL LIGATURE FL
+ ffiffi LATIN SMALL LIGATURE FFI
+ fflffl LATIN SMALL LIGATURE FFL
+ <?> REPLACEMENT CHARACTER
+ <?> <undefined>
+ <?> <undefined>
+ <?> LINEAR B SYLLABLE B008 A
+ <?> <Plane 15 Private Use, Last>
+ <?> <undefined>
+ <?> <undefined>
+ <?> <Plane 16 Private Use, First>
+ <?> <Plane 16 Private Use, Last>
+ <?> <undefined>
+ <?> <undefined>
+ ENDTEST
+
+
+
+OpenBSD October 28, 2014 CHAR-UNICODE-NOGROFF(1)
--- /dev/null
+BEGINTEST
+�� <control> NULL
+�� <control> START OF HEADING
+�� <control> BELL
+�� <control> BACKSPACE
+ <control> CHARACTER TABULATION
+�� <control> LINE FEED
+�� <control> LINE TABULATION
+�� <control> FORM FEED
+�� <control> CARRIAGE RETURN
+�� <control> ESCAPE
+�� <control> DELETE
+�� <control> 0x80
+�� <control> 0x81
+�� <control> BREAK PERMITTED HERE
+�� <control> NO BREAK HERE
+�� <control> PRIVACY MESSAGE
+�� <control> APPLICATION PROGRAM COMMAND
+≪≪ MUCH LESS-THAN
+≫≫ MUCH GREATER-THAN
+ffff LATIN SMALL LIGATURE FF
+fifi LATIN SMALL LIGATURE FI
+flfl LATIN SMALL LIGATURE FL
+ffiffi LATIN SMALL LIGATURE FFI
+fflffl LATIN SMALL LIGATURE FFL
+� REPLACEMENT CHARACTER
+ <undefined>
+ <undefined>
+𐀀 LINEAR B SYLLABLE B008 A
+󿿽 <Plane 15 Private Use, Last>
+ <undefined>
+ <undefined>
+􀀀 <Plane 16 Private Use, First>
+􏿽 <Plane 16 Private Use, Last>
+ <undefined>
+ <undefined>
+ENDTEST
--- /dev/null
+CHAR-UNICODE-NOGROFF(1) General Commands Manual CHAR-UNICODE-NOGROFF(1)
+
+
+
+N\bNA\bAM\bME\bE
+ char-unicode-nogroff - characters handled differently by groff
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ BEGINTEST
+ �� <control> NULL
+ �� <control> START OF HEADING
+ �� <control> BELL
+ �� <control> BACKSPACE
+ <control> CHARACTER TABULATION
+ �� <control> LINE FEED
+ �� <control> LINE TABULATION
+ �� <control> FORM FEED
+ �� <control> CARRIAGE RETURN
+ �� <control> ESCAPE
+ �� <control> DELETE
+ �� <control> 0x80
+ �� <control> 0x81
+ �� <control> BREAK PERMITTED HERE
+ �� <control> NO BREAK HERE
+ �� <control> PRIVACY MESSAGE
+ �� <control> APPLICATION PROGRAM COMMAND
+ ≪≪ MUCH LESS-THAN
+ ≫≫ MUCH GREATER-THAN
+ ffff LATIN SMALL LIGATURE FF
+ fifi LATIN SMALL LIGATURE FI
+ flfl LATIN SMALL LIGATURE FL
+ ffiffi LATIN SMALL LIGATURE FFI
+ fflffl LATIN SMALL LIGATURE FFL
+ � REPLACEMENT CHARACTER
+ <undefined>
+ <undefined>
+ 𐀀 LINEAR B SYLLABLE B008 A
+ <Plane 15 Private Use, Last>
+ <undefined>
+ <undefined>
+ <Plane 16 Private Use, First>
+ <Plane 16 Private Use, Last>
+ <undefined>
+ <undefined>
+ ENDTEST
+
+
+
+OpenBSD October 28, 2014 CHAR-UNICODE-NOGROFF(1)
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2015/01/28 21:10:28 schwarze Exp $
+
+SUBDIR = fromto define matrix nullary over size subsup unary
+
+.include "../Makefile.sub"
+.include <bsd.subdir.mk>
--- /dev/null
+# $OpenBSD: Makefile.inc,v 1.2 2015/02/03 19:37:25 schwarze Exp $
+
+EQN = /usr/local/bin/eqn
+
+SKIP_GROFF ?= ${REGRESS_TARGETS}
+SKIP_TMAN ?= ALL
+
+
+# OpenBSD only: maintainer targets and custom extraction
+
+_FULLHTMLFILES = ${HTML_TARGETS:S/$/.html/}
+
+html-clean:
+.if !empty(_FULLHTMLFILES)
+ @rm -f ${_HTMLFILES} ${_FULLHTMLFILES}
+.endif
+
+.for t in ${HTML_TARGETS}
+${t}.out_html: ${t}.in
+ ${MANDOC} ${MOPTS} -Thtml ${.ALLSRC} | \
+ ${.CURDIR}/../extract.pl > ${.TARGET}
+.endfor
+
+.include "../Makefile.inc"
+
+.in.mandoc_html:
+ @${MANDOC} ${MOPTS} -Thtml ${.IMPSRC} > ${.TARGET:S/mandoc_html$/html/}
+ @${.CURDIR}/../extract.pl < ${.TARGET:S/mandoc_html$/html/} > ${.TARGET}
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2015/01/28 21:10:28 schwarze Exp $
+
+REGRESS_TARGETS = invalid
+LINT_TARGETS = invalid
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd January 28, 2015
+.Dt DEFINE-INVALID 1
+.Os OpenBSD
+.Sh NAME
+.Nm define-invalid
+.Nd invalid define and undef statements
+.Sh DESCRIPTION
+define without variable name:
+.EQ
+define bruch 'over' 1 bruch 2 undef bruch bruch define
+.EN
+eol
+.Pp
+define without value:
+.EQ
+define bruch 'over' 1 bruch 2 undef bruch bruch define bruch
+.EN
+eol
+.Pp
+define without value:
+.EQ
+define bruch 'over' 1 bruch 2 undef bruch bruch undef
+.EN
+eol
+.Pp
+tdefine without variable name:
+.EQ
+tdefine
+.EN
+eol
+.Pp
+tdefine without value:
+.EQ
+tdefine bruch
+.EN
+eol
--- /dev/null
+DEFINE-INVALID(1) General Commands Manual DEFINE-INVALID(1)
+
+N\bNA\bAM\bME\bE
+ d\bde\bef\bfi\bin\bne\be-\b-i\bin\bnv\bva\bal\bli\bid\bd - invalid define and undef statements
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ define without variable name: 1/2 bruch eol
+
+ define without value: 1/2 bruch eol
+
+ define without value: 1/2 bruch eol
+
+ tdefine without variable name: eol
+
+ tdefine without value: eol
+
+OpenBSD January 28, 2015 OpenBSD
--- /dev/null
+mandoc: invalid.in:9:1: WARNING: skipping empty request: define
+mandoc: invalid.in:15:1: WARNING: skipping empty request: define bruch
+mandoc: invalid.in:21:1: WARNING: skipping empty request: undef
+mandoc: invalid.in:27:1: WARNING: skipping empty request: tdefine
+mandoc: invalid.in:33:1: WARNING: skipping empty request: tdefine
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2015/01/01 15:34:43 schwarze Exp $
+
+REGRESS_TARGETS = basic noarg
+HTML_TARGETS = basic noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd January 1, 2015
+.Dt FROMTO-BASIC 1
+.Os OpenBSD
+.Sh NAME
+.Nm fromto-basic
+.Nd vertical stacking
+.Sh DESCRIPTION
+initial text
+.EQ
+sum from { i = 1 } to inf 1 over i sup 2
+.EN
+final text
--- /dev/null
+FROMTO-BASIC(1) General Commands Manual FROMTO-BASIC(1)
+
+N\bNA\bAM\bME\bE
+ f\bfr\bro\bom\bmt\bto\bo-\b-b\bba\bas\bsi\bic\bc - vertical stacking
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text E_(i = 1)^oo 1/i^2 final text
+
+OpenBSD January 1, 2015 OpenBSD
--- /dev/null
+<mrow><munderover><mi>∑</mi><mrow><mi>i</mi><mi>=</mi><mi>1</mi></mrow><mi>∞</mi></munderover><mfrac><mi>1</mi><msup><mi>i</mi><mi>2</mi></msup></mfrac></mrow>
--- /dev/null
+.Dd January 1, 2015
+.Dt FROMTO-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm fromto-noarg
+.Nd vertical stacking lacks final argument
+.Sh DESCRIPTION
+initial text
+.EQ
+x from a to to
+.EN
+final text
--- /dev/null
+FROMTO-NOARG(1) General Commands Manual FROMTO-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ f\bfr\bro\bom\bmt\bto\bo-\b-n\bno\boa\bar\brg\bg - vertical stacking lacks final argument
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text x_a^^ final text
+
+OpenBSD January 1, 2015 OpenBSD
--- /dev/null
+<mrow><munderover><mi>x</mi><mover><mi>a</mi></mover></munderover></mrow>
--- /dev/null
+# $OpenBSD: Makefile,v 1.1.1.1 2015/01/01 12:53:46 schwarze Exp $
+
+REGRESS_TARGETS = basic
+HTML_TARGETS = basic
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd October 10, 2014
+.Dt MATRIX-BASIC 1
+.Os OpenBSD
+.Sh NAME
+.Nm matrix-basic
+.Nd matrixes in equations
+.Sh DESCRIPTION
+initial text
+.EQ
+left (
+matrix { ccol { a sub 11 above a sub 21 } ccol { a sub 12 above a sub 22 } }
+right )
+left (
+pile { b sub 1 above b sub 2 }
+right )
+.EN
+final text
--- /dev/null
+MATRIX-BASIC(1) General Commands Manual MATRIX-BASIC(1)
+
+N\bNA\bAM\bME\bE
+ m\bma\bat\btr\bri\bix\bx-\b-b\bba\bas\bsi\bic\bc - matrixes in equations
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text ((a_11 a_21) (a_12 a_22)) (b_1 b_2) final text
+
+OpenBSD October 10, 2014 OpenBSD
--- /dev/null
+<mrow><mfenced open="(" close=")"><mrow><mtable><mtr><mtd><msub><mi>a</mi><mi>11</mi></msub></mtd><mtd><msub><mi>a</mi><mi>12</mi></msub></mtd></mtr><mtr><mtd><msub><mi>a</mi><mi>21</mi></msub></mtd><mtd><msub><mi>a</mi><mi>22</mi></msub></mtd></mtr></mtable></mrow></mfenced><mfenced open="(" close=")"><mrow><mtable><mtr><mtd><msub><mi>b</mi><mi>1</mi></msub></mtd></mtr><mtr><mtd><msub><mi>b</mi><mi>2</mi></msub></mtd></mtr></mtable></mrow></mfenced></mrow>
--- /dev/null
+# $OpenBSD: Makefile,v 1.1.1.1 2015/01/01 12:53:46 schwarze Exp $
+
+REGRESS_TARGETS = roman
+HTML_TARGETS = roman
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd October 12, 2014
+.Dt NULLARY-ROMAN 1
+.Os OpenBSD
+.Sh NAME
+.Nm nullary-roman
+.Nd equation tokens set in roman font
+.Sh DESCRIPTION
+initial text
+.EQ
+sin cos tan sinh cosh tanh arc
+max min lim log ln exp
+Re Im and if for det
+.EN
+final text
--- /dev/null
+NULLARY-ROMAN(1) General Commands Manual NULLARY-ROMAN(1)
+
+N\bNA\bAM\bME\bE
+ n\bnu\bul\bll\bla\bar\bry\by-\b-r\bro\bom\bma\ban\bn - equation tokens set in roman font
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text sin cos tan sinh cosh tanh arc max min lim log ln exp Re Im
+ and if for det final text
+
+OpenBSD October 12, 2014 OpenBSD
--- /dev/null
+<mrow><mi>sin</mi><mi>cos</mi><mi>tan</mi><mi>sinh</mi><mi>cosh</mi><mi>tanh</mi><mi>arc</mi><mi>max</mi><mi>min</mi><mi>lim</mi><mi>log</mi><mi>ln</mi><mi>exp</mi><mi>Re</mi><mi>Im</mi><mi>and</mi><mi>if</mi><mi>for</mi><mi>det</mi></mrow>
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2015/01/01 15:34:43 schwarze Exp $
+
+REGRESS_TARGETS = noarg precedence
+HTML_TARGETS = noarg precedence
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd January 1, 2015
+.Dt OVER-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm over-noarg
+.Nd fraction operator without arguments
+.Sh DESCRIPTION
+initial text
+.EQ
+over over
+.EN
+final text
--- /dev/null
+OVER-NOARG(1) General Commands Manual OVER-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ o\bov\bve\ber\br-\b-n\bno\boa\bar\brg\bg - fraction operator without arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text // final text
+
+OpenBSD January 1, 2015 OpenBSD
--- /dev/null
+<mrow><mfrac><mfrac><mi></mi></mfrac></mfrac></mrow>
--- /dev/null
+mandoc: noarg.in:9:1: WARNING: missing eqn box, using "": over
--- /dev/null
+.Dd October 10, 2014
+.Dt OVER-PRECEDENCE 1
+.Os OpenBSD
+.Sh NAME
+.Nm over-precedence
+.Nd precedence of the fraction operator
+.Sh DESCRIPTION
+initial text
+.EQ
+1 + x + x sup 2 over 2 + x sup 3 over { 2 * 3 }
+.EN
+final text
--- /dev/null
+OVER-PRECEDENCE(1) General Commands Manual OVER-PRECEDENCE(1)
+
+N\bNA\bAM\bME\bE
+ o\bov\bve\ber\br-\b-p\bpr\bre\bec\bce\bed\bde\ben\bnc\bce\be - precedence of the fraction operator
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text 1 + x + x^2/2 + x^3/(2 * 3) final text
+
+OpenBSD October 10, 2014 OpenBSD
--- /dev/null
+<mrow><mi>1</mi><mi>+</mi><mi>x</mi><mi>+</mi><mfrac><msup><mi>x</mi><mi>2</mi></msup><mi>2</mi></mfrac><mi>+</mi><mfrac><msup><mi>x</mi><mi>3</mi></msup><mrow><mi>2</mi><mi>*</mi><mi>3</mi></mrow></mfrac></mrow>
--- /dev/null
+# $OpenBSD: Makefile,v 1.1.1.1 2015/01/01 12:53:46 schwarze Exp $
+
+REGRESS_TARGETS = basic
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd October 10, 2014
+.Dt SIZE-BASIC 1
+.Os OpenBSD
+.Sh NAME
+.Nm size-basic
+.Nd font sizes
+.Sh DESCRIPTION
+initial text
+.EQ
+x size 12 x size 14 x size 16 x
+.EN
+final text
--- /dev/null
+SIZE-BASIC(1) General Commands Manual SIZE-BASIC(1)
+
+N\bNA\bAM\bME\bE
+ s\bsi\biz\bze\be-\b-b\bba\bas\bsi\bic\bc - font sizes
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text x x x x final text
+
+OpenBSD October 10, 2014 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2015/01/01 15:34:43 schwarze Exp $
+
+REGRESS_TARGETS = combine noarg sub_group
+HTML_TARGETS = combine noarg sub_group
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd October 10, 2014
+.Dt SUBSUP-COMBINE 1
+.Os OpenBSD
+.Sh NAME
+.Nm subsup-combine
+.Nd combination of subscripts and superscripts
+.Sh DESCRIPTION
+initial text
+.EQ
+x sub 1 sup 2 + e sup x sub 2
+.EN
+final text
--- /dev/null
+SUBSUP-COMBINE(1) General Commands Manual SUBSUP-COMBINE(1)
+
+N\bNA\bAM\bME\bE
+ s\bsu\bub\bbs\bsu\bup\bp-\b-c\bco\bom\bmb\bbi\bin\bne\be - combination of subscripts and superscripts
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text x_1^2 + e^x_2 final text
+
+OpenBSD October 10, 2014 OpenBSD
--- /dev/null
+<mrow><msubsup><mi>x</mi><mi>1</mi><mi>2</mi></msubsup><mi>+</mi><msup><mi>e</mi><msub><mi>x</mi><mi>2</mi></msub></msup></mrow>
--- /dev/null
+.Dd January 1, 2015
+.Dt SUBSUP-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm subsup-noarg
+.Nd empty subscripts and superscripts
+.Sh DESCRIPTION
+initial text
+.EQ
+x sub 1 sup sup
+.EN
+final text
--- /dev/null
+SUBSUP-NOARG(1) General Commands Manual SUBSUP-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ s\bsu\bub\bbs\bsu\bup\bp-\b-n\bno\boa\bar\brg\bg - empty subscripts and superscripts
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text x_1^^ final text
+
+OpenBSD January 1, 2015 OpenBSD
--- /dev/null
+<mrow><msubsup><mi>x</mi><msup><mi>1</mi></msup></msubsup></mrow>
--- /dev/null
+.Dd October 10, 2014
+.Dt SUBSUP-SUB_GROUP 1
+.Os OpenBSD
+.Sh NAME
+.Nm subsup-sub_group
+.Nd grouping of subscripts
+.Sh DESCRIPTION
+initial text
+.EQ
+x sub i + x sub j sub 1 + { M sub i } sub j
+.EN
+final text
--- /dev/null
+SUBSUP-SUB_GROUP(1) General Commands Manual SUBSUP-SUB_GROUP(1)
+
+N\bNA\bAM\bME\bE
+ s\bsu\bub\bbs\bsu\bup\bp-\b-s\bsu\bub\bb_\b_g\bgr\bro\bou\bup\bp - grouping of subscripts
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text x_i + x_j_1 + (M_i)_j final text
+
+OpenBSD October 10, 2014 OpenBSD
--- /dev/null
+<mrow><msub><mi>x</mi><mi>i</mi></msub><mi>+</mi><msub><mi>x</mi><msub><mi>j</mi><mi>1</mi></msub></msub><mi>+</mi><msub><mrow><msub><mi>M</mi><mi>i</mi></msub></mrow><mi>j</mi></msub></mrow>
--- /dev/null
+# $OpenBSD: Makefile,v 1.1.1.1 2015/01/01 12:53:46 schwarze Exp $
+
+REGRESS_TARGETS = diacrit sqrt
+HTML_TARGETS = diacrit sqrt
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd October 10, 2014
+.Dt UNARY-DIACRIT 1
+.Os OpenBSD
+.Sh NAME
+.Nm unary-diacrit
+.Nd diacritical marks in equations
+.Sh DESCRIPTION
+initial text
+.EQ
+x dot x dotdot x hat x tilde x vec x dyad
+{ x + y } bar { x + y } under
+.EN
+final text
--- /dev/null
+UNARY-DIACRIT(1) General Commands Manual UNARY-DIACRIT(1)
+
+N\bNA\bAM\bME\bE
+ u\bun\bna\bar\bry\by-\b-d\bdi\bia\bac\bcr\bri\bit\bt - diacritical marks in equations
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text x. x" x^ x~ x-> x<-> (x + y) (x + y)_ final text
+
+OpenBSD October 10, 2014 OpenBSD
--- /dev/null
+<mrow><mover><mi>x</mi><mo>˙</mo></mover><mover><mi>x</mi><mo>¨</mo></mover><mover><mi>x</mi><mo>^</mo></mover><mover><mi>x</mi><mo>~</mo></mover><mover><mi>x</mi><mo>→</mo></mover><mover><mi>x</mi><mo>↔</mo></mover><mover><mrow><mi>x</mi><mi>+</mi><mi>y</mi></mrow><mo></mo></mover><munder><mrow><mi>x</mi><mi>+</mi><mi>y</mi></mrow><mo>_</mo></munder></mrow>
--- /dev/null
+.Dd October 10, 2014
+.Dt UNARY-SQRT 1
+.Os OpenBSD
+.Sh NAME
+.Nm unary-sqrt
+.Nd square root
+.Sh DESCRIPTION
+initial text
+.EQ
+r = sqrt { x sup 2 + y sup 2 }
+.EN
+final text
--- /dev/null
+UNARY-SQRT(1) General Commands Manual UNARY-SQRT(1)
+
+N\bNA\bAM\bME\bE
+ u\bun\bna\bar\bry\by-\b-s\bsq\bqr\brt\bt - square root
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text r = sqrt(x^2 + y^2) final text
+
+OpenBSD October 10, 2014 OpenBSD
--- /dev/null
+<mrow><mi>r</mi><mi>=</mi><msqrt><mrow><msup><mi>x</mi><mi>2</mi></msup><mi>+</mi><msup><mi>y</mi><mi>2</mi></msup></mrow></msqrt></mrow>
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2014/08/14 02:00:52 schwarze Exp $
+
+REGRESS_TARGETS = args
+LINT_TARGETS = args
+
+.include <bsd.regress.mk>
--- /dev/null
+.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
--- /dev/null
+B-ARGS(1) General Commands Manual B-ARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ B-args - arguments to font macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is b\bbo\bol\bld\bd text. It also works with s\bse\bev\bve\ber\bra\bal\bl w\bwo\bor\brd\bds\bs o\bon\bn a\ba l\bli\bin\bne\be and with
+ n\bne\bex\bxt\bt l\bli\bin\bne\be scope.
+ In no-fill mode:
+ t\btw\bwo\bo w\bwo\bor\brd\bds\bs
+ and another line.
+ It has no effect at the end of the file:
+
+
+
+OpenBSD July 30, 2014 B-ARGS(1)
--- /dev/null
+mandoc: args.in:20:2: WARNING: line scope broken: EOF breaks B
--- /dev/null
+# $OpenBSD: Makefile,v 1.3 2015/04/06 22:06:06 schwarze Exp $
+
+REGRESS_TARGETS = emptyargs literal
+
+.include <bsd.regress.mk>
--- /dev/null
+.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
--- /dev/null
+BI-EMPTYARGS(1) General Commands Manual BI-EMPTYARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ BI-emptyargs - empty arguments to font alternation macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ leading text
+
+ b\bbo\bol\bld\bd_\bi_\bt_\ba_\bl_\bi_\bc
+ b\bbo\bol\bld\bd_\bi_\bt_\ba_\bl_\bi_\bc
+
+ trailing text
+
+
+
+OpenBSD April 6, 2015 BI-EMPTYARGS(1)
--- /dev/null
+.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
--- /dev/null
+GETTEXT(3) Library Functions Manual GETTEXT(3)
+
+
+
+N\bNA\bAM\bME\bE
+ gettext, dgettext, dcgettext - translate message
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<l\bli\bib\bbi\bin\bnt\btl\bl.\b.h\bh>\b>
+
+ c\bch\bha\bar\br *\b* g\bge\bet\btt\bte\bex\bxt\bt (\b(c\bco\bon\bns\bst\bt c\bch\bha\bar\br *\b* _\bm_\bs_\bg_\bi_\bd)\b);\b;
+ c\bch\bha\bar\br *\b* d\bdg\bge\bet\btt\bte\bex\bxt\bt (\b(c\bco\bon\bns\bst\bt c\bch\bha\bar\br *\b* _\bd_\bo_\bm_\ba_\bi_\bn_\bn_\ba_\bm_\be,\b, c\bco\bon\bns\bst\bt c\bch\bha\bar\br *\b* _\bm_\bs_\bg_\bi_\bd)\b);\b;
+ c\bch\bha\bar\br *\b* d\bdc\bcg\bge\bet\btt\bte\bex\bxt\bt (\b(c\bco\bon\bns\bst\bt c\bch\bha\bar\br *\b* _\bd_\bo_\bm_\ba_\bi_\bn_\bn_\ba_\bm_\be,\b, c\bco\bon\bns\bst\bt c\bch\bha\bar\br *\b* _\bm_\bs_\bg_\bi_\bd,\b,
+ i\bin\bnt\bt _\bc_\ba_\bt_\be_\bg_\bo_\br_\by)\b);\b;
+
+
+
+GNU gettext 0.18 May 2001 GETTEXT(3)
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2012/06/02 20:07:09 schwarze Exp $
+
+REGRESS_TARGETS=spacing nested args
+
+.include <bsd.regress.mk>
--- /dev/null
+.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
--- /dev/null
+EX-ARGS(1) General Commands Manual EX-ARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ EX-args - example macro with arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+ literal
+ text
+ regular text
+
+
+
+OpenBSD June 3, 2012 EX-ARGS(1)
--- /dev/null
+.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
--- /dev/null
+EX-NESTED(1) General Commands Manual EX-NESTED(1)
+
+
+
+N\bNA\bAM\bME\bE
+ EX-nested - nested example macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+ outer
+ example
+ inner
+ example
+ outer example
+ regular text
+
+
+
+OpenBSD June 3, 2012 EX-NESTED(1)
--- /dev/null
+.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
--- /dev/null
+EX-SPACING(1) General Commands Manual EX-SPACING(1)
+
+
+
+N\bNA\bAM\bME\bE
+ EX-spacing - spacing around the example macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2014/04/08 04:45:50 schwarze Exp $
+
+REGRESS_TARGETS = break literal macrotag manyargs spacing
+
+.include <bsd.regress.mk>
--- /dev/null
+.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.
--- /dev/null
+HP-BREAK(1) General Commands Manual HP-BREAK(1)
+
+
+
+N\bNA\bAM\bME\bE
+ HP-break - breaking the head line of hanged paragraphs
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+.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
--- /dev/null
+HP-LITERAL(1) General Commands Manual HP-LITERAL(1)
+
+
+
+N\bNA\bAM\bME\bE
+ HP-literal - hanged paragraphs in literal context
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+
+ tag indented text
+
+ regular text
+ literal
+ text
+
+ tag
+ indented
+ text
+
+ literal
+ text
+ regular text
+
+
+
+OpenBSD January 4, 2011 HP-LITERAL(1)
--- /dev/null
+.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
--- /dev/null
+HP-MACROTAG(1) General Commands Manual HP-MACROTAG(1)
+
+
+
+N\bNA\bAM\bME\bE
+ HP-macrotag - macro in the head of a tagged paragraph
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+
+ l\blo\bon\bng\bgi\bin\bnd\bde\ben\bnt\bt indented text
+
+ regular text
+
+
+
+OpenBSD September 20, 2011 HP-MACROTAG(1)
--- /dev/null
+.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
--- /dev/null
+HP-MANYARGS(1) General Commands Manual HP-MANYARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ HP-manyargs - too many header args for hanged blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+.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.
--- /dev/null
+HP-SPACING(1) General Commands Manual HP-SPACING(1)
+
+
+
+N\bNA\bAM\bME\bE
+ HP-spacing - spacing in hanged lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+# $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>
--- /dev/null
+.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
--- /dev/null
+IP-EMPTY(1) General Commands Manual IP-EMPTY(1)
+
+
+
+N\bNA\bAM\bME\bE
+ IP-empty - empty indented paragraphs
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+mandoc: empty.in:12:2: WARNING: skipping paragraph macro: IP empty
+mandoc: empty.in:19:2: WARNING: skipping paragraph macro: IP empty
--- /dev/null
+.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
--- /dev/null
+IP-LITERAL(1) General Commands Manual IP-LITERAL(1)
+
+
+
+N\bNA\bAM\bME\bE
+ IP-literal - indented paragraphs in literal context
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+
+ tag indented text
+
+ regular text
+ literal
+ text
+
+ tag indented
+ text
+
+ literal
+ text
+ regular text
+
+
+
+OpenBSD January 4, 2011 IP-LITERAL(1)
--- /dev/null
+.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
--- /dev/null
+IP-LONGHEAD(1) General Commands Manual IP-LONGHEAD(1)
+
+
+
+N\bNA\bAM\bME\bE
+ IP-longhead - indented paragraph with a long head
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+.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
--- /dev/null
+IP-MANYARGS(1) General Commands Manual IP-MANYARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ IP-manyargs - too many header args for indented blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+.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.
--- /dev/null
+IP-SPACING(1) General Commands Manual IP-SPACING(1)
+
+
+
+N\bNA\bAM\bME\bE
+ IP-spacing - spacing in indentend paragraphs
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+.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
--- /dev/null
+IP-WIDTH(1) General Commands Manual IP-WIDTH(1)
+
+
+
+N\bNA\bAM\bME\bE
+ IP-width - indentation width of indented paragraphs
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+# $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>
--- /dev/null
+# $OpenBSD: Makefile.inc,v 1.3 2015/02/03 19:37:25 schwarze Exp $
+
+SKIP_TMAN ?= ALL
+
+.include "../Makefile.inc"
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2015/02/06 11:54:03 schwarze Exp $
+
+REGRESS_TARGETS = args
+LINT_TARGETS = args
+
+.include <bsd.regress.mk>
--- /dev/null
+.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
--- /dev/null
+OP-ARGS(1) General Commands Manual OP-ARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ OP-args - argument handling of the man-ext OP macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ no argument: [] one argument: [-\b-f\bf] two arguments: [-\b-f\bf _\ba_\br_\bg] three
+ arguments: [-\b-f\bf _\ba_\br_\bg] final text
+
+
+
+OpenBSD February 6, 2015 OP-ARGS(1)
--- /dev/null
+mandoc: args.in:6:2: WARNING: missing option string, using "": OP
+mandoc: args.in:12:13: ERROR: skipping excess arguments: OP ... bogus
--- /dev/null
+# $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>
--- /dev/null
+.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
--- /dev/null
+PD-ARGS(1) General Commands Manual PD-ARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ PD-args - unusual arguments to the PD macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+mandoc: args.in:26:7: ERROR: skipping excess arguments: PD ... zzz
--- /dev/null
+.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
--- /dev/null
+PD-NEXTLINE(1) General Commands Manual PD-NEXTLINE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ PD-nextline - paragraph distance macro in next-line scope
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+N\bNE\bEX\bXT\bT S\bSE\bEC\bCT\bTI\bIO\bON\bN
+ first paragraph
+ second paragraph
+
+ third paragraph
+
+ S\bSu\bub\bbs\bse\bec\bct\bti\bio\bon\bn
+ first paragraph
+ second paragraph
+
+ third paragraph
+
+ tag list text
+ tag list text
+
+ tag list text
+
+ normal text b\bbo\bol\bld\bd t\bte\bex\bxt\bt normal text
+ final paragraph
+
+
+
+OpenBSD March 20, 2015 PD-NEXTLINE(1)
--- /dev/null
+.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
--- /dev/null
+PD-SPACING(1) General Commands Manual PD-SPACING(1)
+
+
+
+N\bNA\bAM\bME\bE
+ PD-spacing - effect of the PD macro on vertical spacing
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text
+
+ paragraph
+
+ hanged paragraph
+
+ indented
+ paragraph
+
+ tagged paragraph
+
+ s\bsu\bub\bbs\bse\bec\bct\bti\bio\bon\bn
+ subsection text
+
+
+D\bDO\bOU\bUB\bBL\bLE\bE S\bSP\bPA\bAC\bCI\bIN\bNG\bG
+ initial text
+
+
+ paragraph
+
+
+ hanged paragraph
+
+
+ indented
+ paragraph
+
+
+ tagged paragraph
+
+
+ s\bsu\bub\bbs\bse\bec\bct\bti\bio\bon\bn
+ subsection text
+N\bNO\bO S\bSP\bPA\bAC\bCI\bIN\bNG\bG
+ initial text
+ paragraph
+ hanged paragraph
+ indented
+ paragraph
+ tagged paragraph
+ s\bsu\bub\bbs\bse\bec\bct\bti\bio\bon\bn
+ subsection text
+
+N\bNO\bOR\bRM\bMA\bAL\bL S\bSP\bPA\bAC\bCI\bIN\bNG\bG
+ initial text
+
+ paragraph
+
+ hanged paragraph
+
+ indented
+ paragraph
+
+ tagged paragraph
+
+ s\bsu\bub\bbs\bse\bec\bct\bti\bio\bon\bn
+ subsection text
+
+
+
+OpenBSD July 28, 2012 PD-SPACING(1)
--- /dev/null
+# $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>
--- /dev/null
+.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
--- /dev/null
+PP-ARG(1) General Commands Manual PP-ARG(1)
+
+
+
+N\bNA\bAM\bME\bE
+ PP-arg - paragraphs macros with arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ PP with argument:
+
+ LP with arguments:
+
+ P with argument:
+
+ final text
+
+
+
+OpenBSD July 4, 2014 PP-ARG(1)
--- /dev/null
+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
--- /dev/null
+.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
--- /dev/null
+PP-EMPTY(1) General Commands Manual PP-EMPTY(1)
+
+
+
+N\bNA\bAM\bME\bE
+ PP-empty - handling of empty paragraphs
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+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
--- /dev/null
+# $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>
--- /dev/null
+.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
--- /dev/null
+RS-REARG(1) General Commands Manual RS-REARG(1)
+
+
+
+N\bNA\bAM\bME\bE
+ RS-REarg - arguments to the RE macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+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
--- /dev/null
+.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
--- /dev/null
+RS-BREAKING(1) General Commands Manual RS-BREAKING(1)
+
+
+
+N\bNA\bAM\bME\bE
+ RS-breaking - some block gets broken by an RS block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ preceding text
+
+ * item
+ indented text
+ middle text
+
+ *
+ indented text
+ trailing text
+
+
+
+OpenBSD 7 July 2012 RS-BREAKING(1)
--- /dev/null
+.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
--- /dev/null
+RS-BROKEN(1) General Commands Manual RS-BROKEN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ RS-broken - indented blocks broken by other blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+.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
--- /dev/null
+RS-EMPTY(1) General Commands Manual RS-EMPTY(1)
+
+
+
+N\bNA\bAM\bME\bE
+ RS-empty - empty margin reset blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+ regular text
+ indented text
+ regular text
+
+
+
+OpenBSD July 17, 2012 RS-EMPTY(1)
--- /dev/null
+mandoc: empty.in:7:2: WARNING: empty block: RS
--- /dev/null
+.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
--- /dev/null
+RS-LITERAL(1) General Commands Manual RS-LITERAL(1)
+
+
+
+N\bNA\bAM\bME\bE
+ RS-literal - indented literal text
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+.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
--- /dev/null
+RS-LONELYRE(1) General Commands Manual RS-LONELYRE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ RS-lonelyRE - closing RS that is not open
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+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
--- /dev/null
+.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
--- /dev/null
+RS-NESTED(1) General Commands Manual RS-NESTED(1)
+
+
+
+N\bNA\bAM\bME\bE
+ RS-nested - various blocks nested inside reset blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+.TH RS-NORE 1 "June 20, 2014" OpenBSD
+.SH NAME
+RS-noRE \- unclosed indented block
+.SH DESCRIPTION
+regular
+text
+.RS 8n
+indented
+text
--- /dev/null
+RS-NORE(1) General Commands Manual RS-NORE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ RS-noRE - unclosed indented block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+ indented text
+
+
+
+OpenBSD June 20, 2014 RS-NORE(1)
--- /dev/null
+mandoc: noRE.in:7:2: ERROR: appending missing end of block: RS
--- /dev/null
+.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
--- /dev/null
+RS-NESTED(1) General Commands Manual RS-NESTED(1)
+
+
+
+N\bNA\bAM\bME\bE
+ RS-nowidth - indentation blocks not specifying a width
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+ top-level indented list
+ regular text
+
+ +\bo bullet list
+ indented text
+ regular text
+ top-level indented list
+ regular text
+
+
+
+OpenBSD April 6, 2015 RS-NESTED(1)
--- /dev/null
+.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
--- /dev/null
+RS-WIDTH(1) General Commands Manual RS-WIDTH(1)
+
+
+
+N\bNA\bAM\bME\bE
+ RS-width - negative and excessive indentation
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+# $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>
--- /dev/null
+.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
--- /dev/null
+SH-BROKEN(1) General Commands Manual SH-BROKEN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ SH-broken - section header line scope broken by end of file
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+
+
+OpenBSD July 30, 2014 SH-BROKEN(1)
--- /dev/null
+mandoc: broken.in:6:2: WARNING: line scope broken: EOF breaks SH
--- /dev/null
+.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
--- /dev/null
+SH-BROKEN_ELINE(1) General Commands Manual SH-BROKEN_ELINE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ SH-broken_eline - section and element line scope broken by eof
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+
+
+OpenBSD July 30, 2014 SH-BROKEN_ELINE(1)
--- /dev/null
+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
--- /dev/null
+.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
--- /dev/null
+SH-EMPTY_BEFORE(1) General Commands Manual SH-EMPTY_BEFORE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ SH-empty_before - empty paragraph before first section header
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+
+
+OpenBSD August 18, 2014 SH-EMPTY_BEFORE(1)
--- /dev/null
+mandoc: empty_before.in:2:2: WARNING: skipping paragraph macro: PP empty
--- /dev/null
+.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
--- /dev/null
+SH-LONGARG(1) General Commands Manual SH-LONGARG(1)
+
+
+
+N\bNA\bAM\bME\bE
+ SH-longarg - long section header lines
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text
+
+T\bTh\bhi\bis\bs s\bse\bec\bct\bti\bio\bon\bn h\bha\bas\bs a\ba r\bre\bea\bal\bll\bly\by r\bri\bid\bdi\bic\bcu\bul\blo\bou\bus\bsl\bly\by l\blo\bon\bng\bg t\bti\bit\btl\ble\be w\bwh\bhi\bic\bch\bh w\bwo\bon\bn'\b't\bt e\bev\bve\ben\bn f\bfi\bit\bt o\bon\bn t\bth\bhe\be
+ l\bli\bin\bne\be.\b.
+ custom section text
+
+
+
+OpenBSD April 4, 2015 SH-LONGARG(1)
--- /dev/null
+.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
--- /dev/null
+SH-NOARG(1) General Commands Manual SH-NOARG(1)
+
+
+
+N\bNA\bAM\bME\bE
+ SH-noarg - empty header lines
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text
+
+ S\bSu\bub\bbs\bse\bec\bct\bti\bio\bon\bn
+ 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)
--- /dev/null
+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
--- /dev/null
+# $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>
--- /dev/null
+.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
--- /dev/null
+SS-BROKEN(1) General Commands Manual SS-BROKEN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ SS-broken - section header line scope broken by end of file
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+
+
+OpenBSD July 30, 2014 SS-BROKEN(1)
--- /dev/null
+mandoc: broken.in:6:2: WARNING: line scope broken: EOF breaks SS
--- /dev/null
+.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
--- /dev/null
+SS-BROKEN_ELINE(1) General Commands Manual SS-BROKEN_ELINE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ SS-broken_eline - subsection and element line scope broken by eof
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+
+
+OpenBSD July 30, 2014 SS-BROKEN_ELINE(1)
--- /dev/null
+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
--- /dev/null
+.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
--- /dev/null
+SS-LONGARG(1) General Commands Manual SS-LONGARG(1)
+
+
+
+N\bNA\bAM\bME\bE
+ SS-longarg - long subsection header lines
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text
+
+ T\bTh\bhi\bis\bs s\bsu\bub\bbs\bse\bec\bct\bti\bio\bon\bn h\bha\bas\bs a\ba r\bri\bid\bdi\bic\bcu\bul\blo\bou\bus\bsl\bly\by l\blo\bon\bng\bg t\bti\bit\btl\ble\be w\bwh\bhi\bic\bch\bh w\bwo\bon\bn'\b't\bt e\bev\bve\ben\bn f\bfi\bit\bt o\bon\bn t\bth\bhe\be
+ l\bli\bin\bne\be.\b.
+ subsection text
+
+
+
+OpenBSD April 4, 2015 SS-LONGARG(1)
--- /dev/null
+.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
--- /dev/null
+SS-NOARG(1) General Commands Manual SS-NOARG(1)
+
+
+
+N\bNA\bAM\bME\bE
+ SS-noarg - empty subsection header lines
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text
+
+ S\bSu\bub\bbs\bse\bec\bct\bti\bio\bon\bn
+ 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)
--- /dev/null
+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
--- /dev/null
+# $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>
--- /dev/null
+.TH TH-BADDATE 1 "three bad words" source
+.SH NAME
+TH-baddate \- the date has three words, but bad ones
+.SH DESCRIPTION
+Some text.
--- /dev/null
+TH-BADDATE(1) General Commands Manual TH-BADDATE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TH-baddate - the date has three words, but bad ones
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Some text.
+
+
+
+source three bad words TH-BADDATE(1)
--- /dev/null
+mandoc: baddate.in:1:18: WARNING: cannot parse date, using it verbatim: three bad words
--- /dev/null
+.TH TH-case 1 "June 13, 2014" OpenBSD
+.SH NAME
+TH-case \- document title is not all caps
+.SH DESCRIPTION
+some text
--- /dev/null
+TH-case(1) General Commands Manual TH-case(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TH-case - document title is not all caps
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+
+
+OpenBSD June 13, 2014 TH-case(1)
--- /dev/null
+mandoc: case.in:1:8: WARNING: lower case character in document title: TH TH-case
--- /dev/null
+.TH TH-EMPTYDATE 1 "" source
+.SH NAME
+TH-emptydate \- an empty date string
+.SH DESCRIPTION
+Some text.
--- /dev/null
+TH-EMPTYDATE(1) General Commands Manual TH-EMPTYDATE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TH-emptydate - an empty date string
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Some text.
+
+
+
+source TH-EMPTYDATE(1)
--- /dev/null
+mandoc: emptydate.in:1:20: WARNING: missing date, using today's date: TH
--- /dev/null
+.TH TH-ISODATE 1 "2011-07-02" source
+.SH NAME
+TH-isodate \- ISO date format
+.SH DESCRIPTION
+Some text.
--- /dev/null
+TH-ISODATE(1) General Commands Manual TH-ISODATE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TH-isodate - ISO date format
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Some text.
+
+
+
+source 2011-07-02 TH-ISODATE(1)
--- /dev/null
+.TH TH-LONGDATE 1 "1234567890123456789012345678901234567890123456789012345678901234567890123456789012" source
+.SH NAME
+TH-longdate \- the date is longer than the line length
+.SH DESCRIPTION
+Some text.
--- /dev/null
+TH-LONGDATE(1) General Commands Manual TH-LONGDATE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TH-longdate - the date is longer than the line length
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Some text.
+
+
+
+source
+1234567890123456789012345678901234567890123456789012345678901234567890123456789012
+ TH-LONGDATE(1)
--- /dev/null
+mandoc: longdate.in:1:19: WARNING: cannot parse date, using it verbatim: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012
--- /dev/null
+.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.
--- /dev/null
+TH-LONGTIT-23456789012345678901234567890123456789012345678901234567890123456789(1)
+ General Commands Manual
+
+
+
+N\bNA\bAM\bME\bE
+ TH-longtit - the title is longer than the line length
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Some text.
+
+
+
+source November 20, 2014
+TH-LONGTIT-23456789012345678901234567890123456789012345678901234567890123456789(1)
--- /dev/null
+.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.
--- /dev/null
+TH-LONGVOL(1)
+1234567890123456789012345678901234567890123456789012345678901234567890123456789
+
+
+
+N\bNA\bAM\bME\bE
+ TH-longvol - the volume string is longer than the line length
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Some text.
+
+
+
+source November 20, 2014 TH-LONGVOL(1)
--- /dev/null
+.TH TH-MDOCDATE 1 "July 2, 2011" source
+.SH NAME
+TH-mdocdate \- standard mdoc(7) date format
+.SH DESCRIPTION
+Some text.
--- /dev/null
+TH-MDOCDATE(1) General Commands Manual TH-MDOCDATE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TH-mdocdate - standard mdoc(7) date format
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Some text.
+
+
+
+source July 2, 2011 TH-MDOCDATE(1)
--- /dev/null
+.SH NAME
+TH-noTH \- TH macro missing
+.SH DESCRIPTION
+some text
--- /dev/null
+mandoc: noTH.in: WARNING: missing manual title, using ""
+mandoc: noTH.in: WARNING: missing date, using today's date
--- /dev/null
+.TH
+.SH NAME
+TH-noarg \- no arguments to the TH macro
+.SH DESCRIPTION
+some text
--- /dev/null
+() ()
+
+
+
+N\bNA\bAM\bME\bE
+ TH-noarg - no arguments to the TH macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+
+
+ ()
--- /dev/null
+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
--- /dev/null
+.TH TH-NOBODY 1 "June 20, 2014" OpenBSD
--- /dev/null
+TH-NOBODY(1) General Commands Manual TH-NOBODY(1)
+
+
+
+OpenBSD June 20, 2014 TH-NOBODY(1)
--- /dev/null
+mandoc: nobody.in: WARNING: no document body
--- /dev/null
+.TH TH-ONEARG
+.SH NAME
+TH-onearg \- only one argument to the TH macro
+.SH DESCRIPTION
+some text
--- /dev/null
+TH-ONEARG() TH-ONEARG()
+
+
+
+N\bNA\bAM\bME\bE
+ TH-onearg - only one argument to the TH macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+
+
+ TH-ONEARG()
--- /dev/null
+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
--- /dev/null
+.TH TH-ONLYYEAR 1 2011 source
+.SH NAME
+TH-onlyyear \- the date has only a year
+.SH DESCRIPTION
+Some text.
--- /dev/null
+TH-ONLYYEAR(1) General Commands Manual TH-ONLYYEAR(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TH-onlyyear - the date has only a year
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Some text.
+
+
+
+source 2011 TH-ONLYYEAR(1)
--- /dev/null
+.TH TH-SIXARGS 1 "January 16, 2011" OpenBSD regress SIX
+.SH NAME
+TH-sixargs \- six arguments to the TH macro
+.SH DESCRIPTION
+some text
--- /dev/null
+TH-SIXARGS(1) regress TH-SIXARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TH-sixargs - six arguments to the TH macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+
+
+OpenBSD January 16, 2011 TH-SIXARGS(1)
--- /dev/null
+mandoc: sixargs.in:1:53: ERROR: skipping excess arguments: TH ... SIX
--- /dev/null
+.TH TH-TWOARGS
+.SH NAME
+TH-twoargs \- only two arguments to the TH macro
+.SH DESCRIPTION
+some text
--- /dev/null
+TH-TWOARGS() TH-TWOARGS()
+
+
+
+N\bNA\bAM\bME\bE
+ TH-twoargs - only two arguments to the TH macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+
+
+ TH-TWOARGS()
--- /dev/null
+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
--- /dev/null
+# $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>
--- /dev/null
+.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
--- /dev/null
+TP-BADARG(1) General Commands Manual TP-BADARG(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TP-badarg - invalid width specification for tagged paragraph
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Non-numeric width specifications are ignored:
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+ tag indented
+ text
+
+
+
+OpenBSD November 18, 2012 TP-BADARG(1)
--- /dev/null
+.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
--- /dev/null
+TP-BROKEN(1) General Commands Manual TP-BROKEN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TP-broken - broken tagged paragraph
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+ indented text
+ regular text
+
+
+
+OpenBSD December 16, 2014 TP-BROKEN(1)
--- /dev/null
+mandoc: broken.in:10:2: WARNING: line scope broken: RE breaks TP
--- /dev/null
+.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?
--- /dev/null
+TP-DOUBLE(1) General Commands Manual TP-DOUBLE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TP-double - effect of double tagged paragraph
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+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
--- /dev/null
+.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
--- /dev/null
+TP-EOF(1) General Commands Manual TP-EOF(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TP-eof - indented paragraph macro at the end of the file
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The last line of the file is TP:
+
+
+
+OpenBSD July 7, 2014 TP-EOF(1)
--- /dev/null
+mandoc: eof.in:6:2: WARNING: line scope broken: EOF breaks TP
--- /dev/null
+.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
--- /dev/null
+TP-FILL(1) General Commands Manual TP-FILL(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TP-fill - interaction of tagged paragraphs and fill mode
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+.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
--- /dev/null
+TP-LITERAL(1) General Commands Manual TP-LITERAL(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TP-literal - indented paragraphs in literal context
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+
+ tag indented text
+
+ regular text
+ literal
+ text
+
+ tag indented
+ text
+
+ literal
+ text
+ regular text
+
+
+
+OpenBSD January 4, 2011 TP-LITERAL(1)
--- /dev/null
+.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
--- /dev/null
+TP-LONGHEAD(1) General Commands Manual TP-LONGHEAD(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TP-longhead - tagged paragraph with a long head
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ T\bTh\bhi\bis\bs t\bta\bag\bgg\bge\bed\bd p\bpa\bar\bra\bag\bgr\bra\bap\bph\bh h\bha\bas\bs r\bri\bid\bdi\bic\bcu\bul\blo\bou\bus\bsl\bly\by l\blo\bon\bng\bg t\bte\bex\bxt\bt i\bin\bn i\bit\bts\bs h\bhe\bea\bad\bd,\b, s\bsu\buc\bch\bh t\bth\bha\bat\bt
+ i\bit\bt d\bdo\boe\bes\bsn\bn'\b't\bt e\bev\bve\ben\bn f\bfi\bit\bt o\bon\bn t\bth\bhe\be l\bli\bin\bne\be
+ paragraph body
+
+ normal text
+
+
+
+OpenBSD April 8, 2014 TP-LONGHEAD(1)
--- /dev/null
+.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
--- /dev/null
+TP-MACROTAG(1) General Commands Manual TP-MACROTAG(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TP-macrotag - macro in the head of a tagged paragraph
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+
+ l\blo\bon\bng\bgi\bin\bnd\bde\ben\bnt\bt
+ indented text
+
+ regular text
+
+
+
+OpenBSD September 20, 2011 TP-MACROTAG(1)
--- /dev/null
+.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
--- /dev/null
+TP-MANYARGS(1) General Commands Manual TP-MANYARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TP-manyargs - too many header args for indented blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+.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
--- /dev/null
+TP-SAMELINE(1) General Commands Manual TP-SAMELINE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TP-sameline - test sameline logic of indented paragraphs
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ w\bwi\bit\bth\bho\bou\but\bt u\bus\bse\ber\br-\b-d\bde\bef\bfi\bin\bne\bed\bd m\bma\bac\bcr\bro\bos\bs
+ with width:
+
+ tag text
+
+ without width:
+
+ 20n text
+
+ w\bwi\bit\bth\bh u\bus\bse\ber\br-\b-d\bde\bef\bfi\bin\bne\bed\bd m\bma\bac\bcr\bro\bos\bs
+ with width:
+
+ tag text
+
+ without width:
+
+ 20n text
+
+
+
+OpenBSD March 8, 2014 TP-SAMELINE(1)
--- /dev/null
+.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.
--- /dev/null
+TP-SPACING(1) General Commands Manual TP-SPACING(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TP-spacing - spacing in tagged paragraphs
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+.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
--- /dev/null
+TP-WIDTH(1) General Commands Manual TP-WIDTH(1)
+
+
+
+N\bNA\bAM\bME\bE
+ TP-width - indentation width of indented paragraphs
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+# $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>
--- /dev/null
+.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
--- /dev/null
+TBL-BREAK(1) General Commands Manual TBL-BREAK(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-break - tables breaking blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+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
--- /dev/null
+.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
--- /dev/null
+TBL-VSPACE(1) General Commands Manual TBL-VSPACE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-vspace - vertical spacing around tables
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+# $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>
--- /dev/null
+.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
--- /dev/null
+UR-ARGS(1) General Commands Manual UR-ARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ UR-basic - argument handling of the man-ext URI macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+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
--- /dev/null
+.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
--- /dev/null
+UR-NOUE(1) General Commands Manual UR-NOUE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ UR-noUE - unclosed URI macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ lonely UE:
+
+ argument plus text: OpenBSD homepage <http://www.openbsd.org/>
+
+
+
+OpenBSD July 7, 2014 UR-NOUE(1)
--- /dev/null
+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
--- /dev/null
+# $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>
--- /dev/null
+.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
--- /dev/null
+BLANK-AFTERSH(1) General Commands Manual BLANK-AFTERSH(1)
+
+
+
+N\bNA\bAM\bME\bE
+ blank-afterSH - handling of blank lines right after a section heading
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ blank line before text
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 2\b2
+ blank line before PP
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 3\b3
+ blank line before RS
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 4\b4
+ TAG blank line before an indented paragraph
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 5\b5
+ TAG blank line before a tagged paragraph
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 6\b6
+ blank line before a hanged paragraph
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 7\b7
+ blank line before br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 8\b8
+ blank line before sp
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 1\b10\b0
+ double blank line before text
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 1\b12\b2
+ double blank line before PP
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 1\b13\b3
+ double blank line before RS
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 1\b14\b4
+ TAG double blank line before an indented paragraph
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 1\b15\b5
+ TAG double blank line before a tagged paragraph
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 1\b16\b6
+ double blank line before a hanged paragraph
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 1\b17\b7
+ double blank line before br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN 1\b18\b8
+ double blank line before sp
+
+
+
+OpenBSD November 10, 2013 BLANK-AFTERSH(1)
--- /dev/null
+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
--- /dev/null
+.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
--- /dev/null
+BLANK-AFTERSS(1) General Commands Manual BLANK-AFTERSS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ blank-afterSS - handling of blank lines right after a subsection
+ heading
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 1\b1
+ blank line before text
+
+ 2\b2
+ blank line before PP
+
+ 3\b3
+ blank line before RS
+
+ 4\b4
+ TAG blank line before an indented paragraph
+
+ 5\b5
+ TAG blank line before a tagged paragraph
+
+ 6\b6
+ blank line before a hanged paragraph
+
+ 7\b7
+ blank line before br
+
+ 8\b8
+ blank line before sp
+
+ 1\b10\b0
+ double blank line before text
+
+ 1\b12\b2
+ double blank line before PP
+
+ 1\b13\b3
+ double blank line before RS
+
+ 1\b14\b4
+ TAG double blank line before an indented paragraph
+
+ 1\b15\b5
+ TAG double blank line before a tagged paragraph
+
+ 1\b16\b6
+ double blank line before a hanged paragraph
+
+ 1\b17\b7
+ double blank line before br
+
+ 1\b18\b8
+ double blank line before sp
+
+
+
+OpenBSD November 10, 2013 BLANK-AFTERSS(1)
--- /dev/null
+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
--- /dev/null
+.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.
--- /dev/null
+BLANK-LINE(1) General Commands Manual BLANK-LINE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ blank-line - handling of blank lines
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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:
+
+C\bCU\bUS\bST\bTO\bOM\bM
+ SS sp PP:
+
+ s\bsu\bub\bbs\bse\bec\bct\bti\bio\bon\bn
+ End.
+
+
+
+OpenBSD July 14, 2012 BLANK-LINE(1)
--- /dev/null
+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
--- /dev/null
+# $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>
--- /dev/null
+.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
--- /dev/null
+NF-ARGS(1) General Commands Manual NF-ARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ nf-args - filling macros with arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+ literal
+ text
+ regular text
+
+
+
+OpenBSD January 16, 2011 NF-ARGS(1)
--- /dev/null
+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
--- /dev/null
+.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
--- /dev/null
+NF-DUPE(1) General Commands Manual NF-DUPE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ nf-dupe - duplicate filling macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+ still regular text
+ literal
+ text
+ still
+ literal
+ text
+
+
+
+OpenBSD July 2, 2014 NF-DUPE(1)
--- /dev/null
+mandoc: dupe.in:7:2: WARNING: fill mode already enabled, skipping: fi
+mandoc: dupe.in:14:2: WARNING: fill mode already disabled, skipping: nf
--- /dev/null
+.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.
--- /dev/null
+NF-INDENT(1) General Commands Manual NF-INDENT(1)
+
+
+
+N\bNA\bAM\bME\bE
+ nf-indent - indentation of literal blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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)
--- /dev/null
+.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
--- /dev/null
+NF-USERDEF(1) General Commands Manual NF-USERDEF(1)
+
+
+
+N\bNA\bAM\bME\bE
+ nf-userdef - setting unfilled mode via user-defined macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ filled text
+ unfilled
+ text
+ filled text
+ unfilled
+ text
+ filled text
+
+
+
+OpenBSD March 8, 2014 NF-USERDEF(1)
--- /dev/null
+.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
--- /dev/null
+NF-VERT(1) General Commands Manual NF-VERT(1)
+
+
+
+N\bNA\bAM\bME\bE
+ nf-vert - spacing around filling macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+ literal
+ text
+ regular text
+ literal
+ text
+ regular text
+
+ literal
+ text
+
+ regular text
+
+
+
+OpenBSD June 2, 2012 NF-VERT(1)
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = noarg font
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd November 20, 2014
+.Dt AD-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ad-font
+.Nd changing fonts inside the address macro
+.Sh DESCRIPTION
+normal text
+.Ad emphasis\\fBbold\\fPback | after : punctuation
+trailing text
--- /dev/null
+AD-FONT(1) General Commands Manual AD-FONT(1)
+
+N\bNA\bAM\bME\bE
+ A\bAd\bd-\b-f\bfo\bon\bnt\bt - changing fonts inside the address macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bbo\bol\bld\bd_\bb_\ba_\bc_\bk | _\ba_\bf_\bt_\be_\br: _\bp_\bu_\bn_\bc_\bt_\bu_\ba_\bt_\bi_\bo_\bn trailing text
+
+OpenBSD November 20, 2014 OpenBSD
--- /dev/null
+.Dd January 19, 2011
+.Dt AD-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ad-noarg
+.Nd address macro without an argument
+.Sh DESCRIPTION
+with address:
+.Ad 0x3bc
+no address:
+.Ad
+end of test document
--- /dev/null
+AD-NOARG(1) General Commands Manual AD-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ A\bAd\bd-\b-n\bno\boa\bar\brg\bg - address macro without an argument
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with address: _\b0_\bx_\b3_\bb_\bc no address: end of test document
+
+OpenBSD January 19, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: Ad
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2014/08/14 02:00:52 schwarze Exp $
+
+REGRESS_TARGETS = break
+LINT_TARGETS = break
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd February 5, 2015
+.Dt AN-BREAK 1
+.Os OpenBSD
+.Sh NAME
+.Nm An-break
+.Nd line breaking of the author macro
+.Sh DESCRIPTION
+inline is the default:
+.An Kristaps ,
+.An Ingo ,
+and
+.An Joerg .
+empty
+.An
+trailing
+.An .
+.Pp
+.An -split -nosplit bogus
+split mode:
+.An Kristaps
+.An Ingo
+.An Joerg
+.Pp
+empty
+.An
+trailing
+.An .
+.An -nosplit
+.Sh AUTHORS
+split mode is the default:
+.An Kristaps
+.An Ingo
+.An Joerg
+.Pp
+empty
+.An
+trailing
+.An .
+.An -nosplit -split bogus
+.Pp
+inline:
+.An Kristaps ,
+.An Ingo ,
+and
+.An Joerg .
+empty
+.An
+trailing
+.An .
--- /dev/null
+AN-BREAK(1) General Commands Manual AN-BREAK(1)
+
+N\bNA\bAM\bME\bE
+ A\bAn\bn-\b-b\bbr\bre\bea\bak\bk - line breaking of the author macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ inline is the default: Kristaps, Ingo, and Joerg. empty trailing .
+
+ split mode:
+ Kristaps
+ Ingo
+ Joerg
+
+ empty
+ trailing
+ .
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+ split mode is the default: Kristaps
+ Ingo
+ Joerg
+
+ empty
+ trailing
+ .
+
+ inline: Kristaps, Ingo, and Joerg. empty trailing .
+
+OpenBSD February 5, 2015 OpenBSD
--- /dev/null
+mandoc: break.in:14:2: WARNING: skipping empty macro: An
+mandoc: break.in:16:2: WARNING: skipping empty macro: An
+mandoc: break.in:18:12: WARNING: skipping duplicate argument: An -nosplit
+mandoc: break.in:18:21: ERROR: skipping excess arguments: An ... bogus
+mandoc: break.in:25:2: WARNING: skipping empty macro: An
+mandoc: break.in:27:2: WARNING: skipping empty macro: An
+mandoc: break.in:36:2: WARNING: skipping empty macro: An
+mandoc: break.in:38:2: WARNING: skipping empty macro: An
+mandoc: break.in:39:14: WARNING: skipping duplicate argument: An -split
+mandoc: break.in:39:21: ERROR: skipping excess arguments: An ... bogus
+mandoc: break.in:47:2: WARNING: skipping empty macro: An
+mandoc: break.in:49:2: WARNING: skipping empty macro: An
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2012/11/16 18:40:39 schwarze Exp $
+
+REGRESS_TARGETS = middle eos
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd November 16, 2012
+.Dt AP-EOS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ap-eos
+.Nd end of sentence handling after the apostrophe macro
+.Sh DESCRIPTION
+The first sentence is
+.An Ingo Ap s .
+The second is
+.An Kristaps Ap .
+No idea about the third.
--- /dev/null
+AP-EOS(1) General Commands Manual AP-EOS(1)
+
+N\bNA\bAM\bME\bE
+ A\bAp\bp-\b-e\beo\bos\bs - end of sentence handling after the apostrophe macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The first sentence is Ingo's. The second is Kristaps'. No idea about
+ the third.
+
+OpenBSD November 16, 2012 OpenBSD
--- /dev/null
+.Dd September 30, 2011
+.Dt AP-MIDDLE 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ap-middle
+.Nd apostrophe in the middle of a macro line
+.Sh DESCRIPTION
+.Xr mandoc 1 Ap s
--- /dev/null
+AP-MIDDLE(1) General Commands Manual AP-MIDDLE(1)
+
+N\bNA\bAM\bME\bE
+ A\bAp\bp-\b-m\bmi\bid\bdd\bdl\ble\be - apostrophe in the middle of a macro line
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ mandoc(1)'s
+
+OpenBSD September 30, 2011 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2014/11/19 21:59:20 schwarze Exp $
+
+REGRESS_TARGETS = author empty
+UTF8_TARGETS = author empty
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd November 19, 2014
+.Dt AQ-AUTHOR 1
+.Os OpenBSD
+.Sh NAME
+.Nm Aq-author
+.Nd angle brackets after an author name macro
+.Sh DESCRIPTION
+.An Name Ao Mt addr Ac An Name Aq Mt addr
+.Sh AUTHORS
+.An Name Ao Mt addr Ac An Name Aq Mt addr
--- /dev/null
+AQ-AUTHOR(1) General Commands Manual AQ-AUTHOR(1)
+
+N\bNA\bAM\bME\bE
+ A\bAq\bq-\b-a\bau\but\bth\bho\bor\br - angle brackets after an author name macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Name <_\ba_\bd_\bd_\br> Name <_\ba_\bd_\bd_\br>
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+ Name <_\ba_\bd_\bd_\br>
+ Name <_\ba_\bd_\bd_\br>
+
+OpenBSD November 19, 2014 OpenBSD
--- /dev/null
+AQ-AUTHOR(1) General Commands Manual AQ-AUTHOR(1)
+
+N\bNA\bAM\bME\bE
+ A\bAq\bq-\b-a\bau\but\bth\bho\bor\br – angle brackets after an author name macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Name <_\ba_\bd_\bd_\br> Name <_\ba_\bd_\bd_\br>
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+ Name <_\ba_\bd_\bd_\br>
+ Name <_\ba_\bd_\bd_\br>
+
+OpenBSD November 19, 2014 OpenBSD
--- /dev/null
+.Dd August 6, 2010
+.Dt AQ-EMPTY 1
+.Os OpenBSD
+.Sh NAME
+.Nm Aq-empty
+.Nd empty implicit enclosure macros
+.Sh DESCRIPTION
+An empty
+.Aq
+and a full
+.Aq user@host
+return path.
+And another
+.Ao full Ac one .
--- /dev/null
+AQ-EMPTY(1) General Commands Manual AQ-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ A\bAq\bq-\b-e\bem\bmp\bpt\bty\by - empty implicit enclosure macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ An empty <> and a full <user@host> return path. And another <full> one.
+
+OpenBSD August 6, 2010 OpenBSD
--- /dev/null
+AQ-EMPTY(1) General Commands Manual AQ-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ A\bAq\bq-\b-e\bem\bmp\bpt\bty\by – empty implicit enclosure macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ An empty ⟨⟩ and a full ⟨user@host⟩ return path. And another ⟨full⟩ one.
+
+OpenBSD August 6, 2010 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.3 2012/07/09 17:52:09 schwarze Exp $
+
+REGRESS_TARGETS = punct font
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt AR-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ar-font
+.Nd changing fonts inside the argument macro
+.Sh DESCRIPTION
+normal text
+.Ar emphasis\\fBbold\\fPback
+trailing text
--- /dev/null
+AR-FONT(1) General Commands Manual AR-FONT(1)
+
+N\bNA\bAM\bME\bE
+ A\bAr\br-\b-f\bfo\bon\bnt\bt - changing fonts inside the argument macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bbo\bol\bld\bd_\bb_\ba_\bc_\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd August 21, 2014
+.Dt AR-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ar-punct
+.Nd punctuation handling by the Ar macro
+.Sh DESCRIPTION
+closing punctuation
+.Ar a )
+only one
+.Ar )
+only more than one
+.Ar ) )
+middle
+.Ar a ) z
+start
+.Ar ) z
+dot
+.Ar . z
+comma
+.Ar , z
+semicolon
+.Ar ; z
+colon
+.Ar : z
+quest
+.Ar ? z
+excl
+.Ar ! z
+paren
+.Ar ) z
+bracket
+.Ar ] z
+bar
+.Ar | m
+op paren
+.Ar ( a
+op bracket
+.Ar [ a
--- /dev/null
+AR-PUNCT(1) General Commands Manual AR-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ A\bAr\br-\b-p\bpu\bun\bnc\bct\bt - punctuation handling by the Ar macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ closing punctuation _\ba) only one _\bf_\bi_\bl_\be _\b._\b._\b.) only more than one _\bf_\bi_\bl_\be _\b._\b._\b.))
+ middle _\ba) _\bz start _\bf_\bi_\bl_\be _\b._\b._\b.) _\bz dot _\bf_\bi_\bl_\be _\b._\b._\b.. _\bz comma _\bf_\bi_\bl_\be _\b._\b._\b., _\bz semicolon
+ _\bf_\bi_\bl_\be _\b._\b._\b.; _\bz colon _\bf_\bi_\bl_\be _\b._\b._\b.: _\bz quest _\bf_\bi_\bl_\be _\b._\b._\b.? _\bz excl _\bf_\bi_\bl_\be _\b._\b._\b.! _\bz paren
+ _\bf_\bi_\bl_\be _\b._\b._\b.) _\bz bracket _\bf_\bi_\bl_\be _\b._\b._\b.] _\bz bar | _\bm op paren (_\ba op bracket [_\ba
+
+OpenBSD August 21, 2014 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2014/07/05 12:33:54 schwarze Exp $
+
+REGRESS_TARGETS = invalid
+LINT_TARGETS = invalid
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd June 30, 2010
+.Dt AT-INVALID 1
+.Os OpenBSD
+.Sh NAME
+.Nm At-invalid
+.Nd handling of an invalid AT&T UNIX argument
+.Sh DESCRIPTION
+no argument:
+.At
+.Pp
+valid argument:
+.At v7
+.Pp
+invalid argument:
+.At murks
+.Pp
+end of file
--- /dev/null
+AT-INVALID(1) General Commands Manual AT-INVALID(1)
+
+N\bNA\bAM\bME\bE
+ A\bAt\bt-\b-i\bin\bnv\bva\bal\bli\bid\bd - handling of an invalid AT&T UNIX argument
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ no argument: AT&T UNIX
+
+ valid argument: Version 7 AT&T UNIX
+
+ invalid argument: AT&T UNIX murks
+
+ end of file
+
+OpenBSD June 30, 2010 OpenBSD
--- /dev/null
+mandoc: invalid.in:15:5: WARNING: unknown AT&T UNIX version: At murks
--- /dev/null
+# $OpenBSD: Makefile,v 1.18 2014/12/24 23:31:59 schwarze Exp $
+
+REGRESS_TARGETS = beforeNAME blank centered nested spacing
+REGRESS_TARGETS += badargs empty offset-empty offset-neg
+REGRESS_TARGETS += break broken unclosed
+
+LINT_TARGETS = beforeNAME blank nested badargs break broken unclosed
+
+SKIP_TMAN = beforeNAME centered
+
+# groff-1.22.3 defects:
+# - a display breaking another block continues indefinitely
+# - negative offsets take no effect, but advance the indention on exit
+
+SKIP_GROFF = break offset-neg
+
+# adjustment is disabled in groff for now
+
+SKIP_GROFF += centered
+
+# groff handles content before NAME differently
+
+SKIP_GROFF += beforeNAME
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd October 27, 2015
+.Dt BD-BADARGS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bd-badargs
+.Nd display block with bad arguments
+.Sh DESCRIPTION
+trailing -offset:
+.Bd -ragged -offset
+is
+ignored
+.Ed tail argument
+double -compact and -offset:
+.Bd -ragged -compact -offset 42n -compact -offset 6n
+last
+wins
+.Ed
+no type:
+.Bd -offset 0n -bogus args
+displayed
+text
+.Ed
+double type:
+.Bd -ragged -compact -unfilled
+ragged
+unfilled
+.Ed
+.Bd -unfilled -compact -ragged
+unfilled
+ragged
+.Ed
+file /dev/null:
+.Bd -ragged -file /dev/null -offset indent
+ragged
+offset indent
+.Ed
+trailing -file:
+.Bd -ragged -offset indent -file
+ragged
+offset indent
+.Ed
+missing -file argument:
+.Bd -ragged -offset indent -file -compact
+ragged
+offset indent
+.Ed
+no argument whatsoever:
+.Bd
+no
+argument
+.Ed
--- /dev/null
+BD-BADARGS(1) General Commands Manual BD-BADARGS(1)
+
+N\bNA\bAM\bME\bE
+ B\bBd\bd-\b-b\bba\bad\bda\bar\brg\bgs\bs - display block with bad arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ trailing -offset:
+
+ is ignored
+ double -compact and -offset:
+ last wins
+ no type:
+
+ displayed text
+ double type:
+ ragged unfilled
+ unfilled
+ ragged
+ file /dev/null:
+
+ ragged offset indent
+ trailing -file:
+
+ ragged offset indent
+ missing -file argument:
+
+ ragged offset indent
+ no argument whatsoever: no argument
+
+OpenBSD October 27, 2015 OpenBSD
--- /dev/null
+mandoc: badargs.in:12:2: ERROR: skipping all arguments: Ed tail argument
+mandoc: badargs.in:19:16: ERROR: skipping excess arguments: Bd ... -bogus
+mandoc: badargs.in:9:13: WARNING: empty argument, using 0n: Bd -offset
+mandoc: badargs.in:14:34: WARNING: duplicate argument: Bd -compact
+mandoc: badargs.in:14:43: WARNING: duplicate argument: Bd -offset 6n
+mandoc: badargs.in:19:2: WARNING: missing display type, using -ragged: Bd
+mandoc: badargs.in:24:2: WARNING: skipping duplicate display type: Bd -unfilled
+mandoc: badargs.in:28:2: WARNING: skipping duplicate display type: Bd -ragged
+mandoc: badargs.in:33:2: ERROR: NOT IMPLEMENTED: Bd -file
+mandoc: badargs.in:38:2: ERROR: NOT IMPLEMENTED: Bd -file
+mandoc: badargs.in:43:2: ERROR: NOT IMPLEMENTED: Bd -file
+mandoc: badargs.in:48:2: ERROR: skipping display without arguments: Bd
--- /dev/null
+.Dd July 28, 2014
+.Dt BD-BEFORENAME 1
+.Os OpenBSD
+.Bd -centered
+Building and Debugging NetBSD Kernels
+.br
+David A. Holland
+.br
+August 17, 2009
+.Ed
+.Sh NAME
+.Nm Bd-beforename
+.Nd title and author block before the NAME section
+.Sh DESCRIPTION
+some text
--- /dev/null
+BD-BEFORENAME(1) General Commands Manual BD-BEFORENAME(1)
+
+ Building and Debugging NetBSD Kernels
+ David A. Holland
+ August 17, 2009
+
+N\bNA\bAM\bME\bE
+ B\bBd\bd-\b-b\bbe\bef\bfo\bor\bre\ben\bna\bam\bme\be - title and author block before the NAME section
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD July 28, 2014 OpenBSD
--- /dev/null
+mandoc: beforeNAME.in:4:2: WARNING: content before first section header: Bd
--- /dev/null
+.Dd January 2, 2011
+.Dt BD-BLANK 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bd-blank
+.Nd handling of blank lines in literal displays
+.Sh DESCRIPTION
+.Bd -literal
+completely blank line:
+
+line containing a blank character:
+
+line containing two blank characters:
+
+line containing space tab space:
+
+line starting with a blank character:
+ x
+line starting with two blank characters:
+ x
+line ending in one blank character:
+line ending in two blank characters:
+line ending in space tab space:
+line containing a Pp macro:
+.Pp
+finally, a trailing blank line:
+
+.Ed
+An empty one-line literal display:
+.Dl
+end of test document
--- /dev/null
+BD-BLANK(1) General Commands Manual BD-BLANK(1)
+
+N\bNA\bAM\bME\bE
+ B\bBd\bd-\b-b\bbl\bla\ban\bnk\bk - handling of blank lines in literal displays
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ completely blank line:
+
+ line containing a blank character:
+
+ line containing two blank characters:
+
+ line containing space tab space:
+
+ line starting with a blank character:
+ x
+ line starting with two blank characters:
+ x
+ line ending in one blank character:
+ line ending in two blank characters:
+ line ending in space tab space:
+ line containing a Pp macro:
+
+ finally, a trailing blank line:
+
+ An empty one-line literal display:
+ end of test document
+
+OpenBSD January 2, 2011 OpenBSD
--- /dev/null
+mandoc: blank.in:12:1: WARNING: whitespace at end of input line
+mandoc: blank.in:14:1: WARNING: whitespace at end of input line
+mandoc: blank.in:16:1: WARNING: whitespace at end of input line
+mandoc: blank.in:21:36: WARNING: whitespace at end of input line
+mandoc: blank.in:22:37: WARNING: whitespace at end of input line
+mandoc: blank.in:23:32: WARNING: whitespace at end of input line
+mandoc: blank.in:30:8: WARNING: whitespace at end of input line
+mandoc: blank.in:30:2: WARNING: empty block: Dl
--- /dev/null
+.Dd November 10, 2012
+.Dt BD-BREAK 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bd-break
+.Nd display breaking another block
+.Sh DESCRIPTION
+before both
+.Bd -ragged -offset indent
+before bracket
+.Bo inside both
+.Ed
+after display
+.Bc
+after both
--- /dev/null
+BD-BREAK(1) General Commands Manual BD-BREAK(1)
+
+N\bNA\bAM\bME\bE
+ B\bBd\bd-\b-b\bbr\bre\bea\bak\bk - display breaking another block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ before both
+
+ before bracket [inside both
+ after display] after both
+
+OpenBSD November 10, 2012 OpenBSD
--- /dev/null
+mandoc: break.in:12:2: WARNING: blocks badly nested: Bd breaks Bo
--- /dev/null
+.Dd November 10, 2012
+.Dt BD-BROKEN 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bd-broken
+.Nd display broken by another block
+.Sh DESCRIPTION
+before both
+.Bo before display
+.Bd -ragged -offset indent
+inside both
+.Bc
+after bracket
+.Ed
--- /dev/null
+BD-BROKEN(1) General Commands Manual BD-BROKEN(1)
+
+N\bNA\bAM\bME\bE
+ B\bBd\bd-\b-b\bbr\bro\bok\bke\ben\bn - display broken by another block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ before both [before display
+
+ inside both] after bracket
+
+OpenBSD November 10, 2012 OpenBSD
--- /dev/null
+mandoc: broken.in:12:2: WARNING: blocks badly nested: Bo breaks Bd
--- /dev/null
+.Dd July 28, 2014
+.Dt BD-CENTERED 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bd-centered
+.Nd centered display blocks
+.Sh DESCRIPTION
+preceding text
+.br
+.Bd -centered -offset indent
+first line of the block
+.br
+second line
+.Ed
+following text
--- /dev/null
+BD-CENTERED(1) General Commands Manual BD-CENTERED(1)
+
+N\bNA\bAM\bME\bE
+ B\bBd\bd-\b-c\bce\ben\bnt\bte\ber\bre\bed\bd - centered display blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ preceding text
+
+ first line of the block
+ second line
+ following text
+
+OpenBSD July 28, 2014 OpenBSD
--- /dev/null
+.Dd January 2, 2010
+.Dt BD-EMPTY 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bd-empty
+.Nd empty displays
+.Sh DESCRIPTION
+An empty filled display:
+.Bd -filled
+.Ed
+An empty literal display:
+.Bd -literal
+.Ed
+An empty ragged display:
+.Bd -ragged
+.Ed
+An empty unfilled display:
+.Bd -unfilled
+.Ed
+end of test document
--- /dev/null
+BD-EMPTY(1) General Commands Manual BD-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ B\bBd\bd-\b-e\bem\bmp\bpt\bty\by - empty displays
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ An empty filled display:
+
+ An empty literal display:
+
+ An empty ragged display:
+
+ An empty unfilled display:
+
+ end of test document
+
+OpenBSD January 2, 2010 OpenBSD
--- /dev/null
+.Dd November 18, 2012
+.Dt BD-NESTED 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bd-nested
+.Nd nested displays and lists
+.Sh DESCRIPTION
+regular
+text
+.Bd -ragged -offset indent
+outer
+text (default indent)
+.Bd -ragged -offset indent
+inner
+text (default indent)
+.Ed
+outer
+text
+.Ed
+regular
+text
+.Bd -ragged -offset 4n
+outer text (4n)
+.Bd -ragged -offset 2n
+inner text (2n)
+.Ed
+outer text
+.Bl -tag -width 6n
+.It tag
+text
+.El
+outer text
+.Ed
+regular text
+.Bl -tag -width 6n
+.It tag
+outer text
+.Bd -ragged -offset 2n
+inner text (2n)
+.Ed
+outer text
+.El
--- /dev/null
+BD-NESTED(1) General Commands Manual BD-NESTED(1)
+
+N\bNA\bAM\bME\bE
+ B\bBd\bd-\b-n\bne\bes\bst\bte\bed\bd - nested displays and lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+
+ outer text (default indent)
+
+ inner text (default indent)
+ outer text
+ regular text
+
+ outer text (4n)
+
+ inner text (2n)
+ outer text
+
+ tag text
+ outer text
+ regular text
+
+ tag outer text
+
+ inner text (2n)
+ outer text
+
+OpenBSD November 18, 2012 OpenBSD
--- /dev/null
+mandoc: nested.in:13:2: WARNING: nested displays are not portable: Bd in Bd
+mandoc: nested.in:24:2: WARNING: nested displays are not portable: Bd in Bd
--- /dev/null
+.Dd November 20, 2014
+.Dt BD-OFFSET-EMPTY 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bd-offset-empty
+.Nd no argument specified to Bd offset
+.Sh DESCRIPTION
+.Bd -literal -offset
+Bd literal offset empty
+.Ed
+.Bd -literal -offset left
+Bd literal offset left
+.Ed
+.Bd -literal -offset indent
+Bd literal offset indent
+.Ed
+.Bd -literal -offset indent-two
+Bd literal offset indent-two
+.Ed
+.Bd -literal -offset 4n
+Bd literal offset 4n
+.Ed
+.Bd -literal -offset mystring
+Bd literal offset mystring
+.Ed
+.Bd -literal -offset Ds
+Bd literal offset Ds
+.Ed
+.Bd -literal -offset 78n
+Bd literal offset 78n
+.Ed
--- /dev/null
+BD-OFFSET-EMPTY(1) General Commands Manual BD-OFFSET-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ B\bBd\bd-\b-o\bof\bff\bfs\bse\bet\bt-\b-e\bem\bmp\bpt\bty\by - no argument specified to Bd offset
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Bd literal offset empty
+
+ Bd literal offset left
+
+ Bd literal offset indent
+
+ Bd literal offset indent-two
+
+ Bd literal offset 4n
+
+ Bd literal offset mystring
+
+ Bd literal offset Ds
+
+ Bd literal offset 78n
+
+OpenBSD November 20, 2014 OpenBSD
--- /dev/null
+.Dd December 24, 2014
+.Dt BD-INDENT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bd-indent
+.Nd indenting display blocks
+.Sh DESCRIPTION
+regular text
+.Bd -ragged -offset 8n
+outer display
+.Bd -ragged -offset -5n
+inner display
+.Ed
+outer display
+.Ed
+regular text
+.Bd -ragged -offset -3n
+outer display
+.Bd -ragged -offset 8n
+inner display
+.Ed
+outer display
+.Ed
+regular text
--- /dev/null
+BD-INDENT(1) General Commands Manual BD-INDENT(1)
+
+N\bNA\bAM\bME\bE
+ B\bBd\bd-\b-i\bin\bnd\bde\ben\bnt\bt - indenting display blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ regular text
+
+ outer display
+
+ inner display
+ outer display
+ regular text
+
+ outer display
+
+ inner display
+ outer display
+ regular text
+
+OpenBSD December 24, 2014 OpenBSD
--- /dev/null
+.Dd July 6, 2012
+.Dt BD-SPACING 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bd-spacing
+.Nd vertical spacing around display blocks
+.Sh DESCRIPTION
+preceding text
+.Bd -ragged -offset indent
+display block
+.Ed
+text between displays
+.Bd -ragged -offset indent -compact
+compact display block
+.Ed
+following text
--- /dev/null
+BD-SPACING(1) General Commands Manual BD-SPACING(1)
+
+N\bNA\bAM\bME\bE
+ B\bBd\bd-\b-s\bsp\bpa\bac\bci\bin\bng\bg - vertical spacing around display blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ preceding text
+
+ display block
+ text between displays
+ compact display block
+ following text
+
+OpenBSD July 6, 2012 OpenBSD
--- /dev/null
+.Dd July 7, 2014
+.Dt BD-UNCLOSED 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bd-unclosed
+.Nd display still open at the end of the file
+.Sh DESCRIPTION
+before display
+.Bd -ragged -offset indent
+inside display
--- /dev/null
+BD-UNCLOSED(1) General Commands Manual BD-UNCLOSED(1)
+
+N\bNA\bAM\bME\bE
+ B\bBd\bd-\b-u\bun\bnc\bcl\blo\bos\bse\bed\bd - display still open at the end of the file
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ before display
+
+ inside display
+
+OpenBSD July 7, 2014 OpenBSD
--- /dev/null
+mandoc: unclosed.in:9:2: ERROR: appending missing end of block: Bd
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2014/07/04 16:11:42 schwarze Exp $
+
+REGRESS_TARGETS = nest multiargs badargs break broken
+LINT_TARGETS = multiargs badargs break broken
+
+# groff-1.22.2 defects:
+# - If the first argument to .Bf is a bad one,
+# no block is opened at all and the .Ef causes another error.
+# - If a font block breaks another block,
+# fonts get mixed up when the other block finally ends.
+
+SKIP_GROFF = badargs break
+
+SKIP_TMAN = break broken
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 4, 2014
+.Dt BF-BADARGS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bf-badargs
+.Nd font blocks with bad arguments
+.Sh DESCRIPTION
+normal text
+.Bf -emphasis
+emphasis
+.Bf
+no argument
+.Ef
+back to emphasis
+.Bf badarg
+bad argument
+.Ef tail argument
+back to emphasis
+.Ef
+back to normal
--- /dev/null
+BF-BADARGS(1) General Commands Manual BF-BADARGS(1)
+
+N\bNA\bAM\bME\bE
+ B\bBf\bf-\b-b\bba\bad\bda\bar\brg\bgs\bs - font blocks with bad arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bs no argument _\bb_\ba_\bc_\bk _\bt_\bo _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bs bad argument _\bb_\ba_\bc_\bk _\bt_\bo
+ _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bs back to normal
+
+OpenBSD July 4, 2014 OpenBSD
--- /dev/null
+mandoc: badargs.in:17:2: ERROR: skipping all arguments: Ef tail argument
+mandoc: badargs.in:11:2: WARNING: missing font type, using \fR: Bf
+mandoc: badargs.in:15:5: WARNING: unknown font type, using \fR: Bf badarg
--- /dev/null
+.Dd November 10, 2012
+.Dt BF-BREAK 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bf-break
+.Nd font block breaking another block
+.Sh DESCRIPTION
+before both
+.Bf Em
+before bracket
+.Bo
+inside both
+.Ef
+after font block
+.Bc
+after both
--- /dev/null
+BF-BREAK(1) General Commands Manual BF-BREAK(1)
+
+N\bNA\bAM\bME\bE
+ B\bBf\bf-\b-b\bbr\bre\bea\bak\bk - font block breaking another block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ before both _\bb_\be_\bf_\bo_\br_\be _\bb_\br_\ba_\bc_\bk_\be_\bt _\b[_\bi_\bn_\bs_\bi_\bd_\be _\bb_\bo_\bt_\bh after font block] after both
+
+OpenBSD November 10, 2012 OpenBSD
--- /dev/null
+mandoc: break.in:13:2: WARNING: blocks badly nested: Bf breaks Bo
--- /dev/null
+.Dd November 10, 2012
+.Dt BF-BROKEN 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bf-broken
+.Nd font block broken by another block
+.Sh DESCRIPTION
+before both
+.Bo before font block
+.Bf Em
+inside both
+.Bc
+after bracket
+.Ef
+after both
--- /dev/null
+BF-BROKEN(1) General Commands Manual BF-BROKEN(1)
+
+N\bNA\bAM\bME\bE
+ B\bBf\bf-\b-b\bbr\bro\bok\bke\ben\bn - font block broken by another block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ before both [before font block _\bi_\bn_\bs_\bi_\bd_\be _\bb_\bo_\bt_\bh] after bracket after both
+
+OpenBSD November 10, 2012 OpenBSD
--- /dev/null
+mandoc: broken.in:12:2: WARNING: blocks badly nested: Bo breaks Bf
--- /dev/null
+.Dd July 4, 2014
+.Dt BF-MULTIARGS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bf-multiargs
+.Nd font blocks with multiple arguments
+.Sh DESCRIPTION
+normal text
+.Bf -symbolic -emphasis
+symbolic emphasis
+.Ef
+back to normal
+.Bf -symbolic Em
+symbolic Em
+.Ef
+back to normal
+.Bf -symbolic badarg
+symbolic badarg
+.Ef
+back to normal
+.Bf Sy -emphasis
+Sy -emphasis
+.Ef
+back to normal
+.Bf Sy Em
+Sy Em
+.Ef
+back to normal
+.Bf Sy badarg
+Sy Em
+.Ef
+back to normal
--- /dev/null
+BF-MULTIARGS(1) General Commands Manual BF-MULTIARGS(1)
+
+N\bNA\bAM\bME\bE
+ B\bBf\bf-\b-m\bmu\bul\blt\bti\bia\bar\brg\bgs\bs - font blocks with multiple arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text s\bsy\bym\bmb\bbo\bol\bli\bic\bc e\bem\bmp\bph\bha\bas\bsi\bis\bs back to normal s\bsy\bym\bmb\bbo\bol\bli\bic\bc E\bEm\bm back to normal
+ s\bsy\bym\bmb\bbo\bol\bli\bic\bc b\bba\bad\bda\bar\brg\bg back to normal S\bSy\by -\b-e\bem\bmp\bph\bha\bas\bsi\bis\bs back to normal S\bSy\by E\bEm\bm back to
+ normal S\bSy\by E\bEm\bm back to normal
+
+OpenBSD July 4, 2014 OpenBSD
--- /dev/null
+mandoc: multiargs.in:13:15: ERROR: skipping excess arguments: Bf ... Em
+mandoc: multiargs.in:17:15: ERROR: skipping excess arguments: Bf ... badarg
+mandoc: multiargs.in:21:8: ERROR: skipping excess arguments: Bf ... -emphasis
+mandoc: multiargs.in:25:8: ERROR: skipping excess arguments: Bf ... Em
+mandoc: multiargs.in:29:8: ERROR: skipping excess arguments: Bf ... badarg
--- /dev/null
+.Dd July 9, 2012
+.Dt BF-NEST 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bf-nest
+.Nd nesting font blocks
+.Sh DESCRIPTION
+normal text
+.Bf -emphasis
+emphasis
+.Bf -literal
+literal
+.Bf -symbolic
+symbolic
+.Bf Em
+Em
+.Bf Li
+Li
+.Bf Sy
+Sy
+.Em in-line \&Em \\fRroman\\fP again \&Em
+.Ef
+back to Li
+.Ef
+back to Em
+.Ef
+back to symbolic
+.Ef
+back to literal
+.Ef
+back to emphasis
+.Ef
+back to normal
--- /dev/null
+BF-NEST(1) General Commands Manual BF-NEST(1)
+
+N\bNA\bAM\bME\bE
+ B\bBf\bf-\b-n\bne\bes\bst\bt - nesting font blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bs literal s\bsy\bym\bmb\bbo\bol\bli\bic\bc _\bE_\bm Li S\bSy\by _\bi_\bn_\b-_\bl_\bi_\bn_\be _\bE_\bm roman _\ba_\bg_\ba_\bi_\bn _\bE_\bm
+ back to Li _\bb_\ba_\bc_\bk _\bt_\bo _\bE_\bm b\bba\bac\bck\bk t\bto\bo s\bsy\bym\bmb\bbo\bol\bli\bic\bc back to literal _\bb_\ba_\bc_\bk _\bt_\bo _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bs
+ back to normal
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.7 2015/02/07 16:39:44 schwarze Exp $
+
+REGRESS_TARGETS = badarg break broken inputlines lines synopsis
+LINT_TARGETS = badarg broken
+
+SKIP_TMAN ?= badarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd June 30, 2010
+.Dt BK-BADARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bk-badarg
+.Nd bad arguments after Bk
+.Sh SYNOPSIS
+.Nm
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x
+.Bk -badarg
+.Op o Ar a
+.Ek
+.Pp
+.Nm
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x
+.Bk -lines
+.Op o Ar a
+.Ek tail argument
+.Pp
+.Nm
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x
+.Bk -line
+.Op o Ar a
+.Ek
+.Pp
+.Nm
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x
+.Bk
+.Op o Ar a
+.Ek
+.Pp
+.Nm
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x
+.Bk -words -murks bogus
+.Op o Ar a
+.Ek
+.Sh DESCRIPTION
+Here is an empty keep:
+.Bk -words
+.Ek
+End of test document.
--- /dev/null
+BK-BADARG(1) General Commands Manual BK-BADARG(1)
+
+N\bNA\bAM\bME\bE
+ B\bBk\bk-\b-b\bba\bad\bda\bar\brg\bg - bad arguments after Bk
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ B\bBk\bk-\b-b\bba\bad\bda\bar\brg\bg _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [o _\ba]
+
+ B\bBk\bk-\b-b\bba\bad\bda\bar\brg\bg _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [o _\ba]
+
+ B\bBk\bk-\b-b\bba\bad\bda\bar\brg\bg _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [o _\ba]
+
+ B\bBk\bk-\b-b\bba\bad\bda\bar\brg\bg _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [o _\ba]
+
+ B\bBk\bk-\b-b\bba\bad\bda\bar\brg\bg _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [o _\ba]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Here is an empty keep: End of test document.
+
+OpenBSD June 30, 2010 OpenBSD
--- /dev/null
+mandoc: badarg.in:13:5: ERROR: skipping excess arguments: Bk ... -badarg
+mandoc: badarg.in:22:5: ERROR: skipping excess arguments: Bk ... -lines
+mandoc: badarg.in:24:2: ERROR: skipping all arguments: Ek tail argument
+mandoc: badarg.in:31:5: ERROR: skipping excess arguments: Bk ... -line
+mandoc: badarg.in:49:12: ERROR: skipping excess arguments: Bk ... -murks
+mandoc: badarg.in:54:2: WARNING: empty block: Bk
--- /dev/null
+.Dd $Mdocdate: February 8 2017 $
+.Dt BK-BREAK 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bk-break
+.Nd handling of word keeps
+.Sh DESCRIPTION
+Even though it is called a word keep,
+.Bk -words
+it will not keep words together in free-form text.
+.Ek
+However, even the noop macro
+.Bk -words
+.No is sufficient to let the keep take effect .
+.Ek
+Even text generated in pre-handlers must be kept together with
+the text following it:
+.Bk -words
+.Xr one 1 No and Xr two 2
+.Ek
+should be on the same line.
+.Pp
+Including the whole output line into the keep is not required,
+including just the macros to be kept together is sufficient:
+.Pp
+.Nm
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x
+.Bk -words
+.Op o Ar a
+.Ek
+.Pp
+.Bk -words
+.Nm
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x x x
+.Ar x x x x x x
+.Op o Ar a
+.Ek
+.Pp
+Even text printed without spacing must be kept together
+with the text following it:
+.Pp
+.Bk -words
+.Fn xxxxxxxxxxxxxxxxxxxx "xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx" xxxxxxxxxxxxxxxxxxxx
+.Pp
+.Fo xxxxxxxxxxxxxxxxxxxx
+.Fa "xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx" xxxxxxxxxxxxxxxxxxxx
+.Fc
+.Ek
--- /dev/null
+BK-BREAK(1) General Commands Manual BK-BREAK(1)
+
+N\bNA\bAM\bME\bE
+ B\bBk\bk-\b-b\bbr\bre\bea\bak\bk - handling of word keeps
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Even though it is called a word keep, it will not keep words together in
+ free-form text. However, even the noop macro
+ is sufficient to let the keep take effect. Even text generated in pre-
+ handlers must be kept together with the text following it:
+ one(1) and two(2) should be on the same line.
+
+ Including the whole output line into the keep is not required, including
+ just the macros to be kept together is sufficient:
+
+ B\bBk\bk-\b-b\bbr\bre\bea\bak\bk _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [o _\ba]
+
+ B\bBk\bk-\b-b\bbr\bre\bea\bak\bk _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [o _\ba]
+
+ Even text printed without spacing must be kept together with the text
+ following it:
+
+ x\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bx(_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx
+ _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx, _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx)
+
+ x\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bx(_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx, _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx)
+
+OpenBSD December 25, 2013 OpenBSD
--- /dev/null
+.Dd February 7, 2015
+.Dt BK-BROKEN 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bk-broken
+.Nd word keep broken by another block
+.Sh DESCRIPTION
+before keep
+.Bk -words
+.Sh CAVEATS
+next section
--- /dev/null
+BK-BROKEN(1) General Commands Manual BK-BROKEN(1)
+
+N\bNA\bAM\bME\bE
+ B\bBk\bk-\b-b\bbr\bro\bok\bke\ben\bn - word keep broken by another block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ before keep
+
+C\bCA\bAV\bVE\bEA\bAT\bTS\bS
+ next section
+
+OpenBSD February 7, 2015 OpenBSD
--- /dev/null
+mandoc: broken.in:10:2: ERROR: inserting missing end of block: Sh breaks Bk
+mandoc: broken.in:9:2: WARNING: empty block: Bk
--- /dev/null
+.Dd December 24, 2010
+.Dt BK-INPUTLINES 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bk-inputlines
+.Nd effect of input lines breaks on word keeps
+.Sh SYNOPSIS
+.Nm
+.Ar x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.Bk -words
+.Oo Oo No a Oc Oo No b Oc Oc Pq one line
+.Ek
+.Pp
+.Nm
+.Ar x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.Bk -words
+.Oo
+.Oo No a Oc Oo No b Oc Oc Pq "break after first Oo"
+.Ek
+.Pp
+.Nm
+.Ar x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.Bk -words
+.Oo Oo
+.No a Oc Oo b Oc Oc Pq "break after second Oo"
+.Ek
+.Pp
+.Nm
+.Ar x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.Bk -words
+.Oo Oo No a
+.Oc Oo No b Oc Oc Pq "break before first Oc"
+.Ek
+.Pp
+.Nm
+.Ar x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.Bk -words
+.Oo Oo No a Oc
+.Oo No b Oc Oc Pq "break after first Oc"
+.Ek
+.Pp
+.Nm
+.Ar x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.Bk -words
+.Oo Oo No a Oc Oo
+.No b Oc Oc Pq "break after third Oo"
+.Ek
+.Pp
+.Nm
+.Ar x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.Bk -words
+.Oo a No b Oc
+.Ek
+.Pp
+.Nm
+.Ar x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.Bk -words
+.Oo a
+.No b Oc
+.Ek
+.Pp
+.Nm
+.Ar x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.Bk -words
+.Oo a Oc No b
+.Ek
+.Pp
+.Nm
+.Ar x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.Bk -words
+.Oo a Oc
+.No b
+.Ek
--- /dev/null
+BK-INPUTLINES(1) General Commands Manual BK-INPUTLINES(1)
+
+N\bNA\bAM\bME\bE
+ B\bBk\bk-\b-i\bin\bnp\bpu\but\btl\bli\bin\bne\bes\bs - effect of input lines breaks on word keeps
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ B\bBk\bk-\b-i\bin\bnp\bpu\but\btl\bli\bin\bne\bes\bs _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [[a] [b]] (one line)
+
+ B\bBk\bk-\b-i\bin\bnp\bpu\but\btl\bli\bin\bne\bes\bs _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [[a] [b]] (break after first Oo)
+
+ B\bBk\bk-\b-i\bin\bnp\bpu\but\btl\bli\bin\bne\bes\bs _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [[a] [b]] (break after second Oo)
+
+ B\bBk\bk-\b-i\bin\bnp\bpu\but\btl\bli\bin\bne\bes\bs _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [[a] [b]] (break before first Oc)
+
+ B\bBk\bk-\b-i\bin\bnp\bpu\but\btl\bli\bin\bne\bes\bs _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx [[a]
+ [b]] (break after first Oc)
+
+ B\bBk\bk-\b-i\bin\bnp\bpu\but\btl\bli\bin\bne\bes\bs _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [[a] [b]] (break after third Oo)
+
+ B\bBk\bk-\b-i\bin\bnp\bpu\but\btl\bli\bin\bne\bes\bs _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [a b]
+
+ B\bBk\bk-\b-i\bin\bnp\bpu\but\btl\bli\bin\bne\bes\bs _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx [a
+ b]
+
+ B\bBk\bk-\b-i\bin\bnp\bpu\but\btl\bli\bin\bne\bes\bs _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx
+ [a] b
+
+ B\bBk\bk-\b-i\bin\bnp\bpu\but\btl\bli\bin\bne\bes\bs _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx _\bx [a]
+ b
+
+OpenBSD December 24, 2010 OpenBSD
--- /dev/null
+.Dd April 12, 2010
+.Dt BK-LINES 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bk-lines
+.Nd handling of line keeps
+.Sh DESCRIPTION
+.Bd -literal
+1
+2
+3
+4
+5
+6
+7
+8
+9
+11
+12
+13
+14
+15
+16
+17
+18
+19
+21
+22
+23
+24
+25
+26
+27
+28
+29
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+.Ed
+.Ss with keep
+.Bk -lines
+.Bd -literal
+1
+2
+3
+4
+5
+6
+7
+8
+9
+11
+12
+13
+14
+15
+16
+17
+18
+19
+21
+22
+23
+24
+25
+26
+27
+28
+29
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+.Ed
+.Ek
--- /dev/null
+BK-LINES(1) General Commands Manual BK-LINES(1)
+
+N\bNA\bAM\bME\bE
+ B\bBk\bk-\b-l\bli\bin\bne\bes\bs - handling of line keeps
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+
+ w\bwi\bit\bth\bh k\bke\bee\bep\bp
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+
+OpenBSD April 12, 2010 OpenBSD
--- /dev/null
+.Dd $Mdocdate: February 8 2017 $
+.Dt BK-SYNOPSIS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bk-synopsis
+.Nd automatic keeps in the synopsis
+.Sh SYNOPSIS
+In the synopsis, almost all macros do not show
+.No the word keep effect they would get in a \&Bk block.
+.Pp
+.Fn xxxxxxxxxxxxxxxxxxxx "xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx" xxxxxxxxxxxxxxxxxxxx
+.Fo xxxxxxxxxxxxxxxxxxxx
+.Fa "xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx" xxxxxxxxxxxxxxxxxxxx
+.Fc
+.Pp
+Only \&Nm, used as a block macro, does:
+.Pp
+.Nm ksh
+.Op Fl +abCefhiklmnpruvXx
+.Op Fl +o Ar option
+.Op Fl c Ar string \*(Ba Fl s \*(Ba Ar file Op Ar argument ...
+.Bk -words
+.Ek
+.Nm ksh
+.Op Fl +abCefhiklmnpruvXx
+.Op Fl +o Ar option
+.Op Fl c Ar string \*(Ba Fl s \*(Ba Ar file Op Ar argument ...
+.Sh DESCRIPTION
+.Nm ksh
+.Op Fl +abCefhiklmnpruvXx
+.Op Fl +o Ar option
+.Op Fl c Ar string \*(Ba Fl s \*(Ba Ar file Op Ar argument ...
--- /dev/null
+BK-SYNOPSIS(1) General Commands Manual BK-SYNOPSIS(1)
+
+N\bNA\bAM\bME\bE
+ B\bBk\bk-\b-s\bsy\byn\bno\bop\bps\bsi\bis\bs - automatic keeps in the synopsis
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ In the synopsis, almost all macros do not show the word keep effect they
+ would get in a Bk block.
+
+ x\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bx(_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx,
+ _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx);
+
+ x\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bx(_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx,
+ _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx);
+
+ Only Nm, used as a block macro, does:
+
+ k\bks\bsh\bh [-\b-+\b+a\bab\bbC\bCe\bef\bfh\bhi\bik\bkl\blm\bmn\bnp\bpr\bru\buv\bvX\bXx\bx] [-\b-+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn]
+ [-\b-c\bc _\bs_\bt_\br_\bi_\bn_\bg | -\b-s\bs | _\bf_\bi_\bl_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt _\b._\b._\b.]]
+ k\bks\bsh\bh [-\b-+\b+a\bab\bbC\bCe\bef\bfh\bhi\bik\bkl\blm\bmn\bnp\bpr\bru\buv\bvX\bXx\bx] [-\b-+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn]
+ [-\b-c\bc _\bs_\bt_\br_\bi_\bn_\bg | -\b-s\bs | _\bf_\bi_\bl_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt _\b._\b._\b.]]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ k\bks\bsh\bh [-\b-+\b+a\bab\bbC\bCe\bef\bfh\bhi\bik\bkl\blm\bmn\bnp\bpr\bru\buv\bvX\bXx\bx] [-\b-+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [-\b-c\bc _\bs_\bt_\br_\bi_\bn_\bg | -\b-s\bs | _\bf_\bi_\bl_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt
+ _\b._\b._\b.]]
+
+OpenBSD December 25, 2013 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.31 2016/10/17 19:00:16 schwarze Exp $
+
+REGRESS_TARGETS = item inset diag ohang bullet dash enum hang tag
+REGRESS_TARGETS += column colNoIt extend nested offset secstart
+
+REGRESS_TARGETS += notype multitype badargs
+REGRESS_TARGETS += empty noIt emptyhead emptytag emptyitem multitag
+REGRESS_TARGETS += bareIt bareTa unclosed break breakingIt broken
+
+UTF8_TARGETS = dash
+
+LINT_TARGETS = column notype badargs tag
+LINT_TARGETS += empty noIt emptyhead emptytag emptyitem
+LINT_TARGETS += bareIt bareTa break breakingIt broken
+
+# groff-1.22.3 defects:
+# - lists with missing or late type ruin indentation
+# - empty lists ruin indentation and sometimes cause empty lines
+# - breaking lists continue indefinitely
+# - breaking items sometimes ruin indentation, sometimes abort processing
+# - breaking a list aborts processing
+# - empty -tag item heads lose the blank line and the indentation
+
+SKIP_GROFF ?= notype empty break breakingIt broken emptytag
+
+SKIP_TMAN ?= column colNoIt multitype multitag bareTa break broken
+
+# Fixing the indentation in long .IP and .TP tags in -man -Tascii
+# caused a minor regression in -Tman that is not trivial to fix,
+# so disable the related test for now.
+
+SKIP_TMAN += tag
+
+# Empty heads are still mishandled by -Tman.
+
+SKIP_TMAN += emptyhead emptytag
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd February 4, 2015
+.Dt BL-BADARGS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-badargs
+.Nd list with bad arguments
+.Sh DESCRIPTION
+trailing -offset:
+.Bl -bullet -offset
+.It
+is ignored
+.El
+trailing -width:
+.Bl -bullet -width
+.It
+bullet
+.El
+.Bl -dash -width
+.It
+dash
+.El
+.\" XXX Doesn't work with -Tman yet.
+.\" .Bl -enum -width
+.\" .It
+.\" enum
+.\" .El
+.Bl -hyphen -width
+.It
+hyphen
+.El
+.Bl -hang -width
+.It hang
+item
+.El
+.Bl -tag -width
+.It tag
+Here we need a very long line.
+It must be sufficiently long such that it wraps the line.
+.El
+double type:
+.Bl -bullet -compact -enum
+.It
+bullet enum
+.El
+.Bl -enum -compact -bullet
+.It
+enum bullet
+.El
+unknown arguments:
+.Bl -bullet -bogus args
+.It
+bullet text
+.El
+.Bl -enum -bogus args
+.It
+enum text
+.El
+.Bl -inset -bogus args
+.It inset
+text
+.El
+.Bl -item -bogus args
+.It
+item text
+.El
+.Bl -ohang -bogus args
+.It ohang
+text
+.El
+.Bl -tag -width Ds -bogus args
+.It tag
+text
+.El
+double arguments:
+.Bl -tag -compact -offset 20n -width 20n -compact -offset 2n -width 6n
+.It last
+wins
+.El tail argument
--- /dev/null
+BL-BADARGS(1) General Commands Manual BL-BADARGS(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-b\bba\bad\bda\bar\brg\bgs\bs - list with bad arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ trailing -offset:
+
+ +\b+\bo\bo is ignored
+ trailing -width:
+
+ +\b+\bo\bo bullet
+
+ -\b- dash
+
+ -\b- hyphen
+
+ hang item
+
+ tag
+ Here we need a very long line. It must be sufficiently long such that
+ it wraps the line.
+ double type:
+ +\b+\bo\bo bullet enum
+ 1. enum bullet
+ unknown arguments:
+
+ +\b+\bo\bo bullet text
+
+ 1. enum text
+
+ inset text
+
+ item text
+
+ ohang
+ text
+
+ tag text
+ double arguments:
+ last wins
+
+OpenBSD February 4, 2015 OpenBSD
--- /dev/null
+mandoc: badargs.in:78:2: ERROR: skipping all arguments: El tail argument
+mandoc: badargs.in:9:13: WARNING: empty argument, using 0n: Bl -offset
+mandoc: badargs.in:14:13: WARNING: empty argument, using 0n: Bl -width
+mandoc: badargs.in:18:11: WARNING: empty argument, using 0n: Bl -width
+mandoc: badargs.in:27:13: WARNING: empty argument, using 0n: Bl -width
+mandoc: badargs.in:31:11: WARNING: empty argument, using 0n: Bl -width
+mandoc: badargs.in:35:10: WARNING: empty argument, using 0n: Bl -width
+mandoc: badargs.in:41:2: WARNING: skipping duplicate list type: Bl -enum
+mandoc: badargs.in:45:2: WARNING: skipping duplicate list type: Bl -bullet
+mandoc: badargs.in:50:13: ERROR: skipping excess arguments: Bl ... -bogus
+mandoc: badargs.in:54:11: ERROR: skipping excess arguments: Bl ... -bogus
+mandoc: badargs.in:58:12: ERROR: skipping excess arguments: Bl ... -bogus
+mandoc: badargs.in:62:11: ERROR: skipping excess arguments: Bl ... -bogus
+mandoc: badargs.in:66:12: ERROR: skipping excess arguments: Bl ... -bogus
+mandoc: badargs.in:70:20: ERROR: skipping excess arguments: Bl ... -bogus
+mandoc: badargs.in:75:42: WARNING: duplicate argument: Bl -compact
+mandoc: badargs.in:75:51: WARNING: duplicate argument: Bl -offset 2n
+mandoc: badargs.in:75:62: WARNING: duplicate argument: Bl -width 6n
--- /dev/null
+.Dd August 16, 2014
+.Dt BL-BAREIT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-bareIt
+.Nd item macro outside list
+.Sh DESCRIPTION
+initial text
+.It argument
+.Bl -dash
+.It
+item
+.El
+.It argument
+final text
--- /dev/null
+BL-BAREIT(1) General Commands Manual BL-BAREIT(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-b\bba\bar\bre\beI\bIt\bt - item macro outside list
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text
+
+ -\b- item
+ final text
+
+OpenBSD August 16, 2014 OpenBSD
--- /dev/null
+mandoc: bareIt.in:9:2: ERROR: skipping item outside list: It argument
+mandoc: bareIt.in:14:2: ERROR: skipping item outside list: It argument
+mandoc: bareIt.in:9:2: WARNING: skipping paragraph macro: br before Bl
--- /dev/null
+.Dd November 12, 2012
+.Dt TA-BARE 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ta-bare
+.Nd bare tabular column macro
+.Sh DESCRIPTION
+initial text
+.Ta ignored arguments
+middle text
+.Bl -item -offset indent
+.It
+.Ta ignored arguments
+indented text
+.El
+middle text
+.Bl -dash
+.It Ta ignored arguments
+indented text
+.El
+middle text
+.Bl -column "a" "b" -offset indent
+.It a Ta b
+.El
+.It ignored arguments
+final text
--- /dev/null
+TA-BARE(1) General Commands Manual TA-BARE(1)
+
+N\bNA\bAM\bME\bE
+ T\bTa\ba-\b-b\bba\bar\bre\be - bare tabular column macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text middle text
+
+ indented text
+ middle text
+
+ -\b- indented text
+ middle text
+
+ a b
+ final text
+
+OpenBSD November 12, 2012 OpenBSD
--- /dev/null
+mandoc: bareTa.in:9:2: ERROR: skipping column outside column list: Ta
+mandoc: bareTa.in:13:2: ERROR: skipping column outside column list: Ta
+mandoc: bareTa.in:18:5: ERROR: skipping column outside column list: Ta
+mandoc: bareTa.in:25:2: ERROR: skipping item outside list: It ignored arguments
+mandoc: bareTa.in:18:2: ERROR: skipping all arguments: It ignored arguments
--- /dev/null
+.Dd August 20, 2016
+.Dt BL-BREAK 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-break
+.Nd list breaking another block
+.Sh DESCRIPTION
+before both
+.Bl -enum -offset indent
+.It
+before bracket
+.Bo inside both
+.El
+after list
+.Bc
+in between
+.Bl -enum -offset indent
+.It
+before bracket
+.Bo inside both
+.El
+.It
+stray item
+.Bc
+after both
+.Sh EXAMPLES
+.Bl -enum -offset indent
+.It
+before display
+.Bd -ragged -offset indent
+inside both
+.El
+after display
+.Ed
+in between
+.Bl -enum -offset indent
+.It
+before display
+.Bd -ragged -offset indent
+inside both
+.El
+.It
+stray item
+.Ed
+after both
+.Bl -enum -offset indent
+.It
+before table
+.Bl -column column
+.It column
+.Bd -ragged -offset indent
+inside display
+.El
+first line after table
+second line after table
+.El
+after list
+.Sh DIAGNOSTICS
+.Bl -column column
+.It column
+.Bd -ragged -offset indent
+inside display
+.El
+.Ta stray tab
+after stray tab
+.Ed
+after display
+.Sh CAVEATS
+.Bl -hang
+.It before broken block Bo inside both
+.El
+after list
+.Sh BUGS
+.Bl -enum
+.It before broken block Bo inside both
+.El
+after list
--- /dev/null
+BL-BREAK(1) General Commands Manual BL-BREAK(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-b\bbr\bre\bea\bak\bk - list breaking another block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ before both
+
+ 1. before bracket [inside both after list]
+ in between
+
+ 1. before bracket [inside both
+ stray item]
+ after both
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
+ 1. before display
+
+ inside both after display
+ in between
+
+ 1. before display
+
+ inside both
+ stray item
+ after both
+
+ 1. before table
+
+ column
+
+ inside display first line after table second line after
+ table after list
+
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ column
+
+ inside display after stray tab
+
+ after display
+
+C\bCA\bAV\bVE\bEA\bAT\bTS\bS
+ before broken block [inside both after list]
+
+B\bBU\bUG\bGS\bS
+ 1.
+
+OpenBSD August 20, 2016 OpenBSD
--- /dev/null
+mandoc: break.in:13:2: WARNING: blocks badly nested: Bl breaks Bo
+mandoc: break.in:21:2: WARNING: blocks badly nested: Bl breaks Bo
+mandoc: break.in:22:2: ERROR: skipping item outside list: It
+mandoc: break.in:32:2: WARNING: blocks badly nested: Bl breaks Bd
+mandoc: break.in:41:2: WARNING: blocks badly nested: Bl breaks Bd
+mandoc: break.in:42:2: ERROR: skipping item outside list: It
+mandoc: break.in:53:2: WARNING: blocks badly nested: Bl breaks Bd
+mandoc: break.in:56:2: WARNING: blocks badly nested: Bl breaks Bd
+mandoc: break.in:58:2: ERROR: inserting missing end of block: Sh breaks Bd
+mandoc: break.in:63:2: WARNING: blocks badly nested: Bl breaks Bd
+mandoc: break.in:64:2: ERROR: skipping column outside column list: Ta
+mandoc: break.in:71:2: WARNING: blocks badly nested: Bl breaks Bo
+mandoc: break.in:73:2: ERROR: inserting missing end of block: Sh breaks Bo
+mandoc: break.in:76:2: WARNING: blocks badly nested: Bl breaks Bo
+mandoc: break.in:75:25: ERROR: appending missing end of block: Bo
+mandoc: break.in:74:2: ERROR: appending missing end of block: Bl
+mandoc: break.in:75:2: WARNING: empty list item: Bl -enum It
+mandoc: break.in:75:2: ERROR: skipping all arguments: It before broken block
--- /dev/null
+.Dd February 3, 2015
+.Dt BL-BREAKINGIT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-breakingIt
+.Nd items breaking other blocks
+.Sh DESCRIPTION
+.Ss Breaking partial explicit macros
+.Bl -tag -width Ds
+Stray text.
+.Ao
+More stray text.
+.It tag
+Tagged text.
+.El
+.Bl -bullet
+Stray text.
+.Ao
+More stray text.
+.It
+Bullet point.
+.El
+.Bl -tag -width Ds
+.It tag
+Tagged text.
+.Ao
+More tagged text.
+.It tag2
+Yet more tagged text.
+.El
+.Bl -bullet
+.It
+Item text.
+.Ao
+More item text.
+.It
+Bullet point.
+.El
+.Ss Breaking full explicit macros
+.Bl -tag -width Ds
+Stray text.
+.Bd -ragged -offset indent
+More stray text.
+.It tag
+Tagged text.
+.El
+.Bl -bullet
+Stray text.
+.Bd -ragged -offset indent
+More stray text.
+.It
+Bullet point.
+.El
+.Bl -tag -width Ds
+.It tag
+Tagged text.
+.Bd -ragged -offset indent
+Display text.
+.It tag2
+More tagged text.
+.El
+.Bl -bullet
+.It
+Item text.
+.Bd -ragged -offset indent
+Display text.
+.It
+Bullet point.
+.El
--- /dev/null
+BL-BREAKINGIT(1) General Commands Manual BL-BREAKINGIT(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-b\bbr\bre\bea\bak\bki\bin\bng\bgI\bIt\bt - items breaking other blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ B\bBr\bre\bea\bak\bki\bin\bng\bg p\bpa\bar\brt\bti\bia\bal\bl e\bex\bxp\bpl\bli\bic\bci\bit\bt m\bma\bac\bcr\bro\bos\bs
+ Stray text. <More stray text.>
+
+ tag Tagged text.
+ Stray text. <More stray text.>
+
+ +\b+\bo\bo Bullet point.
+
+ tag Tagged text. <More tagged text.>
+
+ tag2 Yet more tagged text.
+
+ +\b+\bo\bo Item text. <More item text.>
+
+ +\b+\bo\bo Bullet point.
+
+ B\bBr\bre\bea\bak\bki\bin\bng\bg f\bfu\bul\bll\bl e\bex\bxp\bpl\bli\bic\bci\bit\bt m\bma\bac\bcr\bro\bos\bs
+ Stray text.
+
+ More stray text.
+
+ tag Tagged text.
+ Stray text.
+
+ More stray text.
+
+ +\b+\bo\bo Bullet point.
+
+ tag Tagged text.
+
+ Display text.
+
+ tag2 More tagged text.
+
+ +\b+\bo\bo Item text.
+
+ Display text.
+
+ +\b+\bo\bo Bullet point.
+
+OpenBSD February 3, 2015 OpenBSD
--- /dev/null
+mandoc: breakingIt.in:13:2: ERROR: inserting missing end of block: It breaks Ao
+mandoc: breakingIt.in:20:2: ERROR: inserting missing end of block: It breaks Ao
+mandoc: breakingIt.in:28:2: ERROR: inserting missing end of block: It breaks Ao
+mandoc: breakingIt.in:36:2: ERROR: inserting missing end of block: It breaks Ao
+mandoc: breakingIt.in:44:2: ERROR: inserting missing end of block: It breaks Bd
+mandoc: breakingIt.in:51:2: ERROR: inserting missing end of block: It breaks Bd
+mandoc: breakingIt.in:59:2: ERROR: inserting missing end of block: It breaks Bd
+mandoc: breakingIt.in:67:2: ERROR: inserting missing end of block: It breaks Bd
+mandoc: breakingIt.in:10:1: WARNING: moving content out of list: text
+mandoc: breakingIt.in:11:2: WARNING: moving content out of list: Ao
+mandoc: breakingIt.in:17:1: WARNING: moving content out of list: text
+mandoc: breakingIt.in:18:2: WARNING: moving content out of list: Ao
+mandoc: breakingIt.in:41:1: WARNING: moving content out of list: text
+mandoc: breakingIt.in:42:2: WARNING: moving content out of list: Bd
+mandoc: breakingIt.in:48:1: WARNING: moving content out of list: text
+mandoc: breakingIt.in:49:2: WARNING: moving content out of list: Bd
--- /dev/null
+.Dd February 12, 2015
+.Dt BL-BROKEN 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-broken
+.Nd list broken by another block
+.Sh DESCRIPTION
+before both
+.Bo before list
+.Bl -enum -offset indent
+.It
+inside both
+.Bc
+after bracket
+.El
+after list
+.Bo before list
+.Bl -enum -offset indent
+.It
+inside list
+.Bd -ragged -offset indent
+inside display
+.Bc
+after bracket
+.It
+next item
+.El
+after list
--- /dev/null
+BL-BROKEN(1) General Commands Manual BL-BROKEN(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-b\bbr\bro\bok\bke\ben\bn - list broken by another block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ before both [before list
+
+ 1. inside both] after bracket
+ after list [before list
+
+ 1. inside list
+
+ inside display] after bracket
+
+ 2. next item
+ after list
+
+OpenBSD February 12, 2015 OpenBSD
--- /dev/null
+mandoc: broken.in:13:2: WARNING: blocks badly nested: Bo breaks Bl
+mandoc: broken.in:23:2: WARNING: blocks badly nested: Bo breaks Bd
+mandoc: broken.in:25:2: ERROR: inserting missing end of block: It breaks Bd
--- /dev/null
+.Dd December 25, 2014
+.Dt BL-BULLET 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-bullet
+.Nd bullet lists
+.Sh DESCRIPTION
+.Bl -bullet -width -4n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -bullet -width -3n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -bullet -width -2n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -bullet -width -1n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -bullet -width 0n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -bullet -width 1n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -bullet -width 2n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -bullet -width 3n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -bullet -width 4n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -bullet -width 5n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -bullet -width 6n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -bullet -width 7n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -bullet -compact
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
--- /dev/null
+BL-BULLET(1) General Commands Manual BL-BULLET(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-b\bbu\bul\bll\ble\bet\bt - bullet lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ +\b+\bo\bo x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+OpenBSD December 25, 2014 OpenBSD
--- /dev/null
+.Dd August 20, 2016
+.Dt BL-COLNOIT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-colNoIt
+.Nd column lists without item macros
+.Sh DESCRIPTION
+.Bl -column "a" "b"
+.Sy a Ta b
+.Em c Ta d
+.El
+.Bl -column "a" "b"
+a b
+c d
+.El
--- /dev/null
+BL-COLNOIT(1) General Commands Manual BL-COLNOIT(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-c\bco\bol\blN\bNo\boI\bIt\bt - column lists without item macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ a\ba b
+ _\bc d
+
+ a b
+ c d
+
+OpenBSD August 20, 2016 OpenBSD
--- /dev/null
+.Dd October 14, 2015
+.Dt BL-COLUMN 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-column
+.Nd lists with multiple columns
+.Sh DESCRIPTION
+.Bl -column "a"
+.It a
+.El
+.Bl -column "a" "b"
+.It a Ta b
+.El
+.\" avoid "c" which means "cm"
+.Bl -column "a" "b" "cc"
+.It a Ta b Ta cc
+.It a b cc
+.It "a" b cc
+.It "a b" cc
+.It "a b cc"
+.El
+.Bl -column "a" "b" "cc" "d"
+.It a Ta b Ta cc Ta d
+.El
+.Bl -column "a" "b" "cc" "d" "e"
+.It a Ta b Ta cc Ta d Ta e
+.El
+.\" Probing up to the utter limits of groff.
+.\" With more than 5 columns or more than 78 characters per line,
+.\" groff .Bl -column turns completely mad.
+.\" mandoc can do more, but it's no use testing that.
+.Bd -literal
+5 + 35 + 4 + 34 = 78:
+.Ed
+.Bl -column "x35xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "x34xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+.It x35xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Ta x34xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+.It a Ta b
+.El
+.Bd -literal
+5 + (22+4)*2 + 21 = 78:
+.Ed
+.Bl -column "x22xxxxxxxxxxxxxxxxxxx" "x22xxxxxxxxxxxxxxxxxxx" "x21xxxxxxxxxxxxxxxxxx"
+.It x22xxxxxxxxxxxxxxxxxxx Ta x22xxxxxxxxxxxxxxxxxxx Ta x21xxxxxxxxxxxxxxxxxx
+.It a Ta b Ta c
+.El
+.Bd -literal
+5 + 16 + (4+15)*3 = 78:
+.Ed
+.Bl -column "x16xxxxxxxxxxxxx" "x15xxxxxxxxxxxx" "x15xxxxxxxxxxxx" "x15xxxxxxxxxxxx"
+.It x16xxxxxxxxxxxxx Ta x15xxxxxxxxxxxx Ta x15xxxxxxxxxxxx Ta x15xxxxxxxxxxxx
+.It a Ta b Ta c Ta d
+.El
+.Bd -literal
+5 + 13 + (3+12)*4 = 78:
+.Ed
+.Bl -column "x13xxxxxxxxxx" "x12xxxxxxxxx" "x12xxxxxxxxx" "x12xxxxxxxxx" "x12xxxxxxxxx"
+.It x13xxxxxxxxxx Ta x12xxxxxxxxx Ta x12xxxxxxxxx Ta x12xxxxxxxxx Ta x12xxxxxxxxx
+.It a Ta b Ta c Ta d Ta e
+.El
+.\" Trailing white space in phrases.
+.Bl -column "aaaa" "bbbb"
+.It "a" Ta "b"
+.It "a " Ta "b"
+.It "a " Ta "b"
+.It a b
+.It a b
+.It a b
+.El
+.\" Wrong number of columns.
+.Bl -column "a" "b"
+.It "a"
+.It "a" Ta "b"
+.It "a" Ta "b" Ta "c"
+.It "a" Ta "b" Ta "c" Ta "d"
+.It "a" Ta "b" Ta "c" Ta "d" Ta "e"
+.El
+.\" Mixed tab and Ta
+.Bl -column a b c d
+.It a b c d
+.It a b c Ta d
+.It a b Ta c d
+.It a b Ta c Ta d
+.It a Ta b c d
+.It a Ta b c Ta d
+.It a Ta b Ta c d
+.It a Ta b Ta c Ta d
+.El
+.\" Macros before and after tabs
+.Bl -column "aa" "OpenBSD OpenBSD OpenBSD"
+.It aa Ta Ox Ox Ox Ta tab-tab
+.It aa Ta Ox Ox Ox tab-ta
+.It aa Ox Ox Ox Ta ta-tab
+.It aa Ox Ox Ox ta-ta
+.It aa Ox Ox Ox ta-bl/ta
+.It aa Ox Ox Ox ta/bl-ta
+.It aa Ox Ox Ox ta/bl-bl/ta
+.It aa Ta bb Ta
+ta at eol
+.It aa bb
+tab at eol
+.El
+.\" Interrupted column list
+.Bl -column "aa" -width 6n -compact "bb" "cc"
+.It aa Ta bb Ta cc Ta dd
+.El
--- /dev/null
+BL-COLUMN(1) General Commands Manual BL-COLUMN(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-c\bco\bol\blu\bum\bmn\bn - lists with multiple columns
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ a
+
+ a b
+
+ a b cc
+ a b cc
+ a b cc
+ a b cc
+ a b cc
+
+ a b cc d
+
+ a b cc d e
+
+ 5 + 35 + 4 + 34 = 78:
+
+ x35xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x34xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ a b
+
+ 5 + (22+4)*2 + 21 = 78:
+
+ x22xxxxxxxxxxxxxxxxxxx x22xxxxxxxxxxxxxxxxxxx x21xxxxxxxxxxxxxxxxxx
+ a b c
+
+ 5 + 16 + (4+15)*3 = 78:
+
+ x16xxxxxxxxxxxxx x15xxxxxxxxxxxx x15xxxxxxxxxxxx x15xxxxxxxxxxxx
+ a b c d
+
+ 5 + 13 + (3+12)*4 = 78:
+
+ x13xxxxxxxxxx x12xxxxxxxxx x12xxxxxxxxx x12xxxxxxxxx x12xxxxxxxxx
+ a b c d e
+
+ a b
+ a b
+ a b
+ a b
+ a b
+ a b
+
+ a
+ a b
+ a b c
+ a b cd
+ a b cde
+
+ a b c d
+ a b c d
+ a b c d
+ a b c d
+ a b c d
+ a b c d
+ a b c d
+ a b c d
+
+ aa OpenBSD OpenBSD OpenBSD tab-tab
+ aa OpenBSD OpenBSD Ox tab-ta
+ aa Ox OpenBSD OpenBSD ta-tab
+ aa Ox OpenBSD Ox ta-ta
+ aa Ox OpenBSD OpenBSD ta-bl/ta
+ aa OpenBSD OpenBSD Ox ta/bl-ta
+ aa OpenBSD OpenBSD OpenBSD ta/bl-bl/ta
+ aa bb ta at eol
+ aa bb tab at eol
+ aa bb cc dd
+
+OpenBSD October 14, 2015 OpenBSD
--- /dev/null
+mandoc: column.in:71:2: WARNING: wrong number of cells: 2 columns, 1 cells
+mandoc: column.in:74:2: WARNING: wrong number of cells: 2 columns, 4 cells
+mandoc: column.in:75:2: WARNING: wrong number of cells: 2 columns, 5 cells
+mandoc: column.in:103:18: WARNING: skipping -width argument: Bl -column
--- /dev/null
+.Dd December 25, 2014
+.Dt BL-DASH 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-dash
+.Nd dash and hyphen lists
+.Sh DESCRIPTION
+.Bl -dash -width -4n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -dash -width -3n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -dash -width -2n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -dash -width -1n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -dash -width 0n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hyphen -width 1n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -dash -width 2n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -dash -width 3n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hyphen -width 4n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hyphen -width 5n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -dash -width 6n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -dash -width 7n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -dash -compact
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
--- /dev/null
+BL-DASH(1) General Commands Manual BL-DASH(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-d\bda\bas\bsh\bh - dash and hyphen lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+OpenBSD December 25, 2014 OpenBSD
--- /dev/null
+BL-DASH(1) General Commands Manual BL-DASH(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-d\bda\bas\bsh\bh – dash and hyphen lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+ -\b- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+OpenBSD December 25, 2014 OpenBSD
--- /dev/null
+.Dd April 8, 2014
+.Dt BL-DIAG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-diag
+.Nd section 4 diagnostic lists
+.Sh DESCRIPTION
+.Bl -diag
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -diag
+.It four
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -diag
+.It quint
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -diag
+.It indent
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -diag
+.It septime
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -diag
+.It achtacht
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -diag
+.It neun_neun
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -diag
+.It zehn__zehn
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -diag
+.It This is a very long text contained in the diag item head, it is \
+so long that it overruns the line -
+and here comes the item body.
+.El
+.Pp
+Check that It is not parsed in Bl:
+.Bl -diag -compact
+.It Nx
+.No Nx
+.It Ox
+.No Ox
+.It Fx
+.No Fx
+.El
--- /dev/null
+BL-DIAG(1) General Commands Manual BL-DIAG(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-d\bdi\bia\bag\bg - section 4 diagnostic lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ t\bta\bag\bg x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ f\bfo\bou\bur\br x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ q\bqu\bui\bin\bnt\bt x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ i\bin\bnd\bde\ben\bnt\bt x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ s\bse\bep\bpt\bti\bim\bme\be x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x
+
+ a\bac\bch\bht\bta\bac\bch\bht\bt x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x
+
+ n\bne\beu\bun\bn_\b_n\bne\beu\bun\bn x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x
+
+ z\bze\beh\bhn\bn_\b__\b_z\bze\beh\bhn\bn x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x
+
+ T\bTh\bhi\bis\bs i\bis\bs a\ba v\bve\ber\bry\by l\blo\bon\bng\bg t\bte\bex\bxt\bt c\bco\bon\bnt\bta\bai\bin\bne\bed\bd i\bin\bn t\bth\bhe\be d\bdi\bia\bag\bg i\bit\bte\bem\bm h\bhe\bea\bad\bd,\b, i\bit\bt i\bis\bs s\bso\bo l\blo\bon\bng\bg
+ t\bth\bha\bat\bt i\bit\bt o\bov\bve\ber\brr\bru\bun\bns\bs t\bth\bhe\be l\bli\bin\bne\be -\b- and here comes the item body.
+
+ Check that It is not parsed in Bl:
+ N\bNx\bx NetBSD
+ O\bOx\bx OpenBSD
+ F\bFx\bx FreeBSD
+
+OpenBSD April 8, 2014 OpenBSD
--- /dev/null
+.Dd January 2, 2011
+.Dt BL-EMPTY 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-empty
+.Nd empty lists
+.Sh DESCRIPTION
+bullet list:
+.Bl -bullet
+.El
+column list:
+.Bl -column one two
+.El
+dash list:
+.Bl -dash
+.El
+diag list:
+.Bl -diag
+.El
+enum list:
+.Bl -enum
+.El
+hang list:
+.Bl -hang
+.El
+hyphen list:
+.Bl -hyphen
+.El
+inset list:
+.Bl -inset
+.El
+item list:
+.Bl -item
+.El
+ohang list:
+.Bl -ohang
+.El
+tag list:
+.Bl -tag -width Ds
+.El
+end of test document
--- /dev/null
+BL-EMPTY(1) General Commands Manual BL-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-e\bem\bmp\bpt\bty\by - empty lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ bullet list:
+ column list:
+ dash list:
+ diag list:
+ enum list:
+ hang list:
+ hyphen list:
+ inset list:
+ item list:
+ ohang list:
+ tag list:
+ end of test document
+
+OpenBSD January 2, 2011 OpenBSD
--- /dev/null
+mandoc: empty.in:9:2: WARNING: empty block: Bl
+mandoc: empty.in:12:2: WARNING: empty block: Bl
+mandoc: empty.in:15:2: WARNING: empty block: Bl
+mandoc: empty.in:18:2: WARNING: empty block: Bl
+mandoc: empty.in:21:2: WARNING: empty block: Bl
+mandoc: empty.in:24:2: WARNING: empty block: Bl
+mandoc: empty.in:27:2: WARNING: empty block: Bl
+mandoc: empty.in:30:2: WARNING: empty block: Bl
+mandoc: empty.in:33:2: WARNING: empty block: Bl
+mandoc: empty.in:36:2: WARNING: empty block: Bl
+mandoc: empty.in:39:2: WARNING: empty block: Bl
--- /dev/null
+.Dd July 3, 2014
+.Dt BL-EMPTYHEAD 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-emptyhead
+.Nd lists with empty item heads
+.Sh DESCRIPTION
+hang list:
+.Bl -hang -width 6n
+.It tag
+text
+.It
+no tag before this text
+.It tag
+text
+.El
+ohang list:
+.Bl -ohang
+.It tag
+text
+.It
+no tag before this text
+.It tag
+text
+.El
+inset list:
+.Bl -inset
+.It tag
+text
+.It
+no tag before this text
+.It tag
+text
+.El
+diag list:
+.Bl -diag
+.It tag
+text
+.It
+no tag before this text
+.It tag
+text
+.El
--- /dev/null
+BL-EMPTYHEAD(1) General Commands Manual BL-EMPTYHEAD(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-e\bem\bmp\bpt\bty\byh\bhe\bea\bad\bd - lists with empty item heads
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ hang list:
+
+ tag text
+
+ no tag before this text
+
+ tag text
+ ohang list:
+
+ tag
+ text
+
+ no tag before this text
+
+ tag
+ text
+ inset list:
+
+ tag text
+
+ no tag before this text
+
+ tag text
+ diag list:
+
+ t\bta\bag\bg text
+
+ no tag before this text
+
+ t\bta\bag\bg text
+
+OpenBSD July 3, 2014 OpenBSD
--- /dev/null
+mandoc: emptyhead.in:12:2: WARNING: empty head in list item: Bl -hang It
+mandoc: emptyhead.in:21:2: WARNING: empty head in list item: Bl -ohang It
+mandoc: emptyhead.in:30:2: WARNING: empty head in list item: Bl -inset It
+mandoc: emptyhead.in:39:2: WARNING: empty head in list item: Bl -diag It
--- /dev/null
+.Dd August 10, 2016
+.Dt BL-EMPTYITEM 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-emptyitem
+.Nd lists with fixed heads and empty items
+.Sh DESCRIPTION
+bullet list:
+.Bl -bullet
+.It head argument
+one
+.It
+.It
+three
+.El
+dash list:
+.Bl -dash
+.It
+one
+.It head argument
+.It
+three
+.El
+enum list:
+.Bl -enum
+.It
+one
+.It
+.It head argument
+three
+.El
+hyphen list:
+.Bl -hyphen
+.It Sy head argument
+one
+.It
+.It
+three
+.El
--- /dev/null
+BL-EMPTYITEM(1) General Commands Manual BL-EMPTYITEM(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-e\bem\bmp\bpt\bty\byi\bit\bte\bem\bm - lists with fixed heads and empty items
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ bullet list:
+
+ +\b+\bo\bo one
+
+ +\b+\bo\bo
+
+ +\b+\bo\bo three
+ dash list:
+
+ -\b- one
+
+ -\b-
+
+ -\b- three
+ enum list:
+
+ 1. one
+
+ 2.
+
+ 3. three
+ hyphen list:
+
+ -\b- one
+
+ -\b-
+
+ -\b- three
+
+OpenBSD August 10, 2016 OpenBSD
--- /dev/null
+mandoc: emptyitem.in:10:2: ERROR: skipping all arguments: It head argument
+mandoc: emptyitem.in:12:2: WARNING: empty list item: Bl -bullet It
+mandoc: emptyitem.in:20:2: WARNING: empty list item: Bl -dash It
+mandoc: emptyitem.in:20:2: ERROR: skipping all arguments: It head argument
+mandoc: emptyitem.in:28:2: WARNING: empty list item: Bl -enum It
+mandoc: emptyitem.in:29:2: ERROR: skipping all arguments: It head argument
+mandoc: emptyitem.in:34:2: ERROR: skipping all arguments: It Sy
+mandoc: emptyitem.in:36:2: WARNING: empty list item: Bl -hyphen It
--- /dev/null
+.Dd July 3, 2014
+.Dt BL-EMPTYTAG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-emptytag
+.Nd tag lists with empty item heads
+.Sh DESCRIPTION
+initial text
+.Bl -tag -width 6n
+.It tag
+text
+.It
+no tag before this text
+.It tag
+text
+.El
+final text
--- /dev/null
+BL-EMPTYTAG(1) General Commands Manual BL-EMPTYTAG(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-e\bem\bmp\bpt\bty\byt\bta\bag\bg - tag lists with empty item heads
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text
+
+ tag text
+
+ no tag before this text
+
+ tag text
+ final text
+
+OpenBSD July 3, 2014 OpenBSD
--- /dev/null
+mandoc: emptytag.in:12:2: WARNING: empty head in list item: Bl -tag It
--- /dev/null
+.Dd December 25, 2014
+.Dt BL-ENUM 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-enum
+.Nd enumerated lists
+.Sh DESCRIPTION
+.Bl -enum -width -4n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -enum -width -3n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -enum -width -2n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -enum -width -1n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -enum -width 0n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -enum -width 1n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -enum -width 2n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -enum -width 3n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -enum -width 4n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -enum -width 5n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -enum -width 6n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -enum -width 7n
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -enum -compact
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.It
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
--- /dev/null
+BL-ENUM(1) General Commands Manual BL-ENUM(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-e\ben\bnu\bum\bm - enumerated lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x
+ 1. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+ 2. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+ 3. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+ 4. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+ 5. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+ 6. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+ 7. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+ 8. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+ 9. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+ 10. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+ 11. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+ 12. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+OpenBSD December 25, 2014 OpenBSD
--- /dev/null
+.Dd April 12, 2010
+.Dt BL-EXTEND 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-extend
+.Nd extending block headers
+.Sh DESCRIPTION
+.\" explicit quoting does not require macro lines per se
+.Ao
+plain quoted text
+.Ac
+.Bl -tag -width Ds
+.It normal tag
+normal text
+.\" when extending It headers, plain text lines fall back
+.\" into the previous It body; so macro lines are required
+.It Ao
+.No extended tag
+.Ac
+extended text
+.It prefix Ao
+.No prefixed tag
+.Ac
+prefixed text
+.\" postfix after closing macro does not work in old groff
+.\" the whole It header gets lost
+.\" .It prefix Ao
+.\" .No braced tag
+.\" .Ac postfix
+.\" braced text
+.El
--- /dev/null
+BL-EXTEND(1) General Commands Manual BL-EXTEND(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-e\bex\bxt\bte\ben\bnd\bd - extending block headers
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ <plain quoted text>
+
+ normal tag
+ normal text
+
+ <extended tag>
+ extended text
+
+ prefix <prefixed tag>
+ prefixed text
+
+OpenBSD April 12, 2010 OpenBSD
--- /dev/null
+.Dd December 25, 2014
+.Dt BL-HANG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-hang
+.Nd hanged lists
+.Sh DESCRIPTION
+.Bl -hang -width -4n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width -3n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width -2n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width -1n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 0n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 1n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 2n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 3n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 4n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 5n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 5n
+.It four
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 5n
+.It quint
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 5n
+.It indent
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 5n
+.It septime
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 5n
+.It achtacht
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 5n
+.It neun_neun
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 5n
+.It zehn__zehn
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -hang -width 5n
+.It This is a very long text contained in the hanged item head, it is \
+so long that it overruns the line -
+and here comes the item body.
+.El
+Compact hanged list:
+.Bl -hang -width 6n -compact
+.It one
+first line
+.It second
+second line
+.It third_tag
+last line
+.El
+Hanged list without a width:
+.Bl -hang
+.It tag
+text
+.El
--- /dev/null
+BL-HANG(1) General Commands Manual BL-HANG(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-h\bha\ban\bng\bg - hanged lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x
+
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x
+
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x
+
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x
+
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x
+
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x
+
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x
+
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x
+
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x
+
+ four x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x
+
+ quint x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x
+
+ indent x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x
+
+ septime x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x
+
+ achtacht x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x
+
+ neun_neun x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x
+
+ zehn__zehn x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x x x x x x x x
+
+ This is a very long text contained in the hanged item head, it is so long
+ that it overruns the line - and here comes the item body.
+ Compact hanged list:
+ one first line
+ second second line
+ third_tag last line
+ Hanged list without a width:
+
+ tag text
+
+OpenBSD December 25, 2014 OpenBSD
--- /dev/null
+.Dd October 28, 2009
+.Dt BL-INSET 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-inset
+.Nd inset list labels
+.Sh DESCRIPTION
+.Bl -inset
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -inset
+.It four
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -inset
+.It quint
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -inset
+.It indent
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -inset
+.It septime
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -inset
+.It achtacht
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -inset
+.It neun_neun
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -inset
+.It zehn__zehn
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.\" Trailing white space in the head.
+.Bl -inset
+.It "a"
+b
+.It "a "
+b
+.It "a "
+b
+.El
--- /dev/null
+BL-INSET(1) General Commands Manual BL-INSET(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-i\bin\bns\bse\bet\bt - inset list labels
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ four x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ quint x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ indent x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ septime x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ achtacht x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x
+
+ neun_neun x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x
+
+ zehn__zehn x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x x x
+
+ a b
+
+ a b
+
+ a b
+
+OpenBSD October 28, 2009 OpenBSD
--- /dev/null
+.Dd July 10, 2012
+.Dt BL-ITEM 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-item
+.Nd itemized lists
+.Sh DESCRIPTION
+.Bl -item
+.It
+first line
+.It ignore
+second line
+.It
+third line
+.El
+.Bl -item -compact
+.It
+first line
+.It ignore
+second line
+.It
+third line
+.El
--- /dev/null
+BL-ITEM(1) General Commands Manual BL-ITEM(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-i\bit\bte\bem\bm - itemized lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ first line
+
+ second line
+
+ third line
+ first line
+ second line
+ third line
+
+OpenBSD July 10, 2012 OpenBSD
--- /dev/null
+.Dd April 13, 2010
+.Dt BL-MULTITAG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-multitag
+.Nd lists with multiple successive tags
+.Sh DESCRIPTION
+inset:
+.Bl -inset
+.It first
+.It second
+.It third
+some text
+.It fourth
+.It fifth
+more text
+.El
+tag:
+.Bl -tag -width Ds
+.It first
+.It second
+.It third
+some text
+.It fourth
+.It fifth
+more text
+.El
+inset compact:
+.Bl -inset -compact
+.It first
+.It second
+.It third
+some text
+.It fourth
+.It fifth
+more text
+.El
+tag compact:
+.Bl -tag -width Ds -compact
+.It first
+.It second
+.It third
+some text
+.It fourth
+.It fifth
+more text
+.El
--- /dev/null
+BL-MULTITAG(1) General Commands Manual BL-MULTITAG(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-m\bmu\bul\blt\bti\bit\bta\bag\bg - lists with multiple successive tags
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ inset:
+
+ first
+
+ second
+
+ third some text
+
+ fourth
+
+ fifth more text
+ tag:
+
+ first
+
+ second
+
+ third some text
+
+ fourth
+
+ fifth more text
+ inset compact:
+ first
+ second
+ third some text
+ fourth
+ fifth more text
+ tag compact:
+ first
+ second
+ third some text
+ fourth
+ fifth more text
+
+OpenBSD April 13, 2010 OpenBSD
--- /dev/null
+.Dd October 28, 2009
+.Dt BL-MULTITYPE 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-multitype
+.Nd list with multiple types
+.Sh DESCRIPTION
+.Bl -dash -bullet -offset indent
+.It
+Some text.
+.El
--- /dev/null
+BL-MULTITYPE(1) General Commands Manual BL-MULTITYPE(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-m\bmu\bul\blt\bti\bit\bty\byp\bpe\be - list with multiple types
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ -\b- Some text.
+
+OpenBSD October 28, 2009 OpenBSD
--- /dev/null
+.Dd May 19, 2013
+.Dt BL-NESTED 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-nested
+.Nd nested lists
+.Sh DESCRIPTION
+inset:
+.Bl -inset
+.It outer
+list
+.Bl -inset
+.It inner
+list
+.El
+.El
+inset compact:
+.Bl -inset -compact
+.It outer
+list
+.Bl -inset -compact
+.It inner
+list
+.El
+.El
+dash:
+.Bl -dash
+.It
+outer list
+.Bl -dash
+.It
+inner list
+.El
+.El
+dash compact:
+.Bl -dash -compact
+.It
+outer list
+.Bl -dash -compact
+.It
+inner list
+.El
+.El
+tag:
+.Bl -tag -width 4n
+.It outer tag
+outer text
+.Bl -tag -width 4n
+.It inner tag
+inner text
+.El
+outer text
+.El
+.Bl -tag -width 4n
+.It outer tag
+.Bd -ragged -compact
+outer text (display)
+.Ed
+.Bl -tag -width 4n
+.It inner tag
+inner text
+.El
+outer text
+.El
+.Bl -tag -width 4n
+.It outer tag
+.Dl outer text (one-line display)
+.Bl -tag -width 4n
+.It inner tag
+inner text
+.El
+outer text
+.El
+.Bl -tag -width 4n -offset 3n
+.It outer tag (indented 3n)
+outer text
+.Bl -tag -width 4n -offset 6n
+.It inner tag (indented 6n)
+inner text
+.El
+outer text
+.El
+final text
--- /dev/null
+BL-NESTED(1) General Commands Manual BL-NESTED(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-n\bne\bes\bst\bte\bed\bd - nested lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ inset:
+
+ outer list
+
+ inner list
+ inset compact:
+ outer list
+ inner list
+ dash:
+
+ -\b- outer list
+
+ -\b- inner list
+ dash compact:
+ -\b- outer list
+ -\b- inner list
+ tag:
+
+ outer tag
+ outer text
+
+ inner tag
+ inner text
+ outer text
+
+ outer tag
+ outer text (display)
+
+ inner tag
+ inner text
+ outer text
+
+ outer tag
+ outer text (one-line display)
+
+ inner tag
+ inner text
+ outer text
+
+ outer tag (indented 3n)
+ outer text
+
+ inner tag (indented 6n)
+ inner text
+ outer text
+ final text
+
+OpenBSD May 19, 2013 OpenBSD
--- /dev/null
+.Dd October 6, 2013
+.Dt BL-NOIT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-noIt
+.Nd list missing item macros
+.Sh DESCRIPTION
+.Bl -tag -width Ds
+Stray text.
+.Em More stray text.
+.It tag
+Tagged text.
+.El
+.Bl -bullet
+Stray text.
+.Sm off
+.Em More Sy stray Em text.
+.Sm on
+.It
+Bullet point.
+.El
+.Bl -dash
+Stray text only.
+.El
--- /dev/null
+BL-NOIT(1) General Commands Manual BL-NOIT(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-n\bno\boI\bIt\bt - list missing item macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Stray text. _\bM_\bo_\br_\be _\bs_\bt_\br_\ba_\by _\bt_\be_\bx_\bt_\b.
+
+ tag Tagged text.
+ Stray text. _\bM_\bo_\br_\bes\bst\btr\bra\bay\by_\bt_\be_\bx_\bt_\b.
+
+ +\b+\bo\bo Bullet point.
+ Stray text only.
+
+OpenBSD October 6, 2013 OpenBSD
--- /dev/null
+mandoc: noIt.in:9:1: WARNING: moving content out of list: text
+mandoc: noIt.in:10:2: WARNING: moving content out of list: Em
+mandoc: noIt.in:15:1: WARNING: moving content out of list: text
+mandoc: noIt.in:16:2: WARNING: moving content out of list: Sm
+mandoc: noIt.in:17:2: WARNING: moving content out of list: Em
+mandoc: noIt.in:17:10: WARNING: moving content out of list: Sy
+mandoc: noIt.in:17:19: WARNING: moving content out of list: Em
+mandoc: noIt.in:23:1: WARNING: moving content out of list: text
--- /dev/null
+.Dd August 10, 2016
+.Dt BL-NOTYPE 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-notype
+.Nd lists with late or missing types
+.Sh DESCRIPTION
+late type:
+.Bl -offset indent -bullet
+.It
+Some text.
+.El tail argument
+.Pp
+no type:
+.Bl -offset indent -width Ds
+.It
+Some text.
+.El
+.Pp
+no argument at all:
+.Bl
+.It
+Some text.
+.El
+.Pp
+final text
--- /dev/null
+BL-NOTYPE(1) General Commands Manual BL-NOTYPE(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-n\bno\bot\bty\byp\bpe\be - lists with late or missing types
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ late type:
+
+ +\b+\bo\bo Some text.
+
+ no type:
+
+ Some text.
+
+ no argument at all:
+
+ Some text.
+
+ final text
+
+OpenBSD August 10, 2016 OpenBSD
--- /dev/null
+mandoc: notype.in:12:2: ERROR: skipping all arguments: El tail argument
+mandoc: notype.in:9:2: WARNING: list type is not the first argument: Bl -offset
+mandoc: notype.in:15:2: ERROR: missing list type, using -item: Bl
+mandoc: notype.in:15:20: WARNING: skipping -width argument: Bl -item
+mandoc: notype.in:21:2: ERROR: missing list type, using -item: Bl
--- /dev/null
+.Dd December 25, 2014
+.Dt BL-OFFSET 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-offset
+.Nd various arguments for Bl offset
+.Sh DESCRIPTION
+.Bl -item -offset
+.It
+Bl item offset empty
+.El
+.Bl -item -offset left
+.It
+Bl item offset left
+.El
+.Bl -item -offset indent
+.It
+Bl item offset indent
+.El
+.Bl -item -offset indent-two
+.It
+Bl item offset indent-two
+.El
+.Bl -item -offset 4n
+.It
+Bl item offset 4n
+.El
+.Bl -item -offset mystring
+.It
+Bl item offset mystring
+.El
+.Bl -item -offset Ds
+.It
+Bl item offset Ds
+.El
+.Bl -item -offset 78n
+.It
+Bl item offset 78n
+.El
+.Bl -item -offset -3n
+.It
+Bl item offset -3n
+.El
+.Bl -tag -width Ds -offset
+.It tag
+Bl tag width Ds offset empty
+.El
+.Bl -tag -width Ds -offset left
+.It tag
+Bl tag width Ds offset left
+.El
+.Bl -tag -width Ds -offset indent
+.It tag
+Bl tag width Ds offset indent
+.El
+.Bl -tag -width Ds -offset indent-two
+.It tag
+Bl tag width Ds offset indent-two
+.El
+.Bl -tag -width Ds -offset 4n
+.It tag
+Bl tag width Ds offset 4n
+.El
+.Bl -tag -width Ds -offset mystring
+.It tag
+Bl tag width Ds offset mystring
+.El
+.Bl -tag -width Ds -offset Ds
+.It tag
+Bl tag width Ds offset Ds
+.El
+.Bl -tag -width Ds -offset 78n
+.It tag
+Bl tag width Ds offset 78n
+.El
+.Bl -tag -width Ds -offset -3n
+.It tag
+Bl tag width Ds offset -3n
+.El
--- /dev/null
+BL-OFFSET(1) General Commands Manual BL-OFFSET(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-o\bof\bff\bfs\bse\bet\bt - various arguments for Bl offset
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Bl item offset empty
+
+ Bl item offset left
+
+ Bl item offset indent
+
+ Bl item offset indent-two
+
+ Bl item offset 4n
+
+ Bl item offset mystring
+
+ Bl item offset Ds
+
+ Bl
+ item
+ offset
+ 78n
+
+ Bl item offset -3n
+
+ tag Bl tag width Ds offset empty
+
+ tag Bl tag width Ds offset left
+
+ tag Bl tag width Ds offset indent
+
+ tag Bl tag width Ds offset indent-two
+
+ tag Bl tag width Ds offset 4n
+
+ tag Bl tag width Ds offset mystring
+
+ tag Bl tag width Ds offset Ds
+
+ tag Bl
+ tag
+ width
+ Ds
+ offset
+ 78n
+
+ tag Bl tag width Ds offset -3n
+
+OpenBSD December 25, 2014 OpenBSD
--- /dev/null
+.Dd July 10, 2012
+.Dt BL-OHANG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-ohang
+.Nd over-hanging lists
+.Sh DESCRIPTION
+.Bl -ohang
+.It first tag
+first line
+.It second tag
+second line
+.It third tag
+third line
+.El
+.Bl -ohang -compact
+.It first tag
+first line
+.It second tag
+second line
+.It third tag
+third line
+.El
--- /dev/null
+BL-OHANG(1) General Commands Manual BL-OHANG(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-o\boh\bha\ban\bng\bg - over-hanging lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ first tag
+ first line
+
+ second tag
+ second line
+
+ third tag
+ third line
+ first tag
+ first line
+ second tag
+ second line
+ third tag
+ third line
+
+OpenBSD July 10, 2012 OpenBSD
--- /dev/null
+.Dd November 10, 2014
+.Dt BL-SECSTART 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-secstart
+.Nd nested lists at the beginning of sections
+.Sh DESCRIPTION
+.Ss item
+.Bl -item
+.It
+.Bl -item
+.It
+text
+.El
+.El
+.Ss dash
+.Bl -dash
+.It
+.Bl -dash
+.It
+text
+.El
+.El
+.Ss inset
+.Bl -inset
+.It outer
+.Bl -inset
+.It inner
+text
+.El
+.El
+.Ss tag
+.Bl -tag -width 4n
+.It outer tag
+.Bl -tag -width 4n
+.It inner tag
+text
+.El
+.El
--- /dev/null
+BL-SECSTART(1) General Commands Manual BL-SECSTART(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-s\bse\bec\bcs\bst\bta\bar\brt\bt - nested lists at the beginning of sections
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ i\bit\bte\bem\bm
+ text
+
+ d\bda\bas\bsh\bh
+ -\b-
+
+ -\b- text
+
+ i\bin\bns\bse\bet\bt
+ outer
+
+ inner text
+
+ t\bta\bag\bg
+ outer tag
+
+ inner tag
+ text
+
+OpenBSD November 10, 2014 OpenBSD
--- /dev/null
+.Dd September 21, 2015
+.Dt BL-TAG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-tag
+.Nd tagged lists
+.Sh DESCRIPTION
+.Bl -tag -width -4n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width -3n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width -2n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width -1n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 0n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 1n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 2n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 3n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 4n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 5n
+.It tag
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 5n
+.It four
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 5n
+.It quint
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 5n
+.It indent
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 5n
+.It septime
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 5n
+.It achtacht
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 5n
+.It neun neun
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 5n
+.It zehn_ zehn
+x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+.El
+.Bl -tag -width 5n
+.It This is a very long text contained in the tag, it is so long \
+that it overruns the line -
+and here comes the item body.
+.El
+.Bl -tag -width 100n
+.It hundred
+text text
+.El
+.Pp
+Trailing white space in the head:
+.Bl -tag -width 5n
+.It "a"
+none
+.It "a "
+one
+.It "a "
+two
+.It "a "
+three
+.It "a "
+four
+.It "a "
+five
+.It "a "
+six
+.It " "
+white space only
+.El
+.Pp
+Non-numeric width specification:
+.Bl -tag -width xxx
+.It tag
+text
+.El
+.Bl -tag -width xxxxxxxxxx
+.It tag
+text
+.El
+.Pp
+Scaling units other than n:
+.Bl -tag -width 4m
+.It tag
+text
+.El
+.Bl -tag -width 800M
+.It tag
+text
+.El
+.Bl -tag -width 14
+.It tag
+text
+.El
+.Pp
+Default width:
+.Bl -tag
+.It tag
+text
+.It long tag
+long text
+.It Sy tag Em with markup
+text
+.El
+.Pp
+Indented list:
+.Bl -tag -offset 6n -width xxx
+.It one
+first text
+.It two
+second text
+.El
+.Pp
+Embedded paragraph:
+.Bl -tag -width Ds
+.It tag
+first paragraph
+.Pp
+second paragraph
+.El
--- /dev/null
+BL-TAG(1) General Commands Manual BL-TAG(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-t\bta\bag\bg - tagged lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ tag
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x
+
+ tag
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x
+
+ tag
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x
+
+ tag
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ tag
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x
+
+ tag
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ tag
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x
+
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x
+
+ tag x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ four x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ quint x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ indent
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ septime
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ achtacht
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ neun neun
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ zehn_ zehn
+ x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+ x x x x x x x
+
+ This is a very long text contained in the tag, it is so long that it
+ overruns the line -
+ and here comes the item body.
+
+ hundred text
+ text
+
+ Trailing white space in the head:
+
+ a none
+
+ a one
+
+ a two
+
+ a three
+
+ a four
+
+ a
+ five
+
+ a
+ six
+
+ white space only
+
+ Non-numeric width specification:
+
+ tag text
+
+ tag text
+
+ Scaling units other than n:
+
+ tag text
+
+ tag text
+
+ tag
+ text
+
+ Default width:
+
+ tag text
+
+ long tag
+ long text
+
+ t\bta\bag\bg _\bw_\bi_\bt_\bh _\bm_\ba_\br_\bk_\bu_\bp
+ text
+
+ Indented list:
+
+ one first text
+
+ two second text
+
+ Embedded paragraph:
+
+ tag first paragraph
+
+ second paragraph
+
+OpenBSD September 21, 2015 OpenBSD
--- /dev/null
+mandoc: tag.in:131:2: WARNING: missing -width in -tag list, using 6n: Bl -tag
--- /dev/null
+.Dd January 9, 2011
+.Dt BL-UNCLOSED 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bl-unclosed
+.Nd list lacking an end macro
+.Sh DESCRIPTION
+.Bl -item
+.It
+item
+.Sh SEE ALSO
+.Xr mdoc 7
--- /dev/null
+BL-UNCLOSED(1) General Commands Manual BL-UNCLOSED(1)
+
+N\bNA\bAM\bME\bE
+ B\bBl\bl-\b-u\bun\bnc\bcl\blo\bos\bse\bed\bd - list lacking an end macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ item
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mdoc(7)
+
+OpenBSD January 9, 2011 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.1.1.1 2011/12/04 03:09:25 schwarze Exp $
+
+REGRESS_TARGETS=empty
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd October 21, 2010
+.Dt BRQ-EMPTY 1
+.Os OpenBSD
+.Sh NAME
+.Nm Brq-empty
+.Nd empty implicit enclosure macros
+.Sh DESCRIPTION
+An empty
+.Brq
+and a full
+.Brq user@host
+quotation.
+And another
+.Bro full Brc one .
--- /dev/null
+BRQ-EMPTY(1) General Commands Manual BRQ-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ B\bBr\brq\bq-\b-e\bem\bmp\bpt\bty\by - empty implicit enclosure macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ An empty {} and a full {user@host} quotation. And another {full} one.
+
+OpenBSD October 21, 2010 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2011/11/17 16:28:45 schwarze Exp $
+
+REGRESS_TARGETS=args
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd January 30, 2011
+.Dt BX-ARGS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bx-args
+.Nd arguments to the BSD macro
+.Sh DESCRIPTION
+no arguments:
+.Bx
+.Pp
+one standard argument:
+.Bx 4.4
+.Pp
+one non-standard argument:
+.Bx nett
+.Pp
+one semi-standard argument:
+.Bx 4.1c
+.Pp
+two standard arguments:
+.Bx 4.3 reno
+.Pp
+more arguments:
+.Bx 4.3 tahoe and some additional words
+.Pp
+end of test document
--- /dev/null
+BX-ARGS(1) General Commands Manual BX-ARGS(1)
+
+N\bNA\bAM\bME\bE
+ B\bBx\bx-\b-a\bar\brg\bgs\bs - arguments to the BSD macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ no arguments: BSD
+
+ one standard argument: 4.4BSD
+
+ one non-standard argument: nettBSD
+
+ one semi-standard argument: 4.1cBSD
+
+ two standard arguments: 4.3BSD-Reno
+
+ more arguments: 4.3BSD-Tahoe and some additional words
+
+ end of test document
+
+OpenBSD January 30, 2011 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.5 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = noarg font eos
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd November 17, 2012
+.Dt CD-EOS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Cd-eos
+.Nd end of sentence handling after the configuration directive macro
+.Sh DESCRIPTION
+Do not use
+.Cd options INSECURE .
+It is insecure.
--- /dev/null
+CD-EOS(1) General Commands Manual CD-EOS(1)
+
+N\bNA\bAM\bME\bE
+ C\bCd\bd-\b-e\beo\bos\bs - end of sentence handling after the configuration directive macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Do not use o\bop\bpt\bti\bio\bon\bns\bs I\bIN\bNS\bSE\bEC\bCU\bUR\bRE\bE. It is insecure.
+
+OpenBSD November 17, 2012 OpenBSD
--- /dev/null
+.Dd July 9, 2012
+.Dt CD-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Cd-font
+.Nd changing fonts inside the configuration declaration macro
+.Sh DESCRIPTION
+normal text
+.Cd bold\\fIemphasis\\fPback
+trailing text
--- /dev/null
+CD-FONT(1) General Commands Manual CD-FONT(1)
+
+N\bNA\bAM\bME\bE
+ C\bCd\bd-\b-f\bfo\bon\bnt\bt - changing fonts inside the configuration declaration macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text b\bbo\bol\bld\bd_\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bba\bac\bck\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd January 19, 2011
+.Dt CD-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Cd-noarg
+.Nd kernel configuration directive without arguments
+.Sh DESCRIPTION
+with arguments:
+.Cd wd* at pciide?
+without arguments:
+.Cd
+end of test document
--- /dev/null
+CD-NOARG(1) General Commands Manual CD-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ C\bCd\bd-\b-n\bno\boa\bar\brg\bg - kernel configuration directive without arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with arguments: w\bwd\bd*\b* a\bat\bt p\bpc\bci\bii\bid\bde\be?\b? without arguments: end of test document
+
+OpenBSD January 19, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: Cd
--- /dev/null
+# $OpenBSD: Makefile,v 1.3 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = basic font noarg
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 6, 2012
+.Dt CM-BASIC 1
+.Os OpenBSD
+.Sh NAME
+.Nm Cm-basic
+.Nd basic usage of the Cm macro
+.Sh DESCRIPTION
+end of line:
+.Nm mt Fl f Ar device Cm rewind
+.Pp
+middle of line:
+.Nm ps Fl o Cm pid , Ns Cm command
--- /dev/null
+CM-BASIC(1) General Commands Manual CM-BASIC(1)
+
+N\bNA\bAM\bME\bE
+ C\bCm\bm-\b-b\bba\bas\bsi\bic\bc - basic usage of the Cm macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ end of line: m\bmt\bt -\b-f\bf _\bd_\be_\bv_\bi_\bc_\be r\bre\bew\bwi\bin\bnd\bd
+
+ middle of line: p\bps\bs -\b-o\bo p\bpi\bid\bd,c\bco\bom\bmm\bma\ban\bnd\bd
+
+OpenBSD July 6, 2012 OpenBSD
--- /dev/null
+.Dd July 9, 2012
+.Dt CM-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Cm-font
+.Nd changing fonts inside the command modifier macro
+.Sh DESCRIPTION
+normal text
+.Cm bold\\fIemphasis\\fPback
+trailing text
--- /dev/null
+CM-FONT(1) General Commands Manual CM-FONT(1)
+
+N\bNA\bAM\bME\bE
+ C\bCm\bm-\b-f\bfo\bon\bnt\bt - changing fonts inside the command modifier macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text b\bbo\bol\bld\bd_\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bba\bac\bck\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd July 2, 2014
+.Dt CM-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Cm-noarg
+.Nd command modifier macro without arguments
+.Sh DESCRIPTION
+end of line:
+.Nm mt Fl f Ar device Cm
+.Pp
+middle of line:
+.Nm ps Fl x Cm Fl o Cm command
--- /dev/null
+CM-NOARG(1) General Commands Manual CM-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ C\bCm\bm-\b-n\bno\boa\bar\brg\bg - command modifier macro without arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ end of line: m\bmt\bt -\b-f\bf _\bd_\be_\bv_\bi_\bc_\be
+
+ middle of line: p\bps\bs -\b-x\bx -\b-o\bo c\bco\bom\bmm\bma\ban\bnd\bd
+
+OpenBSD July 2, 2014 OpenBSD
--- /dev/null
+mandoc: noarg.in:9:23: WARNING: skipping empty macro: Cm
+mandoc: noarg.in:12:13: WARNING: skipping empty macro: Cm
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2015/02/06 02:04:35 schwarze Exp $
+
+REGRESS_TARGETS = spacing
+LINT_TARGETS = spacing
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd February 5, 2015
+.Dt D1-SPACING 1
+.Os OpenBSD
+.Sh NAME
+.Nm D1-spacing
+.Nd spacing in and around one-line displays
+.Sh DESCRIPTION
+preceding text
+.D1 spacing in and around one-line displays
+empty display:
+.D1
+following text
--- /dev/null
+D1-SPACING(1) General Commands Manual D1-SPACING(1)
+
+N\bNA\bAM\bME\bE
+ D\bD1\b1-\b-s\bsp\bpa\bac\bci\bin\bng\bg - spacing in and around one-line displays
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ preceding text
+ spacing in and around one-line displays
+ empty display:
+ following text
+
+OpenBSD February 5, 2015 OpenBSD
--- /dev/null
+mandoc: spacing.in:11:2: WARNING: empty block: D1
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2014/11/27 16:20:27 schwarze Exp $
+
+REGRESS_TARGETS = args
+LINT_TARGETS = args
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd November 27, 2014
+.Dt DB-ARGS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Db-args
+.Nd obsolete debug macro
+.Sh DESCRIPTION
+no args
+.Db
+one arg
+.Db on
+two args
+.Db foo bar
+end of text
--- /dev/null
+DB-ARGS(1) General Commands Manual DB-ARGS(1)
+
+N\bNA\bAM\bME\bE
+ D\bDb\bb-\b-a\bar\brg\bgs\bs - obsolete debug macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ no args one arg two args end of text
+
+OpenBSD November 27, 2014 OpenBSD
--- /dev/null
+mandoc: args.in:9:2: WARNING: obsolete macro: Db
+mandoc: args.in:11:2: WARNING: obsolete macro: Db
+mandoc: args.in:13:2: WARNING: obsolete macro: Db
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2014/11/21 01:52:45 schwarze Exp $
+
+REGRESS_TARGETS = badarg dupe late long manarg noarg order
+LINT_TARGETS = badarg dupe late long manarg noarg order
+
+# If groff finds exactly three arguments, it assumes they are month,
+# day and year without further checking. If there are no arguments,
+# groff uses the string "Epoch". Otherwise, it silently falls back
+# to today's date.
+# That is not at all sane behaviour, we are not going to imitate it.
+
+SKIP_GROFF = badarg long manarg noarg
+SKIP_ASCII = noarg
+
+# Autodetection fails for late .Dd, so specify -mdoc explicitly.
+
+MOPTS += -mdoc
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd "bad date"
+.Dt DD-BADARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Dd-badarg
+.Nd date cannot be parsed
+.Sh DESCRIPTION
+some text
--- /dev/null
+DD-BADARG(1) General Commands Manual DD-BADARG(1)
+
+N\bNA\bAM\bME\bE
+ D\bDd\bd-\b-b\bba\bad\bda\bar\brg\bg - date cannot be parsed
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD bad date OpenBSD
--- /dev/null
+mandoc: badarg.in:1:2: WARNING: cannot parse date, using it verbatim: bad date
--- /dev/null
+.Dd August 1, 2014
+.Dt DD-DUPE 1
+.Os OpenBSD
+.Dd August 3, 2014
+.Sh NAME
+.Nm Dd-dupe
+.Nd duplicate date macro
+.Sh DESCRIPTION
+initial text
+.Dd August 5, 2014
+final text
--- /dev/null
+DD-DUPE(1) General Commands Manual DD-DUPE(1)
+
+N\bNA\bAM\bME\bE
+ D\bDd\bd-\b-d\bdu\bup\bpe\be - duplicate date macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text final text
+
+OpenBSD August 5, 2014 OpenBSD
--- /dev/null
+mandoc: dupe.in:4:2: WARNING: duplicate prologue macro: Dd
+mandoc: dupe.in:10:2: WARNING: duplicate prologue macro: Dd
--- /dev/null
+.Dt DD-LATE 1
+.Os OpenBSD
+.Sh NAME
+.Nm Dd-late
+.Nd late date macro
+.Sh DESCRIPTION
+initial text
+.Dd August 5, 2014
+final text
--- /dev/null
+DD-LATE(1) General Commands Manual DD-LATE(1)
+
+N\bNA\bAM\bME\bE
+ D\bDd\bd-\b-l\bla\bat\bte\be - late date macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text final text
+
+OpenBSD August 5, 2014 OpenBSD
--- /dev/null
+mandoc: late.in:8:2: WARNING: late prologue macro: Dd
--- /dev/null
+.Dd 1234567890123456789012345678901234567890123456789012345678901234567890123456789
+.Dt DD-LONG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Dd-long
+.Nd long date string
+.Sh DESCRIPTION
+some text
--- /dev/null
+DD-LONG(1) General Commands Manual DD-LONG(1)
+
+N\bNA\bAM\bME\bE
+ D\bDd\bd-\b-l\blo\bon\bng\bg - long date string
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD
+1234567890123456789012345678901234567890123456789012345678901234567890123456789
+ OpenBSD
--- /dev/null
+mandoc: long.in:1:2: WARNING: cannot parse date, using it verbatim: 1234567890123456789012345678901234567890123456789012345678901234567890123456789
--- /dev/null
+.Dd 2014-08-07
+.Dt DD-MANARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Dd-manarg
+.Nd date in traditional man format
+.Sh DESCRIPTION
+some text
--- /dev/null
+DD-MANARG(1) General Commands Manual DD-MANARG(1)
+
+N\bNA\bAM\bME\bE
+ D\bDd\bd-\b-m\bma\ban\bna\bar\brg\bg - date in traditional man format
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD 2014-08-07 OpenBSD
--- /dev/null
+.Dd
+.Dt DD-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Dd-noarg
+.Nd date macro without an argument
+.Sh DESCRIPTION
+some text
--- /dev/null
+mandoc: noarg.in:1:2: WARNING: missing date, using today's date
--- /dev/null
+.Dt DD-ORDER 1
+.Dd August 5, 2014
+.Os OpenBSD
+.Sh NAME
+.Nm Dd-order
+.Nd date macro after title macro
+.Sh DESCRIPTION
+some text
--- /dev/null
+DD-ORDER(1) General Commands Manual DD-ORDER(1)
+
+N\bNA\bAM\bME\bE
+ D\bDd\bd-\b-o\bor\brd\bde\ber\br - date macro after title macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD August 5, 2014 OpenBSD
--- /dev/null
+mandoc: order.in:2:2: WARNING: prologue macros out of order: Dd after Dt
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2015/02/06 02:04:35 schwarze Exp $
+
+REGRESS_TARGETS = spacing
+LINT_TARGETS = spacing
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd February 5, 2015
+.Dt DL-SPACING 1
+.Os OpenBSD
+.Sh NAME
+.Nm Dl-spacing
+.Nd spacing in and around one-line literal displays
+.Sh DESCRIPTION
+preceding text
+.Dl spacing in and around one-line literal displays
+empty display:
+.Dl
+following text
--- /dev/null
+DL-SPACING(1) General Commands Manual DL-SPACING(1)
+
+N\bNA\bAM\bME\bE
+ D\bDl\bl-\b-s\bsp\bpa\bac\bci\bin\bng\bg - spacing in and around one-line literal displays
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ preceding text
+ spacing in and around one-line literal displays
+ empty display:
+ following text
+
+OpenBSD February 5, 2015 OpenBSD
--- /dev/null
+mandoc: spacing.in:11:2: WARNING: empty block: Dl
--- /dev/null
+# $OpenBSD: Makefile,v 1.1.1.1 2011/12/04 03:09:25 schwarze Exp $
+
+REGRESS_TARGETS=empty
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd October 21, 2010
+.Dt DQ-EMPTY 1
+.Os OpenBSD
+.Sh NAME
+.Nm Dq-empty
+.Nd empty implicit enclosure macros
+.Sh DESCRIPTION
+An empty
+.Dq
+and a full
+.Dq user@host
+quotation.
+And another
+.Do full Dc one .
--- /dev/null
+DQ-EMPTY(1) General Commands Manual DQ-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ D\bDq\bq-\b-e\bem\bmp\bpt\bty\by - empty implicit enclosure macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ An empty ``'' and a full ``user@host'' quotation. And another ``full''
+ one.
+
+OpenBSD October 21, 2010 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.6 2015/02/16 19:02:32 schwarze Exp $
+
+REGRESS_TARGETS = badsec case dupe fourargs late
+REGRESS_TARGETS += missing noarg nobody nosec order
+LINT_TARGETS = badsec case dupe fourargs late
+LINT_TARGETS += missing noarg nobody nosec order
+
+SKIP_GROFF = badsec nobody
+SKIP_ASCII = badsec
+
+# When the section is missing from the man(7) .TH title line,
+# empty parentheses are shown in the page header.
+# When the section is missing from the mdoc(7) .Dt title line,
+# no empty parentheses are shown in the page header.
+# Hence, there is no bug-compatible translation from mdoc(7)
+# to man(7) for this case. That's not mandoc(1)'s fault.
+
+SKIP_TMAN = fourargs late missing noarg nosec
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd June 13, 2014
+.Dt DT-BADSEC foo
+.Os OpenBSD
+.Sh NAME
+.Nm Dt-badsec
+.Nd unknown manual section
+.Sh DESCRIPTION
+some text
--- /dev/null
+mandoc: badsec.in:2:15: WARNING: unknown manual section: Dt ... foo
--- /dev/null
+.Dd June 13, 2014
+.Dt Dt-case 1
+.Os OpenBSD
+.Sh NAME
+.Nm Dt-case
+.Nd document title is not all caps
+.Sh DESCRIPTION
+some text
--- /dev/null
+Dt-case(1) General Commands Manual Dt-case(1)
+
+N\bNA\bAM\bME\bE
+ D\bDt\bt-\b-c\bca\bas\bse\be - document title is not all caps
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD June 13, 2014 OpenBSD
--- /dev/null
+mandoc: case.in:2:6: WARNING: lower case character in document title: Dt Dt-case
--- /dev/null
+.Dd August 5, 2014
+.Dt DT-FIRST 2 first_arch
+.Os OpenBSD
+.Dt DT-DUPE 1
+.Sh NAME
+.Nm Dt-order
+.Nd duplicate prologue macro
+.Sh DESCRIPTION
+inital text
+.Dt DT-LAST 3 last_arch
+final text
--- /dev/null
+DT-DUPE(1) General Commands Manual DT-DUPE(1)
+
+N\bNA\bAM\bME\bE
+ D\bDt\bt-\b-o\bor\brd\bde\ber\br - duplicate prologue macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ inital text final text
+
+OpenBSD August 5, 2014 OpenBSD
--- /dev/null
+mandoc: dupe.in:4:2: WARNING: duplicate prologue macro: Dt
+mandoc: dupe.in:10:2: WARNING: skipping late title macro: Dt
--- /dev/null
+.Dd February 16, 2015
+.Dt DT-FOURARGS 1 amd64 bogus
+.Os OpenBSD
+.Sh NAME
+.Nm Dt-fourargs
+.Nd too many arguments after the \&Dt macro
+.Sh DESCRIPTION
+some text
--- /dev/null
+DT-FOURARGS(1) General Commands Manual (amd64) DT-FOURARGS(1)
+
+N\bNA\bAM\bME\bE
+ D\bDt\bt-\b-f\bfo\bou\bur\bra\bar\brg\bgs\bs - too many arguments after the Dt macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD February 16, 2015 OpenBSD
--- /dev/null
+mandoc: fourargs.in:2:25: ERROR: skipping excess arguments: Dt ... bogus
--- /dev/null
+.Dd August 5, 2014
+.Os OpenBSD
+.Sh NAME
+.Nm Dt-late
+.Nd late title macro
+.Sh DESCRIPTION
+inital text
+.Dt DT-LATE 1
+final text
--- /dev/null
+UNTITLED LOCAL UNTITLED
+
+N\bNA\bAM\bME\bE
+ D\bDt\bt-\b-l\bla\bat\bte\be - late title macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ inital text final text
+
+OpenBSD August 5, 2014 OpenBSD
--- /dev/null
+mandoc: late.in:8:2: WARNING: skipping late title macro: Dt
+mandoc: late.in: WARNING: missing manual title, using UNTITLED: EOF
--- /dev/null
+.Dd August 5, 2014
+.Os OpenBSD
+.Sh NAME
+.Nm Dt-missing
+.Nd no title macro at all
+.Sh DESCRIPTION
+some text
--- /dev/null
+UNTITLED LOCAL UNTITLED
+
+N\bNA\bAM\bME\bE
+ D\bDt\bt-\b-m\bmi\bis\bss\bsi\bin\bng\bg - no title macro at all
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD August 5, 2014 OpenBSD
--- /dev/null
+mandoc: missing.in: WARNING: missing manual title, using UNTITLED: EOF
--- /dev/null
+.Dd August 5, 2014
+.Dt
+.Os OpenBSD
+.Sh NAME
+.Nm Dt-noarg
+.Nd title macro without arguments
+.Sh DESCRIPTION
+some text
--- /dev/null
+UNTITLED LOCAL UNTITLED
+
+N\bNA\bAM\bME\bE
+ D\bDt\bt-\b-n\bno\boa\bar\brg\bg - title macro without arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD August 5, 2014 OpenBSD
--- /dev/null
+mandoc: noarg.in:2:2: WARNING: missing manual title, using UNTITLED: Dt
+mandoc: noarg.in:2:2: WARNING: missing manual section, using "": Dt UNTITLED
--- /dev/null
+.Dd June 20, 2014
+.Dt DT-NOBODY 1
+.Os OpenBSD
--- /dev/null
+DT-NOBODY(1) General Commands Manual DT-NOBODY(1)
+
+OpenBSD June 20, 2014 OpenBSD
--- /dev/null
+mandoc: nobody.in: WARNING: no document body
--- /dev/null
+.Dd August 5, 2014
+.Dt DT-NOSEC
+.Os OpenBSD
+.Sh NAME
+.Nm Dt-nosec
+.Nd title macro without manual section
+.Sh DESCRIPTION
+some text
--- /dev/null
+DT-NOSEC LOCAL DT-NOSEC
+
+N\bNA\bAM\bME\bE
+ D\bDt\bt-\b-n\bno\bos\bse\bec\bc - title macro without manual section
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD August 5, 2014 OpenBSD
--- /dev/null
+mandoc: nosec.in:2:2: WARNING: missing manual section, using "": Dt DT-NOSEC
--- /dev/null
+.Dd June 13, 2014
+.Os OpenBSD
+.Dt DT-ORDER 1
+.Sh NAME
+.Nm Dt-order
+.Nd prologue macros out of order
+.Sh DESCRIPTION
+some text
--- /dev/null
+DT-ORDER(1) General Commands Manual DT-ORDER(1)
+
+N\bNA\bAM\bME\bE
+ D\bDt\bt-\b-o\bor\brd\bde\ber\br - prologue macros out of order
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD June 13, 2014 OpenBSD
--- /dev/null
+mandoc: order.in:3:2: WARNING: prologue macros out of order: Dt after Os
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = font noarg
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd October 21, 2011
+.Dt DV-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Dv-font
+.Nd formatting of defined variables
+.Sh DESCRIPTION
+The
+.Dv BUFSIZ
+macro.
+.Pp
+And with
+.Dv some \\fIembedded\\fP string .
--- /dev/null
+DV-FONT(1) General Commands Manual DV-FONT(1)
+
+N\bNA\bAM\bME\bE
+ D\bDv\bv-\b-f\bfo\bon\bnt\bt - formatting of defined variables
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The BUFSIZ macro.
+
+ And with some _\be_\bm_\bb_\be_\bd_\bd_\be_\bd string.
+
+OpenBSD October 21, 2011 OpenBSD
--- /dev/null
+.Dd July 2, 2014
+.Dt DV-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Dv-noarg
+.Nd defined variable macro without an argument
+.Sh DESCRIPTION
+with variable:
+.Dv NULL
+no variable:
+.Dv
+end of test document
--- /dev/null
+DV-NOARG(1) General Commands Manual DV-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ D\bDv\bv-\b-n\bno\boa\bar\brg\bg - defined variable macro without an argument
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with variable: NULL no variable: end of test document
+
+OpenBSD July 2, 2014 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: Dv
--- /dev/null
+# $OpenBSD: Makefile,v 1.3 2014/11/17 06:44:35 schwarze Exp $
+
+REGRESS_TARGETS = font noarg punct
+LINT_TARGETS = noarg punct
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt EM-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Em-font
+.Nd changing fonts inside the emphasis macro
+.Sh DESCRIPTION
+normal text
+.Em emphasis\\fBbold\\fPback
+trailing text
--- /dev/null
+EM-FONT(1) General Commands Manual EM-FONT(1)
+
+N\bNA\bAM\bME\bE
+ E\bEm\bm-\b-f\bfo\bon\bnt\bt - changing fonts inside the emphasis macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bbo\bol\bld\bd_\bb_\ba_\bc_\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd January 19, 2011
+.Dt EM-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Em-noarg
+.Nd emphasis macro without arguments
+.Sh DESCRIPTION
+with argument
+.Em arg
+no argument
+.Em
+end of test document
--- /dev/null
+EM-NOARG(1) General Commands Manual EM-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ E\bEm\bm-\b-n\bno\boa\bar\brg\bg - emphasis macro without arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with argument _\ba_\br_\bg no argument end of test document
+
+OpenBSD January 19, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: Em
--- /dev/null
+.Dd November 17, 2014
+.Dt EM-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Em-punct
+.Nd punctuation following an emphasis macro
+.Sh DESCRIPTION
+Leading punctuation:
+.Em ( b
+.Em [ b
+.Em | b
+.Em . b
+.Em , b
+.Em ; b
+.Em : b
+.Em ? b
+.Em ! b
+.Em ) b
+.Em ] b
+.Pp
+Trailing punctuation:
+.Em a (
+.Em a [
+.Em a |
+.Em a .
+.Em a ,
+.Em a ;
+.Em a :
+.Em a ?
+.Em a !
+.Em a )
+.Em a ]
+.Pp
+Middle punctuation:
+.Em a ( b
+.Em a [ b
+.Em a | b
+.Em a . b
+.Em a , b
+.Em a ; b
+.Em a : b
+.Em a ? b
+.Em a ! b
+.Em a ) b
+.Em a ] b
+.Pp
+Isolated punctuation:
+.Em a Em ( Em b
+.Em a Em [ Em b
+.Em a Em | Em b
+.Em a Em . Em b
+.Em a Em , Em b
+.Em a Em ; Em b
+.Em a Em : Em b
+.Em a Em ? Em b
+.Em a Em ! Em b
+.Em a Em ) Em b
+.Em a Em ] Em b
+.Pp
+Isolated trailing punctuation:
+.Em a Em (
+.Em a Em [
+.Em a Em |
+.Em a Em .
+.Em a Em ,
+.Em a Em ;
+.Em a Em :
+.Em a Em ?
+.Em a Em !
+.Em a Em )
+.Em a Em ]
+.Pp
+Multiple isolated punctuation:
+.Em a Em ( [ Em b
+.Em a Em ) ] Em b
+.Pp
+Multiple punctuation:
+.Em [ ( arg ) ] .
+.Pp
+Quoted:
+.Em "a . b Nm"
+.Em ". b Nm"
--- /dev/null
+EM-PUNCT(1) General Commands Manual EM-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ E\bEm\bm-\b-p\bpu\bun\bnc\bct\bt - punctuation following an emphasis macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Leading punctuation: (_\bb [_\bb | _\bb . _\bb , _\bb ; _\bb : _\bb ? _\bb ! _\bb ) _\bb ] _\bb
+
+ Trailing punctuation: _\ba ( _\ba [ _\ba | _\ba. _\ba, _\ba; _\ba: _\ba? _\ba! _\ba) _\ba]
+
+ Middle punctuation: _\ba (_\bb _\ba [_\bb _\ba | _\bb _\ba. _\bb _\ba, _\bb _\ba; _\bb _\ba: _\bb _\ba? _\bb _\ba! _\bb _\ba) _\bb _\ba]
+ _\bb
+
+ Isolated punctuation: _\ba (_\bb _\ba [_\bb _\ba | _\bb _\ba . _\bb _\ba , _\bb _\ba ; _\bb _\ba : _\bb _\ba ? _\bb _\ba ! _\bb
+ _\ba ) _\bb _\ba ] _\bb
+
+ Isolated trailing punctuation: _\ba ( _\ba [ _\ba | _\ba . _\ba , _\ba ; _\ba : _\ba ? _\ba ! _\ba )
+ _\ba ]
+
+ Multiple isolated punctuation: _\ba ([_\bb _\ba )] _\bb
+
+ Multiple punctuation: [(_\ba_\br_\bg)].
+
+ Quoted: _\ba _\b. _\bb _\bN_\bm _\b. _\bb _\bN_\bm
+
+OpenBSD November 17, 2014 OpenBSD
--- /dev/null
+mandoc: punct.in:48:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:49:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:50:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:51:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:52:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:53:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:54:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:55:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:56:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:57:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:58:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:61:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:62:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:63:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:64:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:65:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:66:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:67:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:68:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:69:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:70:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:71:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:74:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:75:7: WARNING: skipping empty macro: Em
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2015/02/11 14:14:53 schwarze Exp $
+
+REGRESS_TARGETS = break empty obsolete unclosed
+LINT_TARGETS = break obsolete unclosed
+
+# groff-1.22.3 defect:
+# - When .Ec is missing, groff prints no page footer.
+
+SKIP_GROFF = unclosed
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd February 1, 2015
+.Dt EO-BREAK 1
+.Os OpenBSD
+.Sh NAME
+.Nm Eo-break
+.Nd breaking a custom enclosure block
+.Sh DESCRIPTION
+break
+.Eo <<
+eo
+.Bo
+bo
+ec
+.Ec >>
+bc
+.Bc
+no closing
+.Eo <<
+eo
+.Bo
+bo
+ec
+.Ec
+bc
+.Bc
+no content
+.Eo <<
+.Bo
+.Ec >>
+bc
+.Bc
+opening only
+.Eo <<
+.Bo
+.Ec
+bc
+.Bc
+broken
+.Bo
+bo
+.Eo <<
+eo
+bc
+.Bc
+ec
+.Ec >>
+no content
+.Bo
+bo
+.Eo <<
+.Bc
+.Ec >>
+no opening
+.Bo
+bo
+.Eo
+eo
+bc
+.Bc
+ec
+.Ec >>
+closing only
+.Bo
+bo
+.Eo
+.Bc
+.Ec >>
+final text
--- /dev/null
+EO-BREAK(1) General Commands Manual EO-BREAK(1)
+
+N\bNA\bAM\bME\bE
+ E\bEo\bo-\b-b\bbr\bre\bea\bak\bk - breaking a custom enclosure block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ break <<eo [bo ec>> bc] no closing <<eo [bo ec bc] no content <<[>> bc]
+ opening only <<[ bc] broken [bo <<eo bc] ec>> no content [bo <<]>> no
+ opening [bo eo bc] ec>> closing only [bo ]>> final text
+
+OpenBSD February 1, 2015 OpenBSD
--- /dev/null
+mandoc: break.in:14:2: WARNING: blocks badly nested: Eo breaks Bo
+mandoc: break.in:23:2: WARNING: blocks badly nested: Eo breaks Bo
+mandoc: break.in:29:2: WARNING: blocks badly nested: Eo breaks Bo
+mandoc: break.in:35:2: WARNING: blocks badly nested: Eo breaks Bo
+mandoc: break.in:44:2: WARNING: blocks badly nested: Bo breaks Eo
+mandoc: break.in:51:2: WARNING: blocks badly nested: Bo breaks Eo
+mandoc: break.in:59:2: WARNING: blocks badly nested: Bo breaks Eo
+mandoc: break.in:66:2: WARNING: blocks badly nested: Bo breaks Eo
--- /dev/null
+.Dd February 1, 2015
+.Dt EO-EMPTY 1
+.Os OpenBSD
+.Sh NAME
+.Nm Eo-empty
+.Nd empty implicit enclosure macros
+.Sh DESCRIPTION
+completely empty
+.Eo
+.Ec
+closing only
+.Eo
+.Ec >>
+content only
+.Eo
+text
+.Ec
+opening only
+.Eo <<
+.Ec
+no opening
+.Eo
+text
+.Ec >>
+no content
+.Eo <<
+.Ec >>
+no closing
+.Eo <<
+text
+.Ec
+all
+.Eo <<
+text
+.Ec >>
+completely empty
+.No prefix Ns Eo
+.Ec
+closing only
+.No prefix Ns Eo
+.Ec >>
+no opening
+.No prefix Ns Eo
+text
+.Ec >>
+no closing
+.Eo <<
+.No prefix Ns Ec
+stray closing
+.Ec >>
+end of file
--- /dev/null
+EO-EMPTY(1) General Commands Manual EO-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ E\bEo\bo-\b-e\bem\bmp\bpt\bty\by - empty implicit enclosure macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ completely empty closing only >> content only text opening only << no
+ opening text>> no content <<>> no closing <<text all <<text>> completely
+ empty prefix closing only prefix>> no opening prefixtext>> no closing
+ <<prefix stray closing
+ >> end of file
+
+OpenBSD February 1, 2015 OpenBSD
--- /dev/null
+.Dd July 2, 2014
+.Dt EO-OBSOLETE 1
+.Os OpenBSD
+.Sh NAME
+.Nm Eo-obsolete
+.Nd obsolete enclosure macros
+.Sh DESCRIPTION
+.En no prior \&Es
+.Pp
+.Es << >> surplus
+initial text
+.En enclosed words with Fl flags
+middle text
+.En more enclosed words
+final text
+.Pp
+.Es
+initial text
+.En after empty \&Es
+final text
--- /dev/null
+EO-OBSOLETE(1) General Commands Manual EO-OBSOLETE(1)
+
+N\bNA\bAM\bME\bE
+ E\bEo\bo-\b-o\bob\bbs\bso\bol\ble\bet\bte\be - obsolete enclosure macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ no prior Es
+
+ surplus initial text <<enclosed words with -\b-f\bfl\bla\bag\bgs\bs>> middle text <<more
+ enclosed words>> final text
+
+ initial text after empty Es final text
+
+OpenBSD July 2, 2014 OpenBSD
--- /dev/null
+mandoc: obsolete.in:8:2: WARNING: obsolete macro: En
+mandoc: obsolete.in:10:2: WARNING: obsolete macro: Es
+mandoc: obsolete.in:12:2: WARNING: obsolete macro: En
+mandoc: obsolete.in:14:2: WARNING: obsolete macro: En
+mandoc: obsolete.in:17:2: WARNING: obsolete macro: Es
+mandoc: obsolete.in:19:2: WARNING: obsolete macro: En
--- /dev/null
+.Dd February 11, 2015
+.Dt EO-UNCLOSED 1
+.Os OpenBSD
+.Sh NAME
+.Nm Eo-unclosed
+.Nd unclosed custom enclosure block
+.Sh DESCRIPTION
+before block
+.Eo <<
--- /dev/null
+EO-UNCLOSED(1) General Commands Manual EO-UNCLOSED(1)
+
+N\bNA\bAM\bME\bE
+ E\bEo\bo-\b-u\bun\bnc\bcl\blo\bos\bse\bed\bd - unclosed custom enclosure block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ before block <<
+
+OpenBSD February 11, 2015 OpenBSD
--- /dev/null
+mandoc: unclosed.in:9:2: ERROR: appending missing end of block: Eo
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = noarg font
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt ER-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Er-font
+.Nd changing fonts inside the error code macro
+.Sh DESCRIPTION
+normal text
+.Er EFONT\\fIemphasis\\fPEBACK
+trailing text
--- /dev/null
+ER-FONT(1) General Commands Manual ER-FONT(1)
+
+N\bNA\bAM\bME\bE
+ E\bEr\br-\b-f\bfo\bon\bnt\bt - changing fonts inside the error code macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text EFONT_\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsEBACK trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd January 19, 2011
+.Dt ER-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Er-noarg
+.Nd error constant macro without an argument
+.Sh DESCRIPTION
+with error:
+.Er ENOENT
+no error:
+.Er
+end of test document
--- /dev/null
+ER-NOARG(1) General Commands Manual ER-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ E\bEr\br-\b-n\bno\boa\bar\brg\bg - error constant macro without an argument
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with error: ENOENT no error: end of test document
+
+OpenBSD January 19, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: Er
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = font noarg
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd October 21, 2011
+.Dt EV-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ev-font
+.Nd formatting of environment variables
+.Sh DESCRIPTION
+The
+.Ev PATH
+variable.
+.Pp
+And with
+.Ev some \\fIembedded\\fP string .
--- /dev/null
+EV-FONT(1) General Commands Manual EV-FONT(1)
+
+N\bNA\bAM\bME\bE
+ E\bEv\bv-\b-f\bfo\bon\bnt\bt - formatting of environment variables
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The PATH variable.
+
+ And with some _\be_\bm_\bb_\be_\bd_\bd_\be_\bd string.
+
+OpenBSD October 21, 2011 OpenBSD
--- /dev/null
+.Dd July 2, 2014
+.Dt EV-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ev-noarg
+.Nd environment variable macro without an argument
+.Sh DESCRIPTION
+with variable:
+.Ev HOME
+no variable:
+.Ev
+end of test document
--- /dev/null
+EV-NOARG(1) General Commands Manual EV-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ E\bEv\bv-\b-n\bno\boa\bar\brg\bg - environment variable macro without an argument
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with variable: HOME no variable: end of test document
+
+OpenBSD July 2, 2014 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: Ev
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2014/08/14 02:00:53 schwarze Exp $
+
+REGRESS_TARGETS = args noname nostd
+LINT_TARGETS = noname nostd
+
+# groff-1.22.2 defect:
+# - .Ex without -std produces no output
+
+SKIP_GROFF = nostd
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 29, 2014
+.Dt EX-ARGS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ex-args
+.Nd arguments to the exit value macro
+.Sh EXIT STATUS
+no arguments:
+.Ex -std
+.Pp
+one argument:
+.Ex -std one
+.Pp
+two arguments:
+.Ex -std one two
--- /dev/null
+EX-ARGS(1) General Commands Manual EX-ARGS(1)
+
+N\bNA\bAM\bME\bE
+ E\bEx\bx-\b-a\bar\brg\bgs\bs - arguments to the exit value macro
+
+E\bEX\bXI\bIT\bT S\bST\bTA\bAT\bTU\bUS\bS
+ no arguments:
+ The E\bEx\bx-\b-a\bar\brg\bgs\bs utility exits 0 on success, and >0 if an error occurs.
+
+ one argument:
+ The o\bon\bne\be utility exits 0 on success, and >0 if an error occurs.
+
+ two arguments:
+ The o\bon\bne\be and t\btw\bwo\bo utilities exit 0 on success, and >0 if an error occurs.
+
+OpenBSD July 29, 2014 OpenBSD
--- /dev/null
+.Dd July 29, 2014
+.Dt EX-NONAME 1
+.Os OpenBSD
+.Sh NAME
+.Nm
+.Nd exit value macro without an available name
+.Sh EXIT STATUS
+no arguments:
+.Ex -std
+.Pp
+one argument:
+.Ex -std one
+.Pp
+two arguments:
+.Ex -std one two
--- /dev/null
+EX-NONAME(1) General Commands Manual EX-NONAME(1)
+
+N\bNA\bAM\bME\bE
+ - exit value macro without an available name
+
+E\bEX\bXI\bIT\bT S\bST\bTA\bAT\bTU\bUS\bS
+ no arguments:
+ The utility exits 0 on success, and >0 if an error occurs.
+
+ one argument:
+ The o\bon\bne\be utility exits 0 on success, and >0 if an error occurs.
+
+ two arguments:
+ The o\bon\bne\be and t\btw\bwo\bo utilities exit 0 on success, and >0 if an error occurs.
+
+OpenBSD July 29, 2014 OpenBSD
--- /dev/null
+mandoc: noname.in:5:2: ERROR: missing manual name, using "": Nm
+mandoc: noname.in:9:2: WARNING: missing utility name, using "": Ex
--- /dev/null
+.Dd July 29, 2014
+.Dt EX-NOSTD 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ex-nostd
+.Nd exit value macros without -std arguments
+.Sh EXIT STATUS
+no arguments:
+.Ex
+.Pp
+one argument:
+.Ex one
+.Pp
+two arguments:
+.Ex one two
--- /dev/null
+EX-NOSTD(1) General Commands Manual EX-NOSTD(1)
+
+N\bNA\bAM\bME\bE
+ E\bEx\bx-\b-n\bno\bos\bst\btd\bd - exit value macros without -std arguments
+
+E\bEX\bXI\bIT\bT S\bST\bTA\bAT\bTU\bUS\bS
+ no arguments:
+ The E\bEx\bx-\b-n\bno\bos\bst\btd\bd utility exits 0 on success, and >0 if an error occurs.
+
+ one argument:
+ The o\bon\bne\be utility exits 0 on success, and >0 if an error occurs.
+
+ two arguments:
+ The o\bon\bne\be and t\btw\bwo\bo utilities exit 0 on success, and >0 if an error occurs.
+
+OpenBSD July 29, 2014 OpenBSD
--- /dev/null
+mandoc: nostd.in:9:2: WARNING: missing -std argument, adding it: Ex
+mandoc: nostd.in:12:2: WARNING: missing -std argument, adding it: Ex
+mandoc: nostd.in:15:2: WARNING: missing -std argument, adding it: Ex
--- /dev/null
+# $OpenBSD: Makefile,v 1.3 2015/02/06 03:31:11 schwarze Exp $
+
+REGRESS_TARGETS = break empty eos font
+LINT_TARGETS = empty
+SKIP_TMAN = eos
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd June 9, 2010
+.Dt FD-BREAK 2
+.Os OpenBSD
+.Sh NAME
+.Nm Fd-break
+.Nd line break before old-style header include file
+.Sh SYNOPSIS
+.Fd #include <fcntl.h>
+.Ft int
+.Fn open "const char *path" "int flags" "mode_t mode"
+.Fd #include <sys/types.h>
+.Fd #include <unistd.h>
+.Ft int
+.Fn dup "int oldd"
+.Ft ssize_t
+.Fn write "int d" "const void *buf" "size_t nbytes"
+.Sh DESCRIPTION
+.Fd #include <fcntl.h>
+.Ft int
+.Fn open "const char *path" "int flags" "mode_t mode"
+.Fd #include <sys/types.h>
+.Fd #include <unistd.h>
+.Ft int
+.Fn dup "int oldd"
+.Ft ssize_t
+.Fn write "int d" "const void *buf" "size_t nbytes"
--- /dev/null
+FD-BREAK(2) System Calls Manual FD-BREAK(2)
+
+N\bNA\bAM\bME\bE
+ F\bFd\bd-\b-b\bbr\bre\bea\bak\bk - line break before old-style header include file
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<f\bfc\bcn\bnt\btl\bl.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ o\bop\bpe\ben\bn(_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bp_\ba_\bt_\bh, _\bi_\bn_\bt _\bf_\bl_\ba_\bg_\bs, _\bm_\bo_\bd_\be_\b__\bt _\bm_\bo_\bd_\be);
+
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<u\bun\bni\bis\bst\btd\bd.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ d\bdu\bup\bp(_\bi_\bn_\bt _\bo_\bl_\bd_\bd);
+
+ _\bs_\bs_\bi_\bz_\be_\b__\bt
+ w\bwr\bri\bit\bte\be(_\bi_\bn_\bt _\bd, _\bc_\bo_\bn_\bs_\bt _\bv_\bo_\bi_\bd _\b*_\bb_\bu_\bf, _\bs_\bi_\bz_\be_\b__\bt _\bn_\bb_\by_\bt_\be_\bs);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<f\bfc\bcn\bnt\btl\bl.\b.h\bh>\b>
+ _\bi_\bn_\bt o\bop\bpe\ben\bn(_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bp_\ba_\bt_\bh, _\bi_\bn_\bt _\bf_\bl_\ba_\bg_\bs, _\bm_\bo_\bd_\be_\b__\bt _\bm_\bo_\bd_\be) #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<u\bun\bni\bis\bst\btd\bd.\b.h\bh>\b>
+ _\bi_\bn_\bt d\bdu\bup\bp(_\bi_\bn_\bt _\bo_\bl_\bd_\bd) _\bs_\bs_\bi_\bz_\be_\b__\bt w\bwr\bri\bit\bte\be(_\bi_\bn_\bt _\bd, _\bc_\bo_\bn_\bs_\bt _\bv_\bo_\bi_\bd _\b*_\bb_\bu_\bf, _\bs_\bi_\bz_\be_\b__\bt _\bn_\bb_\by_\bt_\be_\bs)
+
+OpenBSD June 9, 2010 OpenBSD
--- /dev/null
+.Dd February 5, 2015
+.Dt FD-EMPTY 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fd-empty
+.Nd empty preprocessor directive macros
+.Sh SYNOPSIS
+.In sys/types.h
+.Fd
+.In stdlib.h
+.Sh DESCRIPTION
+leading text
+.Fd
+trailing text
--- /dev/null
+FD-EMPTY(1) General Commands Manual FD-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ F\bFd\bd-\b-e\bem\bmp\bpt\bty\by - empty preprocessor directive macros
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bst\btd\bdl\bli\bib\bb.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ leading text trailing text
+
+OpenBSD February 5, 2015 OpenBSD
--- /dev/null
+mandoc: empty.in:9:2: WARNING: skipping empty macro: Fd
+mandoc: empty.in:13:2: WARNING: skipping empty macro: Fd
--- /dev/null
+.Dd November 17, 2012
+.Dt FD-EOS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fd-eos
+.Nd end of sentence handling after the legacy include macro
+.Sh DESCRIPTION
+Let's use
+.Fd string.h .
+And then something else.
--- /dev/null
+FD-EOS(1) General Commands Manual FD-EOS(1)
+
+N\bNA\bAM\bME\bE
+ F\bFd\bd-\b-e\beo\bos\bs - end of sentence handling after the legacy include macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Let's use s\bst\btr\bri\bin\bng\bg.\b.h\bh .\b.
+ And then something else.
+
+OpenBSD November 17, 2012 OpenBSD
--- /dev/null
+.Dd July 9, 2012
+.Dt FD-FONT 2
+.Os OpenBSD
+.Sh NAME
+.Nm Fd-font
+.Nd changing the font inside the old-style include macro
+.Sh DESCRIPTION
+normal text
+.Fd prefix\\fIheader\\fPsuffix
+trailing text
--- /dev/null
+FD-FONT(2) System Calls Manual FD-FONT(2)
+
+N\bNA\bAM\bME\bE
+ F\bFd\bd-\b-f\bfo\bon\bnt\bt - changing the font inside the old-style include macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text p\bpr\bre\bef\bfi\bix\bx_\bh_\be_\ba_\bd_\be_\brs\bsu\buf\bff\bfi\bix\bx
+ trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.8 2014/08/21 12:56:24 schwarze Exp $
+
+REGRESS_TARGETS = noarg multiarg parsed punct font
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt FL-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fl-font
+.Nd changing fonts inside the flag macro
+.Sh DESCRIPTION
+normal text
+.Fl bold\\fIemphasis\\fPback
+trailing text
--- /dev/null
+FL-FONT(1) General Commands Manual FL-FONT(1)
+
+N\bNA\bAM\bME\bE
+ F\bFl\bl-\b-f\bfo\bon\bnt\bt - changing fonts inside the flag macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text -\b-b\bbo\bol\bld\bd_\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bba\bac\bck\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd December 24, 2009
+.Dt FL-MULTIARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fl-multiarg
+.Nd multiple arguments to a Fl macro
+.Sh DESCRIPTION
+Each group of flags in
+.Fl a b c def
+gets its own dash.
+.Pp
+Punctuation characters like in
+.Op Fl a | b
+get no dash.
--- /dev/null
+FL-MULTIARG(1) General Commands Manual FL-MULTIARG(1)
+
+N\bNA\bAM\bME\bE
+ F\bFl\bl-\b-m\bmu\bul\blt\bti\bia\bar\brg\bg - multiple arguments to a Fl macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Each group of flags in -\b-a\ba -\b-b\bb -\b-c\bc -\b-d\bde\bef\bf gets its own dash.
+
+ Punctuation characters like in [-\b-a\ba | -\b-b\bb] get no dash.
+
+OpenBSD December 24, 2009 OpenBSD
--- /dev/null
+.Dd August 21, 2014
+.Dt FL-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fl-noarg
+.Nd Fl macro without arguments
+.Sh DESCRIPTION
+Without an argument, it yields
+.Fl
+a dash.
+.Pp
+This is true even before middle
+.Fl | and
+trailing punctuation
+.Fl .
+.Pp
+Following macros
+.Fl Op flag
+follow without white space.
--- /dev/null
+FL-NOARG(1) General Commands Manual FL-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ F\bFl\bl-\b-n\bno\boa\bar\brg\bg - Fl macro without arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Without an argument, it yields -\b- a dash.
+
+ This is true even before middle -\b- | -\b-a\ban\bnd\bd trailing punctuation -\b-.
+
+ Following macros -\b-[flag] follow without white space.
+
+OpenBSD August 21, 2014 OpenBSD
--- /dev/null
+.Dd April 7, 2010
+.Dt FL-PARSED 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fl-parsed
+.Nd is the Fl macro parsed?
+.Sh DESCRIPTION
+.Op Fl Ux
+.Pp
+.Op Ux
+.Pp
+.Op Fl Cm x
+.Pp
+.Fl W all
+versus
+.Fl W Ns Cm all
+.Pp
+.Fl Cm help
--- /dev/null
+FL-PARSED(1) General Commands Manual FL-PARSED(1)
+
+N\bNA\bAM\bME\bE
+ F\bFl\bl-\b-p\bpa\bar\brs\bse\bed\bd - is the Fl macro parsed?
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ [-\b-UNIX]
+
+ [UNIX]
+
+ [-\b-x\bx]
+
+ -\b-W\bW -\b-a\bal\bll\bl versus -\b-W\bWa\bal\bll\bl
+
+ -\b-h\bhe\bel\blp\bp
+
+OpenBSD April 7, 2010 OpenBSD
--- /dev/null
+.Dd August 21, 2014
+.Dt FL-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fl-punct
+.Nd punctuation handling by the Fl macro
+.Sh DESCRIPTION
+closing punctuation
+.Fl a )
+only one
+.Fl )
+only more than one
+.Fl ) )
+middle
+.Fl a ) z
+start
+.Fl ) z
+dot
+.Fl . z
+comma
+.Fl , z
+semicolon
+.Fl ; z
+colon
+.Fl : z
+quest
+.Fl ? z
+excl
+.Fl ! z
+paren
+.Fl ) z
+bracket
+.Fl ] z
+bar
+.Fl | m
+op paren
+.Fl ( a
+op bracket
+.Fl [ a
--- /dev/null
+FL-PUNCT(1) General Commands Manual FL-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ F\bFl\bl-\b-p\bpu\bun\bnc\bct\bt - punctuation handling by the Fl macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ closing punctuation -\b-a\ba) only one -\b-) only more than one -\b-)) middle -\b-a\ba) -\b-z\bz
+ start -\b-) -\b-z\bz dot -\b-. -\b-z\bz comma -\b-, -\b-z\bz semicolon -\b-; -\b-z\bz colon -\b-: -\b-z\bz quest -\b-? -\b-z\bz
+ excl -\b-! -\b-z\bz paren -\b-) -\b-z\bz bracket -\b-] -\b-z\bz bar -\b- | -\b-m\bm op paren (-\b-a\ba op bracket
+ [-\b-a\ba
+
+OpenBSD August 21, 2014 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.13 2015/02/16 11:39:34 schwarze Exp $
+
+REGRESS_TARGETS = basic break eos font noarg nohead
+REGRESS_TARGETS += obsolete punct section warn
+LINT_TARGETS = noarg nohead obsolete warn
+
+# groff-1.22.3 defects:
+# - .Fo without an argument prints unbalanced parentheses
+# - .nr nS is ignored
+
+SKIP_GROFF = nohead section
+
+SKIP_TMAN = eos
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 7, 2012
+.Dt FO-BASIC 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fo-basic
+.Nd function blocks
+.Sh SYNOPSIS
+.Ft double
+.Fo sin
+.Fa "double x"
+.Fc
+.Ft double
+.Fo atan2
+.Fa "double y" "double x"
+.Fc
+.Sh DESCRIPTION
+.Ft double
+.Fo sin
+.Fa "double x"
+.Fc
+.Ft double
+.Fo atan2
+.Fa "double y" "double x"
+.Fc
--- /dev/null
+FO-BASIC(1) General Commands Manual FO-BASIC(1)
+
+N\bNA\bAM\bME\bE
+ F\bFo\bo-\b-b\bba\bas\bsi\bic\bc - function blocks
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ _\bd_\bo_\bu_\bb_\bl_\be
+ s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx);
+
+ _\bd_\bo_\bu_\bb_\bl_\be
+ a\bat\bta\ban\bn2\b2(_\bd_\bo_\bu_\bb_\bl_\be _\by, _\bd_\bo_\bu_\bb_\bl_\be _\bx);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx) _\bd_\bo_\bu_\bb_\bl_\be a\bat\bta\ban\bn2\b2(_\bd_\bo_\bu_\bb_\bl_\be _\by, _\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+OpenBSD July 7, 2012 OpenBSD
--- /dev/null
+.Dd April 8, 2014
+.Dt FO-BREAK 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fo-break
+.Nd line breaks in function blocks
+.Sh SYNOPSIS
+.Fd using \&Fn:
+.Ft my_long_return_type *
+.Fn my_long_function "my_long_type first_argument" "my_long_type second_argument"
+.Ft void
+.Fn "this function name is so ridiculously long \
+that it will not fit on the line" "my_long_type first_argument" \
+"my_long_type second_argument" "my_long_type third_argument"
+.Fd using \&Fo and single-argument \&Fa:
+.Ft my_long_return_type *
+.Fo my_long_function
+.Fa "my_long_type first_argument"
+.Fa "my_long_type second_argument"
+.Fc
+.Ft void
+.Fo "this function name is so ridiculously long \
+that it will not fit on the line"
+.Fa "my_long_type first_argument"
+.Fa "my_long_type second_argument"
+.Fa "my_long_type third_argument"
+.Fc
+.Fd using \&Fo and multi-argument \&Fa:
+.Ft my_long_return_type *
+.Fo my_long_function
+.Fa "my_long_type first_argument" "my_long_type second_argument"
+.Fc
+.Sh DESCRIPTION
+using Fn:
+.br
+.Fn my_long_function "my_long_type first_argument" "my_long_type second_argument"
+.Pp
+using Fo and single-argument Fa:
+.br
+.Fo my_long_function
+.Fa "my_long_type first_argument"
+.Fa "my_long_type second_argument"
+.Fc
+.Pp
+using Fo and multi-argument Fa:
+.br
+.Fo my_long_function
+.Fa "my_long_type first_argument" "my_long_type second_argument"
+.Fc
--- /dev/null
+FO-BREAK(1) General Commands Manual FO-BREAK(1)
+
+N\bNA\bAM\bME\bE
+ F\bFo\bo-\b-b\bbr\bre\bea\bak\bk - line breaks in function blocks
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ u\bus\bsi\bin\bng\bg F\bFn\bn:\b:
+
+ _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\br_\be_\bt_\bu_\br_\bn_\b__\bt_\by_\bp_\be _\b*
+ m\bmy\by_\b_l\blo\bon\bng\bg_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt,
+ _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt);
+
+ _\bv_\bo_\bi_\bd
+ t\bth\bhi\bis\bs f\bfu\bun\bnc\bct\bti\bio\bon\bn n\bna\bam\bme\be i\bis\bs s\bso\bo r\bri\bid\bdi\bic\bcu\bul\blo\bou\bus\bsl\bly\by l\blo\bon\bng\bg t\bth\bha\bat\bt i\bit\bt w\bwi\bil\bll\bl n\bno\bot\bt f\bfi\bit\bt o\bon\bn t\bth\bhe\be
+ l\bli\bin\bne\be(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt, _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt,
+ _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bt_\bh_\bi_\br_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt);
+
+ u\bus\bsi\bin\bng\bg F\bFo\bo a\ban\bnd\bd s\bsi\bin\bng\bgl\ble\be-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt F\bFa\ba:\b:
+
+ _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\br_\be_\bt_\bu_\br_\bn_\b__\bt_\by_\bp_\be _\b*
+ m\bmy\by_\b_l\blo\bon\bng\bg_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt,
+ _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt);
+
+ _\bv_\bo_\bi_\bd
+ t\bth\bhi\bis\bs f\bfu\bun\bnc\bct\bti\bio\bon\bn n\bna\bam\bme\be i\bis\bs s\bso\bo r\bri\bid\bdi\bic\bcu\bul\blo\bou\bus\bsl\bly\by l\blo\bon\bng\bg t\bth\bha\bat\bt i\bit\bt w\bwi\bil\bll\bl n\bno\bot\bt f\bfi\bit\bt o\bon\bn t\bth\bhe\be
+ l\bli\bin\bne\be(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt, _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt,
+ _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bt_\bh_\bi_\br_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt);
+
+ u\bus\bsi\bin\bng\bg F\bFo\bo a\ban\bnd\bd m\bmu\bul\blt\bti\bi-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt F\bFa\ba:\b:
+
+ _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\br_\be_\bt_\bu_\br_\bn_\b__\bt_\by_\bp_\be _\b*
+ m\bmy\by_\b_l\blo\bon\bng\bg_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt,
+ _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ using Fn:
+ m\bmy\by_\b_l\blo\bon\bng\bg_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt, _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be
+ _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt)
+
+ using Fo and single-argument Fa:
+ m\bmy\by_\b_l\blo\bon\bng\bg_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt,
+ _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt)
+
+ using Fo and multi-argument Fa:
+ m\bmy\by_\b_l\blo\bon\bng\bg_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt,
+ _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt)
+
+OpenBSD April 8, 2014 OpenBSD
--- /dev/null
+.Dd November 17, 2012
+.Dt FO-EOS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fo-eos
+.Nd end of sentence handling after a function block
+.Sh DESCRIPTION
+As an example of a trigonometric function, let us consider
+.Fn "double sin" "double x" .
+Or do you prefer
+.Ft double
+.Fo cos
+.Fa double x
+.Fc .
+Either will do.
--- /dev/null
+FO-EOS(1) General Commands Manual FO-EOS(1)
+
+N\bNA\bAM\bME\bE
+ F\bFo\bo-\b-e\beo\bos\bs - end of sentence handling after a function block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ As an example of a trigonometric function, let us consider d\bdo\bou\bub\bbl\ble\be
+ s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx). Or do you prefer _\bd_\bo_\bu_\bb_\bl_\be c\bco\bos\bs(_\bd_\bo_\bu_\bb_\bl_\be, _\bx). Either will do.
+
+OpenBSD November 17, 2012 OpenBSD
--- /dev/null
+.Dd July 9, 2012
+.Dt FO-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fo-font
+.Nd font nesting in function blocks
+.Sh DESCRIPTION
+.Fn prefix\\fIname\\fPsuffix "type arg"
+trailing text
+.Pp
+.Fo prefix\\fIname\\fPsuffix
+.Fa "type arg"
+.Fc
+trailing text
+.Pp
+.Fo function
+.Fa prefix\\fBbold\\fPsuffix
+.Fc
+trailing text
--- /dev/null
+FO-FONT(1) General Commands Manual FO-FONT(1)
+
+N\bNA\bAM\bME\bE
+ F\bFo\bo-\b-f\bfo\bon\bnt\bt - font nesting in function blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ p\bpr\bre\bef\bfi\bix\bx_\bn_\ba_\bm_\bes\bsu\buf\bff\bfi\bix\bx(_\bt_\by_\bp_\be _\ba_\br_\bg) trailing text
+
+ p\bpr\bre\bef\bfi\bix\bx_\bn_\ba_\bm_\bes\bsu\buf\bff\bfi\bix\bx(_\bt_\by_\bp_\be _\ba_\br_\bg) trailing text
+
+ f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bp_\br_\be_\bf_\bi_\bxb\bbo\bol\bld\bd_\bs_\bu_\bf_\bf_\bi_\bx) trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd July 12, 2012
+.Dt FN-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fn-noarg
+.Nd function name macro without arguments
+.Sh DESCRIPTION
+with arguments:
+.Ft int
+.Fn abs "int i"
+.Ft long
+.Fo labs bogus
+.Fa "long i"
+.Fc
+void function arguments:
+.Ft int
+.Fn rand
+.Ft long
+.Fo random
+.Fc
+.Ft u_int32_t
+.Fo arc4random
+.Fa
+.Fc
+no name arguments:
+.Ft int
+.Fn
+no type arguments:
+.Ft
+.Fn abs "int i"
+no type and void function arguments:
+.Ft
+.Fn rand
+.Ft
+.Fo random
+.Fc
+.Ft
+.Fo arc4random
+.Fa
+.Fc
+no arguments at all:
+.Ft
+.Fn
+end of test document
--- /dev/null
+FN-NOARG(1) General Commands Manual FN-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ F\bFn\bn-\b-n\bno\boa\bar\brg\bg - function name macro without arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with arguments: _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bi) _\bl_\bo_\bn_\bg l\bla\bab\bbs\bs(_\bl_\bo_\bn_\bg _\bi) void function arguments:
+ _\bi_\bn_\bt r\bra\ban\bnd\bd() _\bl_\bo_\bn_\bg r\bra\ban\bnd\bdo\bom\bm() _\bu_\b__\bi_\bn_\bt_\b3_\b2_\b__\bt a\bar\brc\bc4\b4r\bra\ban\bnd\bdo\bom\bm() no name arguments: _\bi_\bn_\bt no
+ type arguments: a\bab\bbs\bs(_\bi_\bn_\bt _\bi) no type and void function arguments: r\bra\ban\bnd\bd()
+ r\bra\ban\bnd\bdo\bom\bm() a\bar\brc\bc4\b4r\bra\ban\bnd\bdo\bom\bm() no arguments at all: end of test document
+
+OpenBSD July 12, 2012 OpenBSD
--- /dev/null
+mandoc: noarg.in:23:2: WARNING: skipping empty macro: Fa
+mandoc: noarg.in:27:2: WARNING: skipping empty macro: Fn
+mandoc: noarg.in:29:2: WARNING: skipping empty macro: Ft
+mandoc: noarg.in:32:2: WARNING: skipping empty macro: Ft
+mandoc: noarg.in:34:2: WARNING: skipping empty macro: Ft
+mandoc: noarg.in:37:2: WARNING: skipping empty macro: Ft
+mandoc: noarg.in:39:2: WARNING: skipping empty macro: Fa
+mandoc: noarg.in:42:2: WARNING: skipping empty macro: Ft
+mandoc: noarg.in:43:2: WARNING: skipping empty macro: Fn
+mandoc: noarg.in:12:10: ERROR: skipping excess arguments: Fo ... bogus
--- /dev/null
+.Dd February 5, 2015
+.Dt FO-NOHEAD 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fo-nohead
+.Nd function block macro without head argument
+.Sh DESCRIPTION
+initial text
+.Ft int
+.Fo
+.Fa int
+.Fc
+final text
--- /dev/null
+FO-NOHEAD(1) General Commands Manual FO-NOHEAD(1)
+
+N\bNA\bAM\bME\bE
+ F\bFo\bo-\b-n\bno\boh\bhe\bea\bad\bd - function block macro without head argument
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text _\bi_\bn_\bt(_\bi_\bn_\bt) final text
+
+OpenBSD February 5, 2015 OpenBSD
--- /dev/null
+mandoc: nohead.in:10:2: WARNING: missing function name, using "": Fo
--- /dev/null
+.Dd July 2, 2014
+.Dt FO-OBSOLETE 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fo-obsolete
+.Nd obsolete function macros
+.Sh DESCRIPTION
+old function type
+.Ot fortran
+.Pp
+function return value
+.Fr value
--- /dev/null
+FO-OBSOLETE(1) General Commands Manual FO-OBSOLETE(1)
+
+N\bNA\bAM\bME\bE
+ F\bFo\bo-\b-o\bob\bbs\bso\bol\ble\bet\bte\be - obsolete function macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ old function type _\bf_\bo_\br_\bt_\br_\ba_\bn
+
+ function return value _\bv_\ba_\bl_\bu_\be
+
+OpenBSD July 2, 2014 OpenBSD
--- /dev/null
+mandoc: obsolete.in:9:2: WARNING: obsolete macro: Ot
+mandoc: obsolete.in:12:2: WARNING: obsolete macro: Fr
--- /dev/null
+.Dd November 20, 2014
+.Dt FO-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fo-punct
+.Nd punctuation on function name input lines
+.Sh DESCRIPTION
+.Ft double
+.Fn sin , cos
--- /dev/null
+FO-PUNCT(1) General Commands Manual FO-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ F\bFo\bo-\b-p\bpu\bun\bnc\bct\bt - punctuation on function name input lines
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(), cos
+
+OpenBSD November 20, 2014 OpenBSD
--- /dev/null
+.Dd April 7, 2010
+.Dt FN-SECTION 3
+.Os OpenBSD
+.Sh NAME
+.Nm Fn-section
+.Nd special handling of Fn in various sections
+.Sh SYNOPSIS
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh DESCRIPTION
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh RETURN VALUES
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh ENVIRONMENT
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh FILES
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh EXAMPLES
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh DIAGNOSTICS
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh ERRORS
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh SEE ALSO
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh STANDARDS
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh HISTORY
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh AUTHORS
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh CAVEATS
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh BUGS
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.Sh CUSTOM
+.nr nS 1
+.Ft int
+.Fn abs "int j"
+.Ft double
+.Fn sin "double x"
+.nr nS 0
--- /dev/null
+FN-SECTION(3) Library Functions Manual FN-SECTION(3)
+
+N\bNA\bAM\bME\bE
+ F\bFn\bn-\b-s\bse\bec\bct\bti\bio\bon\bn - special handling of Fn in various sections
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ _\bi_\bn_\bt
+ a\bab\bbs\bs(_\bi_\bn_\bt _\bj);
+
+ _\bd_\bo_\bu_\bb_\bl_\be
+ s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+R\bRE\bET\bTU\bUR\bRN\bN V\bVA\bAL\bLU\bUE\bES\bS
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+F\bFI\bIL\bLE\bES\bS
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+E\bER\bRR\bRO\bOR\bRS\bS
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+C\bCA\bAV\bVE\bEA\bAT\bTS\bS
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+B\bBU\bUG\bGS\bS
+ _\bi_\bn_\bt a\bab\bbs\bs(_\bi_\bn_\bt _\bj) _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+C\bCU\bUS\bST\bTO\bOM\bM
+ _\bi_\bn_\bt
+ a\bab\bbs\bs(_\bi_\bn_\bt _\bj);
+
+ _\bd_\bo_\bu_\bb_\bl_\be
+ s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx);
+
+OpenBSD April 7, 2010 OpenBSD
--- /dev/null
+.Dd October 11, 2014
+.Dt FO-WARN 1
+.Os OpenBSD
+.Sh NAME
+.Nm Fo-warn
+.Nd warnings related to function blocks
+.Sh SYNOPSIS
+.Ft double
+.Fo sin()
+.Fa "double x"
+.Fc
+.Ft double
+.Fn atan2 "double y, double x"
--- /dev/null
+FO-WARN(1) General Commands Manual FO-WARN(1)
+
+N\bNA\bAM\bME\bE
+ F\bFo\bo-\b-w\bwa\bar\brn\bn - warnings related to function blocks
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ _\bd_\bo_\bu_\bb_\bl_\be
+ s\bsi\bin\bn(\b()\b)(_\bd_\bo_\bu_\bb_\bl_\be _\bx);
+
+ _\bd_\bo_\bu_\bb_\bl_\be
+ a\bat\bta\ban\bn2\b2(_\bd_\bo_\bu_\bb_\bl_\be _\by_\b, _\bd_\bo_\bu_\bb_\bl_\be _\bx);
+
+OpenBSD October 11, 2014 OpenBSD
--- /dev/null
+mandoc: warn.in:9:8: WARNING: parenthesis in function name: sin()
+mandoc: warn.in:13:19: WARNING: comma in function argument: double y, double x
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2012/07/09 17:52:09 schwarze Exp $
+
+REGRESS_TARGETS = font
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt FT-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ft-font
+.Nd changing fonts inside the function return type macro
+.Sh DESCRIPTION
+normal text
+.Ft emphasis\\fBbold\\fPback
+trailing text
--- /dev/null
+FT-FONT(1) General Commands Manual FT-FONT(1)
+
+N\bNA\bAM\bME\bE
+ F\bFt\bt-\b-f\bfo\bon\bnt\bt - changing fonts inside the function return type macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bbo\bol\bld\bd_\bb_\ba_\bc_\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = noarg font
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt IC-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ic-font
+.Nd changing fonts inside the internal command macro
+.Sh DESCRIPTION
+normal text
+.Ic bold\\fIemphasis\\fPback
+trailing text
--- /dev/null
+IC-FONT(1) General Commands Manual IC-FONT(1)
+
+N\bNA\bAM\bME\bE
+ I\bIc\bc-\b-f\bfo\bon\bnt\bt - changing fonts inside the internal command macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text b\bbo\bol\bld\bd_\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bba\bac\bck\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd January 19, 2011
+.Dt IC-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ic-noarg
+.Nd interactive command without an argument
+.Sh DESCRIPTION
+with command:
+.Ic ls
+no command:
+.Ic
+end of test document
--- /dev/null
+IC-NOARG(1) General Commands Manual IC-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ I\bIc\bc-\b-n\bno\boa\bar\brg\bg - interactive command without an argument
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with command: l\bls\bs no command: end of test document
+
+OpenBSD January 19, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: Ic
--- /dev/null
+# $OpenBSD: Makefile,v 1.6 2015/02/06 01:07:07 schwarze Exp $
+
+REGRESS_TARGETS = break eos font noarg
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd June 6, 2010
+.Dt IN-BREAK 2
+.Os OpenBSD
+.Sh NAME
+.Nm In-break
+.Nd line break before header include file
+.Sh SYNOPSIS
+.In fcntl.h
+.Ft int
+.Fn open "const char *path" "int flags" "mode_t mode"
+.In sys/types.h
+.In unistd.h
+.Ft int
+.Fn dup "int oldd"
+.Ft ssize_t
+.Fn write "int d" "const void *buf" "size_t nbytes"
+.Sh DESCRIPTION
+.In fcntl.h
+.Ft int
+.Fn open "const char *path" "int flags" "mode_t mode"
+.In sys/types.h
+.In unistd.h
+.Ft int
+.Fn dup "int oldd"
+.Ft ssize_t
+.Fn write "int d" "const void *buf" "size_t nbytes"
--- /dev/null
+IN-BREAK(2) System Calls Manual IN-BREAK(2)
+
+N\bNA\bAM\bME\bE
+ I\bIn\bn-\b-b\bbr\bre\bea\bak\bk - line break before header include file
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<f\bfc\bcn\bnt\btl\bl.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ o\bop\bpe\ben\bn(_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bp_\ba_\bt_\bh, _\bi_\bn_\bt _\bf_\bl_\ba_\bg_\bs, _\bm_\bo_\bd_\be_\b__\bt _\bm_\bo_\bd_\be);
+
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<u\bun\bni\bis\bst\btd\bd.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ d\bdu\bup\bp(_\bi_\bn_\bt _\bo_\bl_\bd_\bd);
+
+ _\bs_\bs_\bi_\bz_\be_\b__\bt
+ w\bwr\bri\bit\bte\be(_\bi_\bn_\bt _\bd, _\bc_\bo_\bn_\bs_\bt _\bv_\bo_\bi_\bd _\b*_\bb_\bu_\bf, _\bs_\bi_\bz_\be_\b__\bt _\bn_\bb_\by_\bt_\be_\bs);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ <_\bf_\bc_\bn_\bt_\bl_\b._\bh> _\bi_\bn_\bt o\bop\bpe\ben\bn(_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bp_\ba_\bt_\bh, _\bi_\bn_\bt _\bf_\bl_\ba_\bg_\bs, _\bm_\bo_\bd_\be_\b__\bt _\bm_\bo_\bd_\be)
+ <_\bs_\by_\bs_\b/_\bt_\by_\bp_\be_\bs_\b._\bh> <_\bu_\bn_\bi_\bs_\bt_\bd_\b._\bh> _\bi_\bn_\bt d\bdu\bup\bp(_\bi_\bn_\bt _\bo_\bl_\bd_\bd) _\bs_\bs_\bi_\bz_\be_\b__\bt w\bwr\bri\bit\bte\be(_\bi_\bn_\bt _\bd, _\bc_\bo_\bn_\bs_\bt
+ _\bv_\bo_\bi_\bd _\b*_\bb_\bu_\bf, _\bs_\bi_\bz_\be_\b__\bt _\bn_\bb_\by_\bt_\be_\bs)
+
+OpenBSD June 6, 2010 OpenBSD
--- /dev/null
+.Dd November 16, 2012
+.Dt IN-EOS 1
+.Os OpenBSD
+.Sh NAME
+.Nm In-eos
+.Nd end of sentence handling after the include macro
+.Sh DESCRIPTION
+Let's use
+.In string.h .
+And then something else.
--- /dev/null
+IN-EOS(1) General Commands Manual IN-EOS(1)
+
+N\bNA\bAM\bME\bE
+ I\bIn\bn-\b-e\beo\bos\bs - end of sentence handling after the include macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Let's use <_\bs_\bt_\br_\bi_\bn_\bg_\b._\bh>. And then something else.
+
+OpenBSD November 16, 2012 OpenBSD
--- /dev/null
+.Dd July 9, 2012
+.Dt IN-FONT 2
+.Os OpenBSD
+.Sh NAME
+.Nm In-font
+.Nd changing the font inside the include macro
+.Sh DESCRIPTION
+normal text
+.In prefix\\fBheader\\fPsuffix
+trailing text
--- /dev/null
+IN-FONT(2) System Calls Manual IN-FONT(2)
+
+N\bNA\bAM\bME\bE
+ I\bIn\bn-\b-f\bfo\bon\bnt\bt - changing the font inside the include macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text <_\bp_\br_\be_\bf_\bi_\bxh\bhe\bea\bad\bde\ber\br_\bs_\bu_\bf_\bf_\bi_\bx> trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd February 5, 2015
+.Dt IN-NOARG 2
+.Os OpenBSD
+.Sh NAME
+.Nm In-noarg
+.Nd include file macros without argument
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn sin "double x"
+.In
+.Ft double
+.Fn cos "double x"
+.Sh DESCRIPTION
+.In math.h
+.Ft double
+.Fn sin "double x"
+.In
+.Ft double
+.Fn cos "double x"
--- /dev/null
+IN-NOARG(2) System Calls Manual IN-NOARG(2)
+
+N\bNA\bAM\bME\bE
+ I\bIn\bn-\b-n\bno\boa\bar\brg\bg - include file macros without argument
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<m\bma\bat\bth\bh.\b.h\bh>\b>
+
+ _\bd_\bo_\bu_\bb_\bl_\be
+ s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx);
+
+ _\bd_\bo_\bu_\bb_\bl_\be
+ c\bco\bos\bs(_\bd_\bo_\bu_\bb_\bl_\be _\bx);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ <_\bm_\ba_\bt_\bh_\b._\bh> _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx) _\bd_\bo_\bu_\bb_\bl_\be c\bco\bos\bs(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+
+OpenBSD February 5, 2015 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: In
+mandoc: noarg.in:18:2: WARNING: skipping empty macro: In
--- /dev/null
+# $OpenBSD: Makefile,v 1.6 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = break badargs eos
+LINT_TARGETS = badargs
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd January 2, 2011
+.Dt LB-BADARGS 3
+.Os OpenBSD
+.Sh NAME
+.Nm Lb-badargs
+.Nd bad arguments to the library macro
+.Sh LIBRARY
+.Lb murks
+.Lb
+.Lb mylib another
--- /dev/null
+LB-BADARGS(3) Library Functions Manual LB-BADARGS(3)
+
+N\bNA\bAM\bME\bE
+ L\bLb\bb-\b-b\bba\bad\bda\bar\brg\bgs\bs - bad arguments to the library macro
+
+L\bLI\bIB\bBR\bRA\bAR\bRY\bY
+ library ``murks''
+ library ``mylib'' another
+
+OpenBSD January 2, 2011 OpenBSD
--- /dev/null
+mandoc: badargs.in:9:2: WARNING: skipping empty macro: Lb
--- /dev/null
+.Dd June 30, 2010
+.Dt LB-BREAK 3
+.Os OpenBSD
+.Sh NAME
+.Nm Lb-break
+.Nd output line breaks after the library macro
+.Sh LIBRARY
+.Lb mylib
+text
+.Sh DESCRIPTION
+.Lb mylib
+text
--- /dev/null
+LB-BREAK(3) Library Functions Manual LB-BREAK(3)
+
+N\bNA\bAM\bME\bE
+ L\bLb\bb-\b-b\bbr\bre\bea\bak\bk - output line breaks after the library macro
+
+L\bLI\bIB\bBR\bRA\bAR\bRY\bY
+ library ``mylib''
+ text
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ library ``mylib'' text
+
+OpenBSD June 30, 2010 OpenBSD
--- /dev/null
+.Dd November 17, 2012
+.Dt LB-EOS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Lb-eos
+.Nd end of sentence handling after the library macro
+.Sh DESCRIPTION
+Let's use the
+.Lb mylib .
+And some other libraries.
--- /dev/null
+LB-EOS(1) General Commands Manual LB-EOS(1)
+
+N\bNA\bAM\bME\bE
+ L\bLb\bb-\b-e\beo\bos\bs - end of sentence handling after the library macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Let's use the library ``mylib''. And some other libraries.
+
+OpenBSD November 17, 2012 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = punct font
+LINT_TARGETS = punct
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt LI-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Li-font
+.Nd changing fonts inside the literal in-line macro
+.Sh DESCRIPTION
+normal text
+.Li literal\\fIemphasis\\fPback
+trailing text
--- /dev/null
+LI-FONT(1) General Commands Manual LI-FONT(1)
+
+N\bNA\bAM\bME\bE
+ L\bLi\bi-\b-f\bfo\bon\bnt\bt - changing fonts inside the literal in-line macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text literal_\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsback trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd November 17, 2014
+.Dt LI-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Li-punct
+.Nd punctuation following a literal macro
+.Sh DESCRIPTION
+Leading punctuation:
+.Li ( b
+.Li [ b
+.Li | b
+.Li . b
+.Li , b
+.Li ; b
+.Li : b
+.Li ? b
+.Li ! b
+.Li ) b
+.Li ] b
+.Pp
+Trailing punctuation:
+.Li a (
+.Li a [
+.Li a |
+.Li a .
+.Li a ,
+.Li a ;
+.Li a :
+.Li a ?
+.Li a !
+.Li a )
+.Li a ]
+.Pp
+Middle punctuation:
+.Li a ( b
+.Li a [ b
+.Li a | b
+.Li a . b
+.Li a , b
+.Li a ; b
+.Li a : b
+.Li a ? b
+.Li a ! b
+.Li a ) b
+.Li a ] b
+.Pp
+Isolated punctuation:
+.Li a Li ( Li b
+.Li a Li [ Li b
+.Li a Li | Li b
+.Li a Li . Li b
+.Li a Li , Li b
+.Li a Li ; Li b
+.Li a Li : Li b
+.Li a Li ? Li b
+.Li a Li ! Li b
+.Li a Li ) Li b
+.Li a Li ] Li b
+.Pp
+Isolated trailing punctuation:
+.Li a Li (
+.Li a Li [
+.Li a Li |
+.Li a Li .
+.Li a Li ,
+.Li a Li ;
+.Li a Li :
+.Li a Li ?
+.Li a Li !
+.Li a Li )
+.Li a Li ]
+.Pp
+Multiple isolated punctuation:
+.Li a Li ( [ Li b
+.Li a Li ) ] Li b
+.Pp
+Multiple punctuation:
+.Li [ ( arg ) ] .
+.Pp
+Quoted:
+.Li "a . b Nm"
+.Li ". b Nm"
+.Li "."
--- /dev/null
+LI-PUNCT(1) General Commands Manual LI-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ L\bLi\bi-\b-p\bpu\bun\bnc\bct\bt - punctuation following a literal macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Leading punctuation: (b [b | b . b , b ; b : b ? b ! b ) b ] b
+
+ Trailing punctuation: a ( a [ a | a. a, a; a: a? a! a) a]
+
+ Middle punctuation: a (b a [b a | b a. b a, b a; b a: b a? b a! b a) b a]
+ b
+
+ Isolated punctuation: a (b a [b a | b a . b a , b a ; b a : b a ? b a ! b
+ a ) b a ] b
+
+ Isolated trailing punctuation: a ( a [ a | a . a , a ; a : a ? a ! a )
+ a ]
+
+ Multiple isolated punctuation: a ([b a )] b
+
+ Multiple punctuation: [(arg)].
+
+ Quoted: a . b Nm . b Nm .
+
+OpenBSD November 17, 2014 OpenBSD
--- /dev/null
+mandoc: punct.in:48:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:49:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:50:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:51:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:52:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:53:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:54:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:55:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:56:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:57:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:58:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:61:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:62:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:63:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:64:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:65:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:66:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:67:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:68:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:69:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:70:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:71:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:74:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:75:7: WARNING: skipping empty macro: Li
--- /dev/null
+# $OpenBSD: Makefile,v 1.3 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = link noarg font
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt LK-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Lk-font
+.Nd changing the font inside the hyperlink macro
+.Sh DESCRIPTION
+normal text
+.Lk http://www.\\fIopenbsd\\fP.org/ Open\\fBBSD\\fPweb
+trailing text
--- /dev/null
+LK-FONT(1) General Commands Manual LK-FONT(1)
+
+N\bNA\bAM\bME\bE
+ L\bLk\bk-\b-f\bfo\bon\bnt\bt - changing the font inside the hyperlink macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text _\bO_\bp_\be_\bnB\bBS\bSD\bD_\bw_\be_\bb_\b: h\bht\btt\btp\bp:\b:/\b//\b/w\bww\bww\bw.\b._\bo_\bp_\be_\bn_\bb_\bs_\bd.\b.o\bor\brg\bg/\b/ trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd August 8, 2010
+.Dt LK-LINK 1
+.Os OpenBSD
+.Sh NAME
+.Nm Lk-link
+.Nd formatting of hyperlinks
+.Sh DESCRIPTION
+Here are some web sites of BSD operating systems:
+.Lk http://www.freebsd.org/ FreeBSD
+.Lk http://www.netbsd.org/ NetBSD
+.Lk http://www.openbsd.org/ OpenBSD
+.Sh SEE ALSO
+Here are some web sites of BSD operating systems:
+.Lk http://www.freebsd.org/ FreeBSD
+.Lk http://www.netbsd.org/ NetBSD
+.Lk http://www.openbsd.org/ OpenBSD
--- /dev/null
+LK-LINK(1) General Commands Manual LK-LINK(1)
+
+N\bNA\bAM\bME\bE
+ L\bLk\bk-\b-l\bli\bin\bnk\bk - formatting of hyperlinks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Here are some web sites of BSD operating systems: _\bF_\br_\be_\be_\bB_\bS_\bD_\b:
+ h\bht\btt\btp\bp:\b:/\b//\b/w\bww\bww\bw.\b.f\bfr\bre\bee\beb\bbs\bsd\bd.\b.o\bor\brg\bg/\b/ _\bN_\be_\bt_\bB_\bS_\bD_\b: h\bht\btt\btp\bp:\b:/\b//\b/w\bww\bww\bw.\b.n\bne\bet\btb\bbs\bsd\bd.\b.o\bor\brg\bg/\b/ _\bO_\bp_\be_\bn_\bB_\bS_\bD_\b:
+ h\bht\btt\btp\bp:\b:/\b//\b/w\bww\bww\bw.\b.o\bop\bpe\ben\bnb\bbs\bsd\bd.\b.o\bor\brg\bg/\b/
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ Here are some web sites of BSD operating systems: _\bF_\br_\be_\be_\bB_\bS_\bD_\b:
+ h\bht\btt\btp\bp:\b:/\b//\b/w\bww\bww\bw.\b.f\bfr\bre\bee\beb\bbs\bsd\bd.\b.o\bor\brg\bg/\b/ _\bN_\be_\bt_\bB_\bS_\bD_\b: h\bht\btt\btp\bp:\b:/\b//\b/w\bww\bww\bw.\b.n\bne\bet\btb\bbs\bsd\bd.\b.o\bor\brg\bg/\b/ _\bO_\bp_\be_\bn_\bB_\bS_\bD_\b:
+ h\bht\btt\btp\bp:\b:/\b//\b/w\bww\bww\bw.\b.o\bop\bpe\ben\bnb\bbs\bsd\bd.\b.o\bor\brg\bg/\b/
+
+OpenBSD August 8, 2010 OpenBSD
--- /dev/null
+.Dd January 19, 2011
+.Dt LK-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Lk-noarg
+.Nd hyperlink macro without arguments
+.Sh DESCRIPTION
+two arguments
+.Lk http://mdocml.bsd.lv/ mandoc
+one argument
+.Lk http://www.openbsd.org/
+no argument
+.Lk
+end of test document
--- /dev/null
+LK-NOARG(1) General Commands Manual LK-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ L\bLk\bk-\b-n\bno\boa\bar\brg\bg - hyperlink macro without arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ two arguments _\bm_\ba_\bn_\bd_\bo_\bc_\b: h\bht\btt\btp\bp:\b:/\b//\b/m\bmd\bdo\boc\bcm\bml\bl.\b.b\bbs\bsd\bd.\b.l\blv\bv/\b/ one argument
+ h\bht\btt\btp\bp:\b:/\b//\b/w\bww\bww\bw.\b.o\bop\bpe\ben\bnb\bbs\bsd\bd.\b.o\bor\brg\bg/\b/ no argument end of test document
+
+OpenBSD January 19, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:13:2: WARNING: skipping empty macro: Lk
--- /dev/null
+# $OpenBSD: Makefile,v 1.32 2017/01/11 17:39:45 schwarze Exp $
+
+SUBDIR = Ad An Ap Aq Ar At Bd Bf Bk Bl Brq Bx Cd Cm
+SUBDIR += D1 Db Dd Dl Dq Dt Dv Em Eo Er Ev Ex Fd Fl Fo Ft Ic In Lb Li Lk
+SUBDIR += Ms Mt Nd Nm No Ns Oo Op Os Ox Pa Pf Pp Qq Rs Rv
+SUBDIR += Sh Sm Sq St Sx Sy Tn Ud Ux Va Vt Xr blank break
+
+.include "../Makefile.sub"
+.include <bsd.subdir.mk>
--- /dev/null
+# $OpenBSD: Makefile.inc,v 1.1 2009/10/28 03:20:42 schwarze Exp $
+
+.include "../Makefile.inc"
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = noarg font
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd November 20, 2014
+.Dt MS-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ms-font
+.Nd changing fonts inside the mathematical symbol macro
+.Sh DESCRIPTION
+normal text
+.Ms bold\\fIemphasis\\fPback | after : punctuation
+trailing text
--- /dev/null
+MS-FONT(1) General Commands Manual MS-FONT(1)
+
+N\bNA\bAM\bME\bE
+ M\bMs\bs-\b-f\bfo\bon\bnt\bt - changing fonts inside the mathematical symbol macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text b\bbo\bol\bld\bd_\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bba\bac\bck\bk | a\baf\bft\bte\ber\br: p\bpu\bun\bnc\bct\btu\bua\bat\bti\bio\bon\bn trailing text
+
+OpenBSD November 20, 2014 OpenBSD
--- /dev/null
+.Dd January 19, 2011
+.Dt MS-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ms-noarg
+.Nd mathematical symbol without an argument
+.Sh DESCRIPTION
+with command:
+.Ms alpha
+no command:
+.Ms
+end of test document
--- /dev/null
+MS-NOARG(1) General Commands Manual MS-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ M\bMs\bs-\b-n\bno\boa\bar\brg\bg - mathematical symbol without an argument
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with command: a\bal\blp\bph\bha\ba no command: end of test document
+
+OpenBSD January 19, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: Ms
--- /dev/null
+# $OpenBSD: Makefile,v 1.5 2012/07/09 17:52:09 schwarze Exp $
+
+REGRESS_TARGETS = simple font
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt MT-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Mt-font
+.Nd changing fonts inside the mailto macro
+.Sh DESCRIPTION
+normal text
+.Mt emphasis\\fBbold\\fPback
+trailing text
--- /dev/null
+MT-FONT(1) General Commands Manual MT-FONT(1)
+
+N\bNA\bAM\bME\bE
+ M\bMt\bt-\b-f\bfo\bon\bnt\bt - changing fonts inside the mailto macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bbo\bol\bld\bd_\bb_\ba_\bc_\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd February 17, 2010
+.Dt MT-SIMPLE 1
+.Os OpenBSD
+.Sh NAME
+.Nm Mt-simple
+.Nd mailto
+.Sh DESCRIPTION
+Please send mail to
+.Mt schwarze@openbsd.org .
+.Pp
+Do not send mail to
+.Mt .
--- /dev/null
+MT-SIMPLE(1) General Commands Manual MT-SIMPLE(1)
+
+N\bNA\bAM\bME\bE
+ M\bMt\bt-\b-s\bsi\bim\bmp\bpl\ble\be - mailto
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Please send mail to _\bs_\bc_\bh_\bw_\ba_\br_\bz_\be_\b@_\bo_\bp_\be_\bn_\bb_\bs_\bd_\b._\bo_\br_\bg.
+
+ Do not send mail to _\b~.
+
+OpenBSD February 17, 2010 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.5 2015/02/11 13:37:31 schwarze Exp $
+
+REGRESS_TARGETS = broken hyph noarg par
+LINT_TARGETS = broken noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd February 11, 2015
+.Dt ND-BROKEN 1
+.Os OpenBSD
+.Sh NAME
+.Oo
+.Nm Nd-broken
+.Nd description lines ended
+.Oc
+by explicit blocks
+.Sh DESCRIPTION
+Start nested lists:
+.Bl -tag -width Ds
+.Bl -tag -width Ds
+.It inner tag
+inner text
+.Nd inner description
+.El
+back to outer list
+.It outer tag
+outer text
+.El
+end of file
--- /dev/null
+ND-BROKEN(1) General Commands Manual ND-BROKEN(1)
+
+N\bNA\bAM\bME\bE
+ [N\bNd\bd-\b-b\bbr\bro\bok\bke\ben\bn - description lines ended] by explicit blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Start nested lists:
+
+ inner tag
+ inner text - inner description
+ back to outer list
+
+ outer tag
+ outer text
+ end of file
+
+OpenBSD February 11, 2015 OpenBSD
--- /dev/null
+mandoc: broken.in:5:2: WARNING: bad NAME section content: Oo
+mandoc: broken.in:9:1: WARNING: bad NAME section content: text
+mandoc: broken.in:4:2: WARNING: NAME section without Nm before Nd
+mandoc: broken.in:4:2: WARNING: NAME section without description
+mandoc: broken.in:13:2: WARNING: moving content out of list: Bl
+mandoc: broken.in:18:1: WARNING: moving content out of list: text
--- /dev/null
+.Dd October 5, 2013
+.Dt ND-HYPH 1
+.Os OpenBSD
+.Sh NAME
+.Nm Nd-hyph
+.Nd when there is already a hyphen within the the word, \
+line-breaking is permitted at that place
+.Sh DESCRIPTION
+Even in the document description line in the
+.Sx NAME
+section.
--- /dev/null
+ND-HYPH(1) General Commands Manual ND-HYPH(1)
+
+N\bNA\bAM\bME\bE
+ N\bNd\bd-\b-h\bhy\byp\bph\bh - when there is already a hyphen within the the word, line-
+ breaking is permitted at that place
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Even in the document description line in the _\bN_\bA_\bM_\bE section.
+
+OpenBSD October 5, 2013 OpenBSD
--- /dev/null
+.Dd January 2, 2011
+.Dt ND-ARG0 1
+.Os OpenBSD
+.Sh NAME
+.Nm Nd-arg0
+.Nd
+.Sh DESCRIPTION
+empty description line
--- /dev/null
+ND-ARG0(1) General Commands Manual ND-ARG0(1)
+
+N\bNA\bAM\bME\bE
+ N\bNd\bd-\b-a\bar\brg\bg0\b0 -
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ empty description line
+
+OpenBSD January 2, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:6:2: WARNING: missing description line, using "": Nd
--- /dev/null
+.Dd February 3, 2015
+.Dt ND-PAR 1
+.Os OpenBSD
+.Sh NAME
+.Nm Nd-par
+.Nd paragraph macro
+after one-line description
+.Pp
+Usually, there shouldn't be additional text in the NAME section.
+.Sh DESCRIPTION
+The text belongs here.
+.Nd stray
+description macro
+.Pp
+Back to normal state.
--- /dev/null
+ND-PAR(1) General Commands Manual ND-PAR(1)
+
+N\bNA\bAM\bME\bE
+ N\bNd\bd-\b-p\bpa\bar\br - paragraph macro after one-line description
+
+ Usually, there shouldn't be additional text in the NAME section.
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The text belongs here. - stray description macro
+
+ Back to normal state.
+
+OpenBSD February 3, 2015 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.13 2017/02/06 03:44:37 schwarze Exp $
+
+REGRESS_TARGETS = badNAME badNAMEuse break broken
+REGRESS_TARGETS += empty emptyNAME emptyNAMEuse
+REGRESS_TARGETS += font long par parns punct
+
+LINT_TARGETS = badNAME badNAMEuse break
+
+# groff-1.22.3/mandoc differences:
+# - When the head of an Nm block in the SYNOPSIS is broken by an
+# explicit block end macro on the same line, formatting differs,
+# but doesn't make sense either way.
+# - Groff doesn't support the nS register.
+
+SKIP_GROFF = broken parns
+SKIP_TMAN = broken par parns
+
+# groff-1.22.3 defect:
+# When a SYNOPSIS Nm block head breaks a sub block, all the
+# remaining content in the document gets lost.
+
+SKIP_GROFF += break
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 12, 2012
+.Dt NM-BADNAME 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bx
+.Nd text production macro on the NAME \&Nm line
+.Sh SYNOPSIS
+badNAME
--- /dev/null
+NM-BADNAME(1) General Commands Manual NM-BADNAME(1)
+
+N\bNA\bAM\bME\bE
+ BSD - text production macro on the NAME Nm line
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ badNAME
+
+OpenBSD July 12, 2012 OpenBSD
--- /dev/null
+mandoc: badNAME.in:5:2: ERROR: missing manual name, using "": Nm
+mandoc: badNAME.in:5:5: WARNING: bad NAME section content: Bx
--- /dev/null
+.Dd July 12, 2012
+.Dt NM-BADNAMEUSE 1
+.Os OpenBSD
+.Sh NAME
+.Nm Bx
+.Nd text production macro on the NAME \&Nm line, used later
+.Sh SYNOPSIS
+.Nm some_name
+.Nm
--- /dev/null
+NM-BADNAMEUSE(1) General Commands Manual NM-BADNAMEUSE(1)
+
+N\bNA\bAM\bME\bE
+ BSD - text production macro on the NAME Nm line, used later
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ s\bso\bom\bme\be_\b_n\bna\bam\bme\be
+ s\bso\bom\bme\be_\b_n\bna\bam\bme\be
+
+OpenBSD July 12, 2012 OpenBSD
--- /dev/null
+mandoc: badNAMEuse.in:5:2: ERROR: missing manual name, using "": Nm
+mandoc: badNAMEuse.in:5:5: WARNING: bad NAME section content: Bx
--- /dev/null
+.Dd August 17, 2014
+.Dt NM-BREAK 1
+.Os OpenBSD
+.Sh NAME
+.Nm Nm-break
+.Nd name block head breaking another block
+.Sh SYNOPSIS
+.Nm before Bo within
+.Sh DESCRIPTION
+initial text
+.Nm
+final text
--- /dev/null
+NM-BREAK(1) General Commands Manual NM-BREAK(1)
+
+N\bNA\bAM\bME\bE
+ N\bNm\bm-\b-b\bbr\bre\bea\bak\bk - name block head breaking another block
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ b\bbe\bef\bfo\bor\bre\be [\b[w\bwi\bit\bth\bhi\bin\bn]\b]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text N\bNm\bm-\b-b\bbr\bre\bea\bak\bk final text
+
+OpenBSD August 17, 2014 OpenBSD
--- /dev/null
+mandoc: break.in:9:2: ERROR: inserting missing end of block: Sh breaks Bo
--- /dev/null
+.Dd February 2, 2015
+.Dt NM-BROKEN 1
+.Os OpenBSD
+.Sh NAME
+.Nm Nm-broken
+.Nd broken synapsis name block
+.Sh SYNOPSIS
+.Ft int
+.Fo function
+.Nm name Fc tail
--- /dev/null
+NM-BROKEN(1) General Commands Manual NM-BROKEN(1)
+
+N\bNA\bAM\bME\bE
+ N\bNm\bm-\b-b\bbr\bro\bok\bke\ben\bn - broken synapsis name block
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ _\bi_\bn_\bt
+ f\bfu\bun\bnc\bct\bti\bio\bon\bn(n\bna\bam\bme\be);
+ tail
+
+OpenBSD February 2, 2015 OpenBSD
--- /dev/null
+.Dd June 30, 2010
+.Dt NM-EMPTY 2
+.Os OpenBSD
+.Sh NAME
+.Nm Nm-empty
+.Nd handling of empty name macros
+.Sh SYNOPSIS
+.Nm
+.Nm
+.Sh DESCRIPTION
+The
+.Nm
+utility ...
--- /dev/null
+NM-EMPTY(2) System Calls Manual NM-EMPTY(2)
+
+N\bNA\bAM\bME\bE
+ N\bNm\bm-\b-e\bem\bmp\bpt\bty\by - handling of empty name macros
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ N\bNm\bm-\b-e\bem\bmp\bpt\bty\by
+ N\bNm\bm-\b-e\bem\bmp\bpt\bty\by
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The N\bNm\bm-\b-e\bem\bmp\bpt\bty\by utility ...
+
+OpenBSD June 30, 2010 OpenBSD
--- /dev/null
+.Dd July 12, 2012
+.Dt NM-EMPTYNAME 1
+.Os OpenBSD
+.Sh NAME
+.Nm
+.Nd empty NAME \&Nm line
+.Sh SYNOPSIS
+emptyNAME
--- /dev/null
+NM-EMPTYNAME(1) General Commands Manual NM-EMPTYNAME(1)
+
+N\bNA\bAM\bME\bE
+ - empty NAME Nm line
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ emptyNAME
+
+OpenBSD July 12, 2012 OpenBSD
--- /dev/null
+.Dd July 12, 2012
+.Dt NM-EMPTYNAMEUSE 1
+.Os OpenBSD
+.Sh NAME
+.Nm
+.Nd empty NAME \&Nm line, used later
+.Sh SYNOPSIS
+.Nm some_name
+.Nm
--- /dev/null
+NM-EMPTYNAMEUSE(1) General Commands Manual NM-EMPTYNAMEUSE(1)
+
+N\bNA\bAM\bME\bE
+ - empty NAME Nm line, used later
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ s\bso\bom\bme\be_\b_n\bna\bam\bme\be
+ s\bso\bom\bme\be_\b_n\bna\bam\bme\be
+
+OpenBSD July 12, 2012 OpenBSD
--- /dev/null
+.Dd July 9, 2012
+.Dt NM-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Nm-font
+.Nd changing fonts inside the name macro
+.Sh DESCRIPTION
+normal text
+.Nm bold\\fIemphasis\\fPback
+trailing text
--- /dev/null
+NM-FONT(1) General Commands Manual NM-FONT(1)
+
+N\bNA\bAM\bME\bE
+ N\bNm\bm-\b-f\bfo\bon\bnt\bt - changing fonts inside the name macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text b\bbo\bol\bld\bd_\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bba\bac\bck\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd April 4, 2014
+.Dt NM-LONG 1
+.Os OpenBSD
+.Sh NAME
+.Nm \&Nm-long
+.Nd long \&Nm in the SYNOPSIS
+.Sh SYNOPSIS
+.Nm "This is a terribly long name, it is so long that it does not fit \
+one one single line -"
+.Fl o
+.Ar
--- /dev/null
+NM-LONG(1) General Commands Manual NM-LONG(1)
+
+N\bNA\bAM\bME\bE
+ N\bNm\bm-\b-l\blo\bon\bng\bg - long Nm in the SYNOPSIS
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ T\bTh\bhi\bis\bs i\bis\bs a\ba t\bte\ber\brr\bri\bib\bbl\bly\by l\blo\bon\bng\bg n\bna\bam\bme\be,\b, i\bit\bt i\bis\bs s\bso\bo l\blo\bon\bng\bg t\bth\bha\bat\bt i\bit\bt d\bdo\boe\bes\bs n\bno\bot\bt f\bfi\bit\bt o\bon\bne\be o\bon\bne\be
+ s\bsi\bin\bng\bgl\ble\be
+ l\bli\bin\bne\be
+ -\b-
+ -\b-o\bo
+ _\bf_\bi_\bl_\be _\b._\b._\b.
+
+OpenBSD April 4, 2014 OpenBSD
--- /dev/null
+.Dd February 3, 2015
+.Dt NM-PAR 1
+.Os OpenBSD
+.Sh NAME
+.Nm Nm-par
+.Nd paragraph macro in a synopsis name block
+.Sh SYNOPSIS
+.Nm
+.Fl a
+.Pp
+.Fl b
--- /dev/null
+NM-PAR(1) General Commands Manual NM-PAR(1)
+
+N\bNA\bAM\bME\bE
+ N\bNm\bm-\b-p\bpa\bar\br - paragraph macro in a synopsis name block
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ N\bNm\bm-\b-p\bpa\bar\br -\b-a\ba
+
+ -\b-b\bb
+
+OpenBSD February 3, 2015 OpenBSD
--- /dev/null
+.Dd February 3, 2015
+.Dt NM-PAR 1
+.Os OpenBSD
+.Sh NAME
+.Nm Nm-par
+.Nd paragraph macro in a name block
+.Sh DESCRIPTION
+.nr nS 1
+.Nm
+.Fl a
+.Pp
+.Fl b
+.Nm
+.Fl a
+.nr nS 0
+.Pp
+.Fl b
+.nr nS 1
+.Nm
+.Oo Fl a
+.nr nS 0
+.Pp
+.Fl b Oc
--- /dev/null
+NM-PAR(1) General Commands Manual NM-PAR(1)
+
+N\bNA\bAM\bME\bE
+ N\bNm\bm-\b-p\bpa\bar\br - paragraph macro in a name block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ N\bNm\bm-\b-p\bpa\bar\br -\b-a\ba
+
+ -\b-b\bb
+ N\bNm\bm-\b-p\bpa\bar\br -\b-a\ba
+
+ -\b-b\bb
+ N\bNm\bm-\b-p\bpa\bar\br [-\b-a\ba
+
+ -\b-b\bb]
+
+OpenBSD February 3, 2015 OpenBSD
--- /dev/null
+.Dd August 21, 2014
+.Dt NM-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Nm-punct
+.Nd punctuation handling by the Nm macro
+.Sh DESCRIPTION
+closing punctuation
+.Nm a )
+only one
+.Nm )
+only more than one
+.Nm ) )
+middle
+.Nm a ) z
+start
+.Nm ) z
+dot
+.Nm . z
+comma
+.Nm , z
+semicolon
+.Nm ; z
+colon
+.Nm : z
+quest
+.Nm ? z
+excl
+.Nm ! z
+paren
+.Nm ) z
+bracket
+.Nm ] z
+bar
+.Nm | m
+op paren
+.Nm ( a
+op bracket
+.Nm [ a
--- /dev/null
+NM-PUNCT(1) General Commands Manual NM-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt - punctuation handling by the Nm macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ closing punctuation a\ba) only one N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt) only more than one N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt))
+ middle a\ba) z\bz start N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt) z dot N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt. z comma N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt, z semicolon
+ N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt; z colon N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt: z quest N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt? z excl N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt! z paren
+ N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt) z bracket N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt] z bar | m\bm op paren (a\ba op bracket [a\ba
+
+OpenBSD August 21, 2014 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2014/11/17 06:44:35 schwarze Exp $
+
+REGRESS_TARGETS = punct spacing
+LINT_TARGETS = punct
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd November 17, 2014
+.Dt NO-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm No-punct
+.Nd punctuation after the normal macro
+.Sh DESCRIPTION
+Leading punctuation:
+.No ( b
+.No [ b
+.No | b
+.No . b
+.No , b
+.No ; b
+.No : b
+.No ? b
+.No ! b
+.No ) b
+.No ] b
+.Pp
+Trailing punctuation:
+.No a (
+.No a [
+.No a |
+.No a .
+.No a ,
+.No a ;
+.No a :
+.No a ?
+.No a !
+.No a )
+.No a ]
+.Pp
+Middle punctuation:
+.No a ( b
+.No a [ b
+.No a | b
+.No a . b
+.No a , b
+.No a ; b
+.No a : b
+.No a ? b
+.No a ! b
+.No a ) b
+.No a ] b
+.Pp
+Isolated punctuation:
+.No a No ( No b
+.No a No [ No b
+.No a No | No b
+.No a No . No b
+.No a No , No b
+.No a No ; No b
+.No a No : No b
+.No a No ? No b
+.No a No ! No b
+.No a No ) No b
+.No a No ] No b
+.Pp
+Isolated trailing punctuation:
+.No a No (
+.No a No [
+.No a No |
+.No a No .
+.No a No ,
+.No a No ;
+.No a No :
+.No a No ?
+.No a No !
+.No a No )
+.No a No ]
+.Pp
+Multiple isolated punctuation:
+.No a No ( [ No b
+.No a No ) ] No b
+.Pp
+Multiple punctuation:
+.No [ ( arg ) ] .
+.Pp
+Quoted:
+.No "a . b Nm"
+.No ". b Nm"
+.No "."
--- /dev/null
+NO-PUNCT(1) General Commands Manual NO-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ N\bNo\bo-\b-p\bpu\bun\bnc\bct\bt - punctuation after the normal macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Leading punctuation: (b [b | b . b , b ; b : b ? b ! b ) b ] b
+
+ Trailing punctuation: a ( a [ a | a. a, a; a: a? a! a) a]
+
+ Middle punctuation: a (b a [b a | b a. b a, b a; b a: b a? b a! b a) b a]
+ b
+
+ Isolated punctuation: a (b a [b a | b a . b a , b a ; b a : b a ? b a ! b
+ a ) b a ] b
+
+ Isolated trailing punctuation: a ( a [ a | a . a , a ; a : a ? a ! a )
+ a ]
+
+ Multiple isolated punctuation: a ([b a )] b
+
+ Multiple punctuation: [(arg)].
+
+ Quoted: a . b Nm . b Nm .
+
+OpenBSD November 17, 2014 OpenBSD
--- /dev/null
+mandoc: punct.in:48:7: WARNING: skipping empty macro: No
+mandoc: punct.in:49:7: WARNING: skipping empty macro: No
+mandoc: punct.in:50:7: WARNING: skipping empty macro: No
+mandoc: punct.in:51:7: WARNING: skipping empty macro: No
+mandoc: punct.in:52:7: WARNING: skipping empty macro: No
+mandoc: punct.in:53:7: WARNING: skipping empty macro: No
+mandoc: punct.in:54:7: WARNING: skipping empty macro: No
+mandoc: punct.in:55:7: WARNING: skipping empty macro: No
+mandoc: punct.in:56:7: WARNING: skipping empty macro: No
+mandoc: punct.in:57:7: WARNING: skipping empty macro: No
+mandoc: punct.in:58:7: WARNING: skipping empty macro: No
+mandoc: punct.in:61:7: WARNING: skipping empty macro: No
+mandoc: punct.in:62:7: WARNING: skipping empty macro: No
+mandoc: punct.in:63:7: WARNING: skipping empty macro: No
+mandoc: punct.in:64:7: WARNING: skipping empty macro: No
+mandoc: punct.in:65:7: WARNING: skipping empty macro: No
+mandoc: punct.in:66:7: WARNING: skipping empty macro: No
+mandoc: punct.in:67:7: WARNING: skipping empty macro: No
+mandoc: punct.in:68:7: WARNING: skipping empty macro: No
+mandoc: punct.in:69:7: WARNING: skipping empty macro: No
+mandoc: punct.in:70:7: WARNING: skipping empty macro: No
+mandoc: punct.in:71:7: WARNING: skipping empty macro: No
+mandoc: punct.in:74:7: WARNING: skipping empty macro: No
+mandoc: punct.in:75:7: WARNING: skipping empty macro: No
--- /dev/null
+.Dd October 1, 2010
+.Dt NO-SPACING 1
+.Os OpenBSD
+.Sh NAME
+.Nm No-spacing
+.Nd spacing around the normal macro
+.Sh DESCRIPTION
+Text before
+.No and
+after the macro.
+Macros on the line
+.Op before
+.No and
+.Op after
+the macro.
+Macros
+.Em before No and Em after
+the macro on the same line.
+Punctuation before (
+.No and
+) after the macro.
+The macro
+.Op No in
+an enclosure.
--- /dev/null
+NO-SPACING(1) General Commands Manual NO-SPACING(1)
+
+N\bNA\bAM\bME\bE
+ N\bNo\bo-\b-s\bsp\bpa\bac\bci\bin\bng\bg - spacing around the normal macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Text before and after the macro. Macros on the line [before] and [after]
+ the macro. Macros _\bb_\be_\bf_\bo_\br_\be and _\ba_\bf_\bt_\be_\br the macro on the same line.
+ Punctuation before ( and ) after the macro. The macro [in] an enclosure.
+
+OpenBSD October 1, 2010 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.5 2014/07/02 11:42:56 schwarze Exp $
+
+REGRESS_TARGETS = position punct
+LINT_TARGETS = position
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd September 15, 2013
+.Dt NS-POSITION 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ns-position
+.Nd effect of the position of the no space macro on the line
+.Sh DESCRIPTION
+At the beginning of a macro line:
+.Op before
+.Ns Op after
+.Pp
+After just a block closing macro:
+.Oo before
+.Oc Ns Op after
+.Pp
+After some macro and a block closing:
+.Oo before
+.No still before Oc Ns Op after
+.Pp
+In the middle of a macro line:
+.Oo before Oc Ns Op after
+.Pp
+At the end of a macro line:
+.Oo before Oc Ns
+.Op after
+.Pp
+At the end of partial implicit:
+.Op before Ns
+.Op after
--- /dev/null
+NS-POSITION(1) General Commands Manual NS-POSITION(1)
+
+N\bNA\bAM\bME\bE
+ N\bNs\bs-\b-p\bpo\bos\bsi\bit\bti\bio\bon\bn - effect of the position of the no space macro on the line
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ At the beginning of a macro line: [before] [after]
+
+ After just a block closing macro: [before][after]
+
+ After some macro and a block closing: [before still before][after]
+
+ In the middle of a macro line: [before][after]
+
+ At the end of a macro line: [before][after]
+
+ At the end of partial implicit: [before][after]
+
+OpenBSD September 15, 2013 OpenBSD
--- /dev/null
+mandoc: position.in:10:2: WARNING: skipping no-space macro
--- /dev/null
+.Dd October 1, 2010
+.Dt NS-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ns-punct
+.Nd punctuation after the no space macro
+.Sh DESCRIPTION
+Normal words:
+.No no Ns ns No no
+Opening punctuation:
+.No no Ns ( ns No no
+Closing punctuation:
+.No no Ns ns ) No no
--- /dev/null
+NS-PUNCT(1) General Commands Manual NS-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ N\bNs\bs-\b-p\bpu\bun\bnc\bct\bt - punctuation after the no space macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Normal words: nons no Opening punctuation: no(ns no Closing punctuation:
+ nons) no
+
+OpenBSD October 1, 2010 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2012/07/07 14:10:55 schwarze Exp $
+
+REGRESS_TARGETS=punct
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 6, 2012
+.Dt OO-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Oo-punct
+.Nd punctuation handling by the Oo macro
+.Sh DESCRIPTION
+at the beginning:
+.Oo ( z
+.Oo | z
+.Oo . z
+.Oc Oc Oc
+.Pp
+in the middle:
+.Oo a ( z
+.Oo a | z
+.Oo a . z
+.Oc Oc Oc
+.Pp
+at the end:
+.Oo Oo a (
+.Oc |
+.Oc
--- /dev/null
+OO-PUNCT(1) General Commands Manual OO-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ O\bOo\bo-\b-p\bpu\bun\bnc\bct\bt - punctuation handling by the Oo macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ at the beginning: ([z [| z [. z]]]
+
+ in the middle: [a (z [a | z [a. z]]]
+
+ at the end: [[a (] |]
+
+OpenBSD July 6, 2012 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.3 2014/07/02 11:42:56 schwarze Exp $
+
+REGRESS_TARGETS = break broken punct
+LINT_TARGETS = break broken
+
+SKIP_GROFF = break
+SKIP_ASCII = break
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 2, 2014
+.Dt OP-BREAK 1
+.Os OpenBSD
+.Sh NAME
+.Nm Op-break
+.Nd partial explicit block broken by partial implicit block
+.Sh DESCRIPTION
+before both
+.Op inside first Do inside both
+inside second
+.Dc
+after both
+.Pp
+0
+.Op 1 Op 12 Do 123
+3
+.Dc
+0
+.\" The following does not work yet:
+.ig
+.Pp
+0
+.Op 1 Op 12 Do 123 Do 1234
+34
+.Dc
+4
+.Dc
+0
+..
--- /dev/null
+mandoc: break.in:9:2: WARNING: blocks badly nested: Op breaks Do
+mandoc: break.in:15:7: WARNING: blocks badly nested: Op breaks Do
+mandoc: break.in:15:2: WARNING: blocks badly nested: Op breaks Do
--- /dev/null
+.Dd July 2, 2014
+.Dt OP-BROKEN 1
+.Os OpenBSD
+.Sh NAME
+.Nm Op-broken
+.Nd partial implicit block broken by partial explicit block
+.Sh DESCRIPTION
+before both
+.Do inside first
+.Op inside both Dc inside second
+after both
+.Pp
+0
+.Do 1
+.Op 12 Op 123 Dc 23
+0
+.\" The following does not work yet, see mdoc_macro.c rev. 1.47.
+.ig
+.Pp
+0
+.Do 1 Do 12
+.Op 123 Op 1234 Dc 134 Dc 34
+0
+..
--- /dev/null
+OP-BROKEN(1) General Commands Manual OP-BROKEN(1)
+
+N\bNA\bAM\bME\bE
+ O\bOp\bp-\b-b\bbr\bro\bok\bke\ben\bn - partial implicit block broken by partial explicit block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ before both ``inside first [inside both'' inside second] after both
+
+ 0 ``1 [12 [123'' 23]] 0
+
+OpenBSD July 2, 2014 OpenBSD
--- /dev/null
+mandoc: broken.in:10:17: WARNING: blocks badly nested: Do breaks Op
+mandoc: broken.in:15:15: WARNING: blocks badly nested: Do breaks Op
--- /dev/null
+.Dd June 24, 2011
+.Dt OP-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Op-punct
+.Nd punctuation handling by the Op macro
+.Sh DESCRIPTION
+at the beginning:
+.Op ( z
+.Op | z
+.Op . z
+.Pp
+in the middle:
+.Op a ( z
+.Op a | z
+.Op a . z
+.Pp
+at the end:
+.Op a (
+.Op a |
+.Op a .
+.Pp
+punctuation only:
+.Op (
+.Op |
+.Op .
+.Pp
+more than one:
+.Op ( (
+.Op | |
+.Op . .
--- /dev/null
+OP-PUNCT(1) General Commands Manual OP-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ O\bOp\bp-\b-p\bpu\bun\bnc\bct\bt - punctuation handling by the Op macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ at the beginning: ([z] [| z] [. z]
+
+ in the middle: [a (z] [a | z] [a. z]
+
+ at the end: [a (] [a |] [a].
+
+ punctuation only: ([] [|] [].
+
+ more than one: (([] [| |] []..
+
+OpenBSD June 24, 2011 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2014/11/21 01:52:45 schwarze Exp $
+
+REGRESS_TARGETS = dupe late long missing
+LINT_TARGETS = dupe late missing
+SKIP_GROFF = long
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd June 18, 2014
+.Os NetBSD
+.Dt OS-DUPE 1
+.Os FreeBSD
+.Sh NAME
+.Nm Os-dupe
+.Nd repeated operating system macros
+.Sh DESCRIPTION
+initial text
+.Os OpenBSD
+final text
--- /dev/null
+OS-DUPE(1) General Commands Manual OS-DUPE(1)
+
+N\bNA\bAM\bME\bE
+ O\bOs\bs-\b-d\bdu\bup\bpe\be - repeated operating system macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text final text
+
+OpenBSD June 18, 2014 OpenBSD
--- /dev/null
+mandoc: dupe.in:3:2: WARNING: prologue macros out of order: Dt after Os
+mandoc: dupe.in:4:2: WARNING: duplicate prologue macro: Os
+mandoc: dupe.in:10:2: WARNING: duplicate prologue macro: Os
--- /dev/null
+.Dd August 5, 2014
+.Dt OS-LATE 1
+.Sh NAME
+.Nm Os-late
+.Nd late operating system macro
+.Sh DESCRIPTION
+initial text
+.Os OpenBSD
+final text
--- /dev/null
+OS-LATE(1) General Commands Manual OS-LATE(1)
+
+N\bNA\bAM\bME\bE
+ O\bOs\bs-\b-l\bla\bat\bte\be - late operating system macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text final text
+
+OpenBSD August 5, 2014 OpenBSD
--- /dev/null
+mandoc: late.in:8:2: WARNING: late prologue macro: Os
--- /dev/null
+.Dd November 20, 2014
+.Dt OS-LONG 1
+.Os 1234567890123456789012345678901234567890123456789012345678901234567890123456789
+.Sh NAME
+.Nm Os-long
+.Nd long operating system string
+.Sh DESCRIPTION
+some text
--- /dev/null
+OS-LONG(1) General Commands Manual OS-LONG(1)
+
+N\bNA\bAM\bME\bE
+ O\bOs\bs-\b-l\blo\bon\bng\bg - long operating system string
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+1234567890123456789012345678901234567890123456789012345678901234567890123456789
+ November 20, 2014
+1234567890123456789012345678901234567890123456789012345678901234567890123456789
--- /dev/null
+.Dd August 5, 2014
+.Dt OS-MISSING 1
+.Sh NAME
+.Nm Os-missing
+.Nd operating system macro missing in prologue
+.Sh DESCRIPTION
+some text
--- /dev/null
+OS-MISSING(1) General Commands Manual OS-MISSING(1)
+
+N\bNA\bAM\bME\bE
+ O\bOs\bs-\b-m\bmi\bis\bss\bsi\bin\bng\bg - operating system macro missing in prologue
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+ August 5, 2014
--- /dev/null
+mandoc: missing.in: WARNING: missing Os macro, using ""
--- /dev/null
+# $OpenBSD: Makefile,v 1.3 2012/07/18 16:55:54 schwarze Exp $
+
+REGRESS_TARGETS = keep
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd January 30, 2011
+.Dt OX-KEEP 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ox-keep
+.Nd interaction of unix variant macros and word keeps
+.Sh DESCRIPTION
+Because we use a keep,
+.Bk -words
+.Ox 4.9 must be at the beginning of a new line.
+.Ek
--- /dev/null
+OX-KEEP(1) General Commands Manual OX-KEEP(1)
+
+N\bNA\bAM\bME\bE
+ O\bOx\bx-\b-k\bke\bee\bep\bp - interaction of unix variant macros and word keeps
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Because we use a keep,
+ OpenBSD 4.9 must be at the beginning of a new line.
+
+OpenBSD January 30, 2011 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2014/08/21 12:56:24 schwarze Exp $
+
+REGRESS_TARGETS = font punct
+
+# XXX The FILES target doesn't currently work.
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt PA-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Pa-font
+.Nd changing fonts inside the path macro
+.Sh DESCRIPTION
+normal text
+.Pa emphasis\\fBbold\\fPback
+trailing text
--- /dev/null
+PA-FONT(1) General Commands Manual PA-FONT(1)
+
+N\bNA\bAM\bME\bE
+ P\bPa\ba-\b-f\bfo\bon\bnt\bt - changing fonts inside the path macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bbo\bol\bld\bd_\bb_\ba_\bc_\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd August 21, 2014
+.Dt PA-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Pa-punct
+.Nd punctuation handling by the Pa macro
+.Sh DESCRIPTION
+closing punctuation
+.Pa a )
+only one
+.Pa )
+only more than one
+.Pa ) )
+middle
+.Pa a ) z
+start
+.Pa ) z
+dot
+.Pa . z
+comma
+.Pa , z
+semicolon
+.Pa ; z
+colon
+.Pa : z
+quest
+.Pa ? z
+excl
+.Pa ! z
+paren
+.Pa ) z
+bracket
+.Pa ] z
+bar
+.Pa | m
+op paren
+.Pa ( a
+op bracket
+.Pa [ a
--- /dev/null
+PA-PUNCT(1) General Commands Manual PA-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ P\bPa\ba-\b-p\bpu\bun\bnc\bct\bt - punctuation handling by the Pa macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ closing punctuation _\ba) only one _\b~) only more than one _\b~)) middle _\ba) _\bz
+ start _\b~) _\bz dot _\b~. _\bz comma _\b~, _\bz semicolon _\b~; _\bz colon _\b~: _\bz quest _\b~? _\bz excl
+ _\b~! _\bz paren _\b~) _\bz bracket _\b~] _\bz bar | _\bm op paren (_\ba op bracket [_\ba
+
+OpenBSD August 21, 2014 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.3 2014/11/30 05:28:00 schwarze Exp $
+
+REGRESS_TARGETS = spacing
+LINT_TARGETS = spacing
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd November 30, 2014
+.Dt PF-SPACING 1
+.Os OpenBSD
+.Sh NAME
+.Nm Pf-spacing
+.Nd spacing around the prefix macro
+.Sh DESCRIPTION
+Closing punctuation goes
+.Pf . right .
+But
+.Pf . . double
+prefixes don't work.
+Opening punctuation goes
+.Pf ( left .
+But again, prefix
+.Pf ( ) pairs
+don't work.
+Even normal text gets
+.Pf pre fixed .
+The first
+.Pf Ar gument
+is not parsed.
+Nothing can be
+.Pf prefixed
+to the next line.
+Trailing punctuation still counts as
+.Em eos Pf .
+.Po But it does not fall out of enclosures Pf . Pc
+.Pp
+It makes no sense at the very
+.Em end Pf
--- /dev/null
+PF-SPACING(1) General Commands Manual PF-SPACING(1)
+
+N\bNA\bAM\bME\bE
+ P\bPf\bf-\b-s\bsp\bpa\bac\bci\bin\bng\bg - spacing around the prefix macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Closing punctuation goes .right. But .. double prefixes don't work.
+ Opening punctuation goes (left. But again, prefix () pairs don't work.
+ Even normal text gets prefixed. The first Argument is not parsed.
+ Nothing can be prefixed to the next line. Trailing punctuation still
+ counts as _\be_\bo_\bs . (But it does not fall out of enclosures .)
+
+ It makes no sense at the very _\be_\bn_\bd
+
+OpenBSD November 30, 2014 OpenBSD
--- /dev/null
+mandoc: spacing.in:24:2: WARNING: nothing follows prefix: Pf prefixed
+mandoc: spacing.in:27:9: WARNING: nothing follows prefix: Pf .
+mandoc: spacing.in:31:9: WARNING: nothing follows prefix: Pf at eol
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2015/02/04 19:11:17 schwarze Exp $
+
+REGRESS_TARGETS = arg
+LINT_TARGETS = arg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd February 4, 2015
+.Dt PP-ARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Pp-arg
+.Nd paragraph macro with arguments
+.Sh DESCRIPTION
+line 1
+.Pp drop this
+line 2
+.br drop this
+line 3
+.sp 1v drop this
+line 4
--- /dev/null
+PP-ARG(1) General Commands Manual PP-ARG(1)
+
+N\bNA\bAM\bME\bE
+ P\bPp\bp-\b-a\bar\brg\bg - paragraph macro with arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ line 1
+
+ line 2
+ line 3
+
+ line 4
+
+OpenBSD February 4, 2015 OpenBSD
--- /dev/null
+mandoc: arg.in:9:2: ERROR: skipping all arguments: Pp drop
+mandoc: arg.in:11:2: ERROR: skipping all arguments: br drop
+mandoc: arg.in:13:8: ERROR: skipping excess arguments: sp ... drop
--- /dev/null
+# $OpenBSD: Makefile,v 1.1.1.1 2011/12/04 03:09:25 schwarze Exp $
+
+REGRESS_TARGETS=empty
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd October 21, 2010
+.Dt QQ-EMPTY 1
+.Os OpenBSD
+.Sh NAME
+.Nm Qq-empty
+.Nd empty implicit enclosure macros
+.Sh DESCRIPTION
+An empty
+.Qq
+and a full
+.Qq user@host
+quotation.
+And another
+.Qo full Qc one .
--- /dev/null
+QQ-EMPTY(1) General Commands Manual QQ-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ Q\bQq\bq-\b-e\bem\bmp\bpt\bty\by - empty implicit enclosure macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ An empty "" and a full "user@host" quotation. And another "full" one.
+
+OpenBSD October 21, 2010 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.7 2015/02/04 18:03:28 schwarze Exp $
+
+REGRESS_TARGETS = allch args break empty three_authors
+LINT_TARGETS = allch args empty
+
+# groff-1.22.3 defect:
+# - arguments after .Rs cause the macro to be ignored
+
+SKIP_GROFF = args
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 7, 2014
+.Dt RS-ALLCH 1
+.Os OpenBSD
+.Sh NAME
+.Nm Rs-allch
+.Nd reference block using all supported child macros
+.Sh DESCRIPTION
+reference on the same line:
+.Rs
+.%A author name
+.%T title of article
+.%B book title
+.%I issuer name
+some
+.%J journal name
+.%R report name
+.%N number of journal
+.%V volume number
+.Em bogus
+text
+.%U "uniform resource locator"
+.%P page number
+.%Q institutional author
+.%C city name
+.%D date of publication
+.%O optional information
+.Re
+.Sh SEE ALSO
+reference after a blank line:
+.Rs
+.%A author name
+.%T title of article
+.%B book title
+.%I issuer name
+some
+.Em bogus
+.%J journal name
+.%R report name
+.%N number of journal
+.%V volume number
+text
+.%U "uniform resource locator"
+.%P page number
+.%Q institutional author
+.%C city name
+.%D date of publication
+.%O optional information
+.Re
--- /dev/null
+RS-ALLCH(1) General Commands Manual RS-ALLCH(1)
+
+N\bNA\bAM\bME\bE
+ R\bRs\bs-\b-a\bal\bll\blc\bch\bh - reference block using all supported child macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ reference on the same line: some _\bb_\bo_\bg_\bu_\bs text author name, "title of
+ article", _\bb_\bo_\bo_\bk _\bt_\bi_\bt_\bl_\be, _\bi_\bs_\bs_\bu_\be_\br _\bn_\ba_\bm_\be, _\bj_\bo_\bu_\br_\bn_\ba_\bl _\bn_\ba_\bm_\be, report name, number of
+ journal, volume number, uniform resource locator, page number,
+ institutional author, city name, date of publication, optional
+ information.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ reference after a blank line:
+
+ some _\bb_\bo_\bg_\bu_\bs text author name, "title of article", _\bb_\bo_\bo_\bk _\bt_\bi_\bt_\bl_\be, _\bi_\bs_\bs_\bu_\be_\br _\bn_\ba_\bm_\be,
+ _\bj_\bo_\bu_\br_\bn_\ba_\bl _\bn_\ba_\bm_\be, report name, number of journal, volume number, uniform
+ resource locator, page number, institutional author, city name, date of
+ publication, optional information.
+
+OpenBSD July 7, 2014 OpenBSD
--- /dev/null
+mandoc: allch.in:14:1: WARNING: invalid content in Rs block: text
+mandoc: allch.in:19:2: WARNING: invalid content in Rs block: Em
+mandoc: allch.in:20:1: WARNING: invalid content in Rs block: text
+mandoc: allch.in:35:1: WARNING: invalid content in Rs block: text
+mandoc: allch.in:36:2: WARNING: invalid content in Rs block: Em
+mandoc: allch.in:41:1: WARNING: invalid content in Rs block: text
--- /dev/null
+.Dd February 4, 2015
+.Dt RS-ARGS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Rs-args
+.Nd arguments on a reference block header line
+.Sh SEE ALSO
+initial text
+.Rs bogus
+.%A author name
+.%B book title
+.Re
+middle text
+.Rs Sy bogus
+.%A author name
+.%B book title
+.Re
+final text
--- /dev/null
+RS-ARGS(1) General Commands Manual RS-ARGS(1)
+
+N\bNA\bAM\bME\bE
+ R\bRs\bs-\b-a\bar\brg\bgs\bs - arguments on a reference block header line
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ initial text
+
+ author name, _\bb_\bo_\bo_\bk _\bt_\bi_\bt_\bl_\be. middle text
+
+ author name, _\bb_\bo_\bo_\bk _\bt_\bi_\bt_\bl_\be. final text
+
+OpenBSD February 4, 2015 OpenBSD
--- /dev/null
+mandoc: args.in:9:5: ERROR: skipping all arguments: Rs bogus
+mandoc: args.in:14:5: ERROR: skipping all arguments: Rs Sy
--- /dev/null
+.Dd April 15, 2014
+.Dt RS-BREAK 1
+.Os OpenBSD
+.Sh NAME
+.Nm Rs-break
+.Nd line break before reference start
+.Sh DESCRIPTION
+reference on the same line:
+.Rs
+.%A author
+.%J journal
+.%N 42
+.Re
+.Sh SEE ALSO
+reference after a blank line:
+.Rs
+.%A author
+.%J journal
+.%N 42
+.Re
+.Sh SEE Em ALSO
+reference after a blank line:
+.Rs
+.%A author
+.%J journal
+.%N 42
+.Re
--- /dev/null
+RS-BREAK(1) General Commands Manual RS-BREAK(1)
+
+N\bNA\bAM\bME\bE
+ R\bRs\bs-\b-b\bbr\bre\bea\bak\bk - line break before reference start
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ reference on the same line: author, _\bj_\bo_\bu_\br_\bn_\ba_\bl, 42.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ reference after a blank line:
+
+ author, _\bj_\bo_\bu_\br_\bn_\ba_\bl, 42.
+
+S\bSE\bEE\bE _\bA_\bL_\bS_\bO
+ reference after a blank line:
+
+ author, _\bj_\bo_\bu_\br_\bn_\ba_\bl, 42.
+
+OpenBSD April 15, 2014 OpenBSD
--- /dev/null
+.Dd February 4, 2015
+.Dt RS-EMPTY 1
+.Os OpenBSD
+.Sh NAME
+.Nm Rs-empty
+.Nd empty reference blocks
+.Sh DESCRIPTION
+initial text
+.Rs
+.Re
+final text
+.Sh SEE ALSO
+initial text
+.Rs
+.Re
+final text
--- /dev/null
+RS-EMPTY(1) General Commands Manual RS-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ R\bRs\bs-\b-e\bem\bmp\bpt\bty\by - empty reference blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text final text
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ initial text
+
+ final text
+
+OpenBSD February 4, 2015 OpenBSD
--- /dev/null
+mandoc: empty.in:9:2: WARNING: empty reference block: Rs
+mandoc: empty.in:14:2: WARNING: empty reference block: Rs
--- /dev/null
+.Dd May 1, 2009
+.Dt RS-THREE_AUTHORS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Rs-three_authors
+.Nd listing three authors in a reference block
+.Sh AUTHORS
+.Rs
+.%A kristaps
+.%A joerg
+.%A ingo
+.%T mandoc
+.Re
--- /dev/null
+RS-THREE_AUTHORS(1) General Commands Manual RS-THREE_AUTHORS(1)
+
+N\bNA\bAM\bME\bE
+ R\bRs\bs-\b-t\bth\bhr\bre\bee\be_\b_a\bau\but\bth\bho\bor\brs\bs - listing three authors in a reference block
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+ kristaps, joerg, and ingo, _\bm_\ba_\bn_\bd_\bo_\bc.
+
+OpenBSD May 1, 2009 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2014/08/14 02:00:53 schwarze Exp $
+
+REGRESS_TARGETS = args noname nostd
+LINT_TARGETS = noname nostd
+
+# groff-1.22.2 defect:
+# - .Rv without -std produces no output
+
+SKIP_GROFF = nostd
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 29, 2014
+.Dt RV-ARGS 3
+.Os OpenBSD
+.Sh NAME
+.Nm Rv-args
+.Nd arguments to the return value macro
+.Sh RETURN VALUES
+no arguments:
+.Rv -std
+.Pp
+one argument:
+.Rv -std one
+.Pp
+two arguments:
+.Rv -std one two
--- /dev/null
+RV-ARGS(3) Library Functions Manual RV-ARGS(3)
+
+N\bNA\bAM\bME\bE
+ R\bRv\bv-\b-a\bar\brg\bgs\bs - arguments to the return value macro
+
+R\bRE\bET\bTU\bUR\bRN\bN V\bVA\bAL\bLU\bUE\bES\bS
+ no arguments:
+ Upon successful completion, the value 0 is returned; otherwise the
+ value -1 is returned and the global variable _\be_\br_\br_\bn_\bo is set to indicate the
+ error.
+
+ one argument:
+ The o\bon\bne\be() function returns the value 0 if successful; otherwise the
+ value -1 is returned and the global variable _\be_\br_\br_\bn_\bo is set to indicate the
+ error.
+
+ two arguments:
+ The o\bon\bne\be() and t\btw\bwo\bo() functions return the value 0 if successful; otherwise
+ the value -1 is returned and the global variable _\be_\br_\br_\bn_\bo is set to indicate
+ the error.
+
+OpenBSD July 29, 2014 OpenBSD
--- /dev/null
+.Dd July 29, 2014
+.Dt RV-NONAME 3
+.Os OpenBSD
+.Sh NAME
+.Nm
+.Nd return value macro without an available name
+.Sh RETURN VALUES
+no arguments:
+.Rv -std
+.Pp
+one argument:
+.Rv -std one
+.Pp
+two arguments:
+.Rv -std one two
--- /dev/null
+RV-NONAME(3) Library Functions Manual RV-NONAME(3)
+
+N\bNA\bAM\bME\bE
+ - return value macro without an available name
+
+R\bRE\bET\bTU\bUR\bRN\bN V\bVA\bAL\bLU\bUE\bES\bS
+ no arguments:
+ Upon successful completion, the value 0 is returned; otherwise the
+ value -1 is returned and the global variable _\be_\br_\br_\bn_\bo is set to indicate the
+ error.
+
+ one argument:
+ The o\bon\bne\be() function returns the value 0 if successful; otherwise the
+ value -1 is returned and the global variable _\be_\br_\br_\bn_\bo is set to indicate the
+ error.
+
+ two arguments:
+ The o\bon\bne\be() and t\btw\bwo\bo() functions return the value 0 if successful; otherwise
+ the value -1 is returned and the global variable _\be_\br_\br_\bn_\bo is set to indicate
+ the error.
+
+OpenBSD July 29, 2014 OpenBSD
--- /dev/null
+mandoc: noname.in:5:2: ERROR: missing manual name, using "": Nm
--- /dev/null
+.Dd July 29, 2014
+.Dt RV-NOSTD 3
+.Os OpenBSD
+.Sh NAME
+.Nm Rv-nostd
+.Nd return value macros without -std arguments
+.Sh RETURN VALUES
+no arguments:
+.Rv
+.Pp
+one argument:
+.Rv one
+.Pp
+two arguments:
+.Rv one two
--- /dev/null
+RV-NOSTD(3) Library Functions Manual RV-NOSTD(3)
+
+N\bNA\bAM\bME\bE
+ R\bRv\bv-\b-n\bno\bos\bst\btd\bd - return value macros without -std arguments
+
+R\bRE\bET\bTU\bUR\bRN\bN V\bVA\bAL\bLU\bUE\bES\bS
+ no arguments:
+ Upon successful completion, the value 0 is returned; otherwise the
+ value -1 is returned and the global variable _\be_\br_\br_\bn_\bo is set to indicate the
+ error.
+
+ one argument:
+ The o\bon\bne\be() function returns the value 0 if successful; otherwise the
+ value -1 is returned and the global variable _\be_\br_\br_\bn_\bo is set to indicate the
+ error.
+
+ two arguments:
+ The o\bon\bne\be() and t\btw\bwo\bo() functions return the value 0 if successful; otherwise
+ the value -1 is returned and the global variable _\be_\br_\br_\bn_\bo is set to indicate
+ the error.
+
+OpenBSD July 29, 2014 OpenBSD
--- /dev/null
+mandoc: nostd.in:9:2: WARNING: missing -std argument, adding it: Rv
+mandoc: nostd.in:12:2: WARNING: missing -std argument, adding it: Rv
+mandoc: nostd.in:15:2: WARNING: missing -std argument, adding it: Rv
--- /dev/null
+# $OpenBSD: Makefile,v 1.7 2017/01/08 00:10:22 schwarze Exp $
+
+REGRESS_TARGETS = badNAME before empty emptyNAME first nohead order
+REGRESS_TARGETS += orderNAME punctNAME subbefore
+LINT_TARGETS = badNAME before empty emptyNAME first nohead order
+LINT_TARGETS += orderNAME punctNAME subbefore
+
+SKIP_GROFF = subbefore first empty
+SKIP_ASCII = first
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 1, 2014
+.Dt SH-BADNAME 1
+.Os OpenBSD
+.Sh NAME
+.Em bad NAME section
+.Nm Sh-badNAME
+.Sh DESCRIPTION
+The description appears before the name and is not marked up with Nd.
--- /dev/null
+SH-BADNAME(1) General Commands Manual SH-BADNAME(1)
+
+N\bNA\bAM\bME\bE
+ _\bb_\ba_\bd _\bN_\bA_\bM_\bE _\bs_\be_\bc_\bt_\bi_\bo_\bn S\bSh\bh-\b-b\bba\bad\bdN\bNA\bAM\bME\bE
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The description appears before the name and is not marked up with Nd.
+
+OpenBSD July 1, 2014 OpenBSD
--- /dev/null
+mandoc: badNAME.in:5:2: WARNING: bad NAME section content: Em
+mandoc: badNAME.in:4:2: WARNING: NAME section without description
--- /dev/null
+.Dd July 7, 2014
+.Dt SH-BEFORE 1
+.Os OpenBSD
+Can
+.Xr mandoc 1
+on
+.Ox
+handle this?
+.Sh NAME
+.Nm Sh-before
+.Nd content before the first section header
+.Sh DESCRIPTION
+some text
--- /dev/null
+SH-BEFORE(1) General Commands Manual SH-BEFORE(1)
+
+Can mandoc(1) on OpenBSD handle this?
+
+N\bNA\bAM\bME\bE
+ S\bSh\bh-\b-b\bbe\bef\bfo\bor\bre\be - content before the first section header
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD July 7, 2014 OpenBSD
--- /dev/null
+mandoc: before.in:4:1: WARNING: content before first section header: text
--- /dev/null
+.Dd November 21, 2014
+.Dt SH-EMPTY 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sh-empty
+.Nd empty sections
+.Sh SYNOPSIS
+.Sh DESCRIPTION Xo
+.Sh BUGS
+Quite some.
--- /dev/null
+SH-EMPTY(1) General Commands Manual SH-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ S\bSh\bh-\b-e\bem\bmp\bpt\bty\by - empty sections
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+B\bBU\bUG\bGS\bS
+ Quite some.
+
+OpenBSD November 21, 2014 OpenBSD
--- /dev/null
+mandoc: empty.in:9:2: ERROR: inserting missing end of block: Sh breaks Xo
--- /dev/null
+.Dd July 1, 2014
+.Dt SH-EMPTYNAME 1
+.Os OpenBSD
+.Sh NAME
+.Sh DESCRIPTION
+The NAME section is empty.
--- /dev/null
+SH-EMPTYNAME(1) General Commands Manual SH-EMPTYNAME(1)
+
+N\bNA\bAM\bME\bE
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The NAME section is empty.
+
+OpenBSD July 1, 2014 OpenBSD
--- /dev/null
+mandoc: emptyNAME.in:4:2: WARNING: NAME section without Nm before Nd
+mandoc: emptyNAME.in:4:2: WARNING: NAME section without description
--- /dev/null
+.Dd July 1, 2014
+.Dt SH-FIRST 1
+.Os OpenBSD
+.Sh DESCRIPTION
+The first section is not a NAME section.
--- /dev/null
+mandoc: first.in:4:2: WARNING: first section is not "NAME": Sh DESCRIPTION
--- /dev/null
+.Dd February 5, 2015
+.Dt SH-NOHEAD 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sh-nohead
+.Nd sections without header lines
+.Sh DESCRIPTION
+empty section header:
+.Sh
+empty subsection header:
+.Ss
+text
--- /dev/null
+SH-NOHEAD(1) General Commands Manual SH-NOHEAD(1)
+
+N\bNA\bAM\bME\bE
+ S\bSh\bh-\b-n\bno\boh\bhe\bea\bad\bd - sections without header lines
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ empty section header: empty subsection header: text
+
+OpenBSD February 5, 2015 OpenBSD
--- /dev/null
+mandoc: nohead.in:9:2: WARNING: skipping empty macro: Sh
+mandoc: nohead.in:11:2: WARNING: skipping empty macro: Ss
--- /dev/null
+.Dd July 1, 2014
+.Dt SH-ORDER 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sh-order
+.Nd sections out of conventional order
+.Sh DESCRIPTION
+some text
+.Sh SYNOPSIS
+.Sh SYNOPSIS
+.Sh ERRORS
+.Vt int errno
--- /dev/null
+SH-ORDER(1) General Commands Manual SH-ORDER(1)
+
+N\bNA\bAM\bME\bE
+ S\bSh\bh-\b-o\bor\brd\bde\ber\br - sections out of conventional order
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+E\bER\bRR\bRO\bOR\bRS\bS
+ _\bi_\bn_\bt _\be_\br_\br_\bn_\bo
+
+OpenBSD July 1, 2014 OpenBSD
--- /dev/null
+mandoc: order.in:9:2: WARNING: sections out of conventional order: Sh SYNOPSIS
+mandoc: order.in:10:2: WARNING: duplicate section title: Sh SYNOPSIS
+mandoc: order.in:11:2: WARNING: unexpected section: Sh ERRORS for 2, 3, 4, 9 only
--- /dev/null
+.Dd January 7, 2017
+.Dt SH-ORDERNAME 1
+.Os OpenBSD
+.Sh NAME
+.Nd name after description in NAME section
+.Ss subsection
+.Nm Sh-orderNAME
+.Sh DESCRIPTION
+The order of Nm and Nd is wrong in the NAME section.
--- /dev/null
+SH-ORDERNAME(1) General Commands Manual SH-ORDERNAME(1)
+
+N\bNA\bAM\bME\bE
+ - name after description in NAME section
+
+ s\bsu\bub\bbs\bse\bec\bct\bti\bio\bon\bn
+ S\bSh\bh-\b-o\bor\brd\bde\ber\brN\bNA\bAM\bME\bE
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The order of Nm and Nd is wrong in the NAME section.
+
+OpenBSD January 7, 2017 OpenBSD
--- /dev/null
+mandoc: orderNAME.in:5:2: WARNING: description not at the end of NAME
+mandoc: orderNAME.in:4:2: WARNING: NAME section without Nm before Nd
--- /dev/null
+.Dd January 7, 2017
+.Dt SH-PUNCTNAME 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sh-punctNAME
+.Nm second_name ;
+.Nm third_name ,
+.Nd wrong punctuation in the NAME section
+.Sh DESCRIPTION
+One comma is missing, and one is misplaced.
--- /dev/null
+SH-PUNCTNAME(1) General Commands Manual SH-PUNCTNAME(1)
+
+N\bNA\bAM\bME\bE
+ S\bSh\bh-\b-p\bpu\bun\bnc\bct\btN\bNA\bAM\bME\bE s\bse\bec\bco\bon\bnd\bd_\b_n\bna\bam\bme\be; t\bth\bhi\bir\brd\bd_\b_n\bna\bam\bme\be, - wrong punctuation in the NAME
+ section
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ One comma is missing, and one is misplaced.
+
+OpenBSD January 7, 2017 OpenBSD
--- /dev/null
+mandoc: punctNAME.in:6:2: WARNING: missing comma before name: Nm second_name
+mandoc: punctNAME.in:6:17: WARNING: bad NAME section content: text
+mandoc: punctNAME.in:7:2: WARNING: missing comma before name: Nm third_name
+mandoc: punctNAME.in:7:16: WARNING: bad NAME section content: text
--- /dev/null
+.Dd July 30, 2014
+.Dt SH-SUBBEFORE 1
+.Os OpenBSD
+.Ss Subsection
+Can
+.Xr mandoc 1
+on
+.Ox
+handle this?
+.Sh NAME
+.Nm Sh-subbefore
+.Nd subsection before the first section header
+.Sh DESCRIPTION
+some text
--- /dev/null
+SH-SUBBEFORE(1) General Commands Manual SH-SUBBEFORE(1)
+
+ S\bSu\bub\bbs\bse\bec\bct\bti\bio\bon\bn
+ Can mandoc(1) on OpenBSD handle this?
+
+N\bNA\bAM\bME\bE
+ S\bSh\bh-\b-s\bsu\bub\bbb\bbe\bef\bfo\bor\bre\be - subsection before the first section header
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+
+OpenBSD July 30, 2014 OpenBSD
--- /dev/null
+mandoc: subbefore.in:4:2: WARNING: content before first section header: Ss
--- /dev/null
+# $OpenBSD: Makefile,v 1.7 2014/11/26 19:22:44 schwarze Exp $
+
+REGRESS_TARGETS = noarg badarg scope spacing-No spacing-Op twoarg
+LINT_TARGETS = badarg twoarg
+
+SKIP_TMAN ?= scope
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 3, 2014
+.Dt SM-BADARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sm-badarg
+.Nd spacing macro with invalid arguments
+.Sh DESCRIPTION
+.Fl f Ar on
+.Sm off
+.Fl f Ar off
+.Sm bad
+.Fl f Ar bad Pq on
+.Sm bad
+.Fl f Ar bad Pq off
--- /dev/null
+SM-BADARG(1) General Commands Manual SM-BADARG(1)
+
+N\bNA\bAM\bME\bE
+ S\bSm\bm-\b-b\bba\bad\bda\bar\brg\bg - spacing macro with invalid arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ -\b-f\bf _\bo_\bn -\b-f\bf_\bo_\bf_\bf bad -\b-f\bf _\bb_\ba_\bd (on) bad-\b-f\bf_\bb_\ba_\bd(off)
+
+OpenBSD July 3, 2014 OpenBSD
--- /dev/null
+mandoc: badarg.in:11:5: WARNING: invalid Boolean argument: Sm bad
+mandoc: badarg.in:13:5: WARNING: invalid Boolean argument: Sm bad
--- /dev/null
+.Dd July 2, 2014
+.Dt SM-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sm-noarg
+.Nd spacing macro without arguments
+.Sh DESCRIPTION
+.Fl f Ar on
+.Sm off
+.Fl f Ar off
+.Sm
+.Fl f Ar toggle Pq now on
+.Sm on
+.Fl f Ar on
+.Sm
+.Fl f Ar toggle Pq now off
+.Pp
+.Sm on
+.Fl f Ar on
+on a new line
--- /dev/null
+SM-NOARG(1) General Commands Manual SM-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ S\bSm\bm-\b-n\bno\boa\bar\brg\bg - spacing macro without arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ -\b-f\bf _\bo_\bn -\b-f\bf_\bo_\bf_\bf -\b-f\bf _\bt_\bo_\bg_\bg_\bl_\be (now on) -\b-f\bf _\bo_\bn -\b-f\bf_\bt_\bo_\bg_\bg_\bl_\be(nowoff)
+
+ -\b-f\bf _\bo_\bn on a new line
+
+OpenBSD July 2, 2014 OpenBSD
--- /dev/null
+.Dd January 2, 2010
+.Dt SM-SCOPE 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sm-scope
+.Nd scope of the spacing macro
+.Sh DESCRIPTION
+Using an abbreviated example from the
+.Xr ksh 1
+manual.
+.Pp
+Modifiers can be applied to the
+.Pf ${ Ns Ar name Ns }
+form of parameter substitution:
+.Bl -tag -width Ds
+.Sm off
+.It ${ Ar name No :- Ar word No }
+.Sm on
+If
+.Ar name
+is set and not
+.Dv NULL ,
+it is substituted; otherwise,
+.Ar word
+is substituted.
+.El
+.Pp
+In the above modifiers, the
+.Ql \&:
+can be omitted, ...
--- /dev/null
+SM-SCOPE(1) General Commands Manual SM-SCOPE(1)
+
+N\bNA\bAM\bME\bE
+ S\bSm\bm-\b-s\bsc\bco\bop\bpe\be - scope of the spacing macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Using an abbreviated example from the ksh(1) manual.
+
+ Modifiers can be applied to the ${_\bn_\ba_\bm_\be} form of parameter substitution:
+
+ ${_\bn_\ba_\bm_\be:-_\bw_\bo_\br_\bd}
+ If _\bn_\ba_\bm_\be is set and not NULL, it is substituted; otherwise, _\bw_\bo_\br_\bd
+ is substituted.
+
+ In the above modifiers, the `:' can be omitted, ...
+
+OpenBSD January 2, 2010 OpenBSD
--- /dev/null
+.Dd July 4, 2010
+.Dt SM-SPACING 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sm-spacing
+.Nd basic tests of spacing mode
+.Sh SYNOPSIS
+.Nm mandoc
+.Sm off
+.Fl T Ar mode
+.Sm on
+.Ar
+.Sh DESCRIPTION
+text1
+.Sm off
+text2 text3
+.Sm on
+text4
+.Pp
+text1
+.Sm off
+text2 text3
+.Sm on
+.No macro4
+.Pp
+text1
+.Sm off
+.No macro2 macro3
+.Sm on
+text4
+.Pp
+text1
+.Sm off
+.No macro2 No macro3
+.Sm on
+.No macro4
+.Pp
+.No macro1
+.Sm off
+text2 text3
+.Sm on
+text4
+.Pp
+.No macro1
+.Sm off
+text2 text3
+.Sm on
+.No macro4
+.Pp
+.No macro1
+.Sm off
+.No macro2 No macro3
+.Sm on
+text4
+.Pp
+.No macro1
+.Sm off
+.No macro2 No macro3
+.Sm on
+.No macro4
--- /dev/null
+SM-SPACING(1) General Commands Manual SM-SPACING(1)
+
+N\bNA\bAM\bME\bE
+ S\bSm\bm-\b-s\bsp\bpa\bac\bci\bin\bng\bg - basic tests of spacing mode
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ m\bma\ban\bnd\bdo\boc\bc -\b-T\bT_\bm_\bo_\bd_\be _\bf_\bi_\bl_\be _\b._\b._\b.
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ text1 text2 text3 text4
+
+ text1 text2 text3 macro4
+
+ text1 macro2macro3 text4
+
+ text1 macro2macro3 macro4
+
+ macro1 text2 text3 text4
+
+ macro1 text2 text3 macro4
+
+ macro1 macro2macro3 text4
+
+ macro1 macro2macro3 macro4
+
+OpenBSD July 4, 2010 OpenBSD
--- /dev/null
+.Dd July 4, 2010
+.Dt SM-SPACING-OP 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sm-spacing-Op
+.Nd spacing mode, demonstrated using the .Op macro
+.Sh SYNOPSIS
+.Nm mandoc
+.Sm off
+.Fl T Ar mode
+.Sm on
+.Ar
+.Sh DESCRIPTION
+text1
+.Sm off
+text2 text3
+.Sm on
+text4
+.Pp
+text1
+.Sm off
+text2 text3
+.Sm on
+.Op macro4
+.Pp
+text1
+.Sm off
+.Op macro2 macro3
+.Sm on
+text4
+.Pp
+text1
+.Sm off
+.Op macro2 Op macro3
+.Sm on
+.Op macro4
+.Pp
+.Op macro1
+.Sm off
+text2 text3
+.Sm on
+text4
+.Pp
+.Op macro1
+.Sm off
+text2 text3
+.Sm on
+.Op macro4
+.Pp
+.Op macro1
+.Sm off
+.Op macro2 Op macro3
+.Sm on
+text4
+.Pp
+.Op macro1
+.Sm off
+.Op macro2 Op macro3
+.Sm on
+.Op macro4
+.Pp
+.Sm on
+.Op macro1
--- /dev/null
+SM-SPACING-OP(1) General Commands Manual SM-SPACING-OP(1)
+
+N\bNA\bAM\bME\bE
+ S\bSm\bm-\b-s\bsp\bpa\bac\bci\bin\bng\bg-\b-O\bOp\bp - spacing mode, demonstrated using the .Op macro
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ m\bma\ban\bnd\bdo\boc\bc -\b-T\bT_\bm_\bo_\bd_\be _\bf_\bi_\bl_\be _\b._\b._\b.
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ text1 text2 text3 text4
+
+ text1 text2 text3 [macro4]
+
+ text1 [macro2macro3] text4
+
+ text1 [macro2[macro3]] [macro4]
+
+ [macro1] text2 text3 text4
+
+ [macro1] text2 text3 [macro4]
+
+ [macro1] [macro2[macro3]] text4
+
+ [macro1] [macro2[macro3]] [macro4]
+
+ [macro1]
+
+OpenBSD July 4, 2010 OpenBSD
--- /dev/null
+.Dd November 26, 2014
+.Dt SM-TWOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sm-twoarg
+.Nd spacing macro with multiple arguments
+.Sh DESCRIPTION
+.Sy default :
+.Fl f Ar on
+.br
+.Sy off two :
+.Sm off two
+.Fl f Ar off
+.br
+.Sy bad two :
+.Sm bad two
+.Fl f Ar off
+.br
+.Sy on two :
+.Sm on two
+.Fl f Ar on
--- /dev/null
+SM-TWOARG(1) General Commands Manual SM-TWOARG(1)
+
+N\bNA\bAM\bME\bE
+ S\bSm\bm-\b-t\btw\bwo\boa\bar\brg\bg - spacing macro with multiple arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ d\bde\bef\bfa\bau\bul\blt\bt: -\b-f\bf _\bo_\bn
+ o\bof\bff\bf t\btw\bwo\bo: two-\b-f\bf_\bo_\bf_\bf
+ b\bba\bad\bdt\btw\bwo\bo: bad two -\b-f\bf _\bo_\bf_\bf
+ o\bon\bn t\btw\bwo\bo: two -\b-f\bf _\bo_\bn
+
+OpenBSD November 26, 2014 OpenBSD
--- /dev/null
+mandoc: twoarg.in:16:5: WARNING: invalid Boolean argument: Sm bad
--- /dev/null
+# $OpenBSD: Makefile,v 1.1.1.1 2011/12/04 03:09:25 schwarze Exp $
+
+REGRESS_TARGETS=empty
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd October 21, 2010
+.Dt SQ-EMPTY 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sq-empty
+.Nd empty implicit enclosure macros
+.Sh DESCRIPTION
+An empty
+.Sq
+and a full
+.Sq user@host
+quotation.
+And another
+.So full Sc one .
--- /dev/null
+SQ-EMPTY(1) General Commands Manual SQ-EMPTY(1)
+
+N\bNA\bAM\bME\bE
+ S\bSq\bq-\b-e\bem\bmp\bpt\bty\by - empty implicit enclosure macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ An empty `' and a full `user@host' quotation. And another `full' one.
+
+OpenBSD October 21, 2010 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2015/02/10 17:47:19 schwarze Exp $
+
+REGRESS_TARGETS = badargs call
+LINT_TARGETS = badargs call
+
+# groff-1.22.3 defect:
+# - If the first argument of .St is the name of another macro,
+# internal groff_mdoc(7) state gets corrupted.
+
+SKIP_GROFF = call
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd June 30, 2010
+.Dt ST-INVALID 1
+.Os OpenBSD
+.Sh NAME
+.Nm St-invalid
+.Nd handling of invalid standard argument
+.Sh STANDARDS
+valid argument:
+.St -p1003.1-2004
+.Pp
+invalid argument:
+.St -murks
+.Pp
+no arguments:
+.St
+.Pp
+two arguments:
+.St -p1003.1-2004 murks
+.Pp
+end of file
--- /dev/null
+ST-INVALID(1) General Commands Manual ST-INVALID(1)
+
+N\bNA\bAM\bME\bE
+ S\bSt\bt-\b-i\bin\bnv\bva\bal\bli\bid\bd - handling of invalid standard argument
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+ valid argument: IEEE Std 1003.1-2004 (``POSIX.1'')
+
+ invalid argument:
+
+ no arguments:
+
+ two arguments: IEEE Std 1003.1-2004 (``POSIX.1'') murks
+
+ end of file
+
+OpenBSD June 30, 2010 OpenBSD
--- /dev/null
+mandoc: badargs.in:15:2: WARNING: skipping empty macro: St
+mandoc: badargs.in:12:5: ERROR: unknown standard specifier: St -murks
--- /dev/null
+.Dd February 10, 2015
+.Dt ST-CALL 1
+.Os OpenBSD
+.Sh NAME
+.Nm St-call
+.Nd the standard macro calling other macros
+.Sh STANDARDS
+calling another macro:
+.St Fl called
+.Pp
+valid argument:
+.St -p1003.1-2004
+.Pp
+end of file
--- /dev/null
+ST-CALL(1) General Commands Manual ST-CALL(1)
+
+N\bNA\bAM\bME\bE
+ S\bSt\bt-\b-c\bca\bal\bll\bl - the standard macro calling other macros
+
+S\bST\bTA\bAN\bND\bDA\bAR\bRD\bDS\bS
+ calling another macro: -\b-c\bca\bal\bll\ble\bed\bd
+
+ valid argument: IEEE Std 1003.1-2004 (``POSIX.1'')
+
+ end of file
+
+OpenBSD February 10, 2015 OpenBSD
--- /dev/null
+mandoc: call.in:9:2: WARNING: skipping empty macro: St
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = noarg font
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt SX-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sx-font
+.Nd changing fonts inside the cross reference macro
+.Sh DESCRIPTION
+normal text
+.Sx emphasis\\fBbold\\fPback
+trailing text
--- /dev/null
+SX-FONT(1) General Commands Manual SX-FONT(1)
+
+N\bNA\bAM\bME\bE
+ S\bSx\bx-\b-f\bfo\bon\bnt\bt - changing fonts inside the cross reference macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bbo\bol\bld\bd_\bb_\ba_\bc_\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd January 19, 2011
+.Dt SX-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sx-noarg
+.Nd internal cross reference without a target
+.Sh DESCRIPTION
+with target:
+.Sx DESCRIPTION
+no target:
+.Sx
+end of test document
--- /dev/null
+SX-NOARG(1) General Commands Manual SX-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ S\bSx\bx-\b-n\bno\boa\bar\brg\bg - internal cross reference without a target
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with target: _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN no target: end of test document
+
+OpenBSD January 19, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: Sx
--- /dev/null
+# $OpenBSD: Makefile,v 1.5 2014/11/17 06:44:35 schwarze Exp $
+
+REGRESS_TARGETS = noarg font punct
+LINT_TARGETS = noarg punct
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt SY-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sy-font
+.Nd changing fonts inside the symbolic font macro
+.Sh DESCRIPTION
+normal text
+.Sy bold\\fIemphasis\\fPback
+trailing text
--- /dev/null
+SY-FONT(1) General Commands Manual SY-FONT(1)
+
+N\bNA\bAM\bME\bE
+ S\bSy\by-\b-f\bfo\bon\bnt\bt - changing fonts inside the symbolic font macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text b\bbo\bol\bld\bd_\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bba\bac\bck\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd January 19, 2011
+.Dt SY-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sy-noarg
+.Nd symbolic macro without arguments
+.Sh DESCRIPTION
+with argument
+.Sy arg
+no argument
+.Sy
+end of test document
--- /dev/null
+SY-NOARG(1) General Commands Manual SY-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ S\bSy\by-\b-n\bno\boa\bar\brg\bg - symbolic macro without arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with argument a\bar\brg\bg no argument end of test document
+
+OpenBSD January 19, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: Sy
--- /dev/null
+.Dd November 17, 2014
+.Dt SY-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sy-punct
+.Nd punctuation following a symbolic macro
+.Sh DESCRIPTION
+Leading punctuation:
+.Sy ( b
+.Sy [ b
+.Sy | b
+.Sy . b
+.Sy , b
+.Sy ; b
+.Sy : b
+.Sy ? b
+.Sy ! b
+.Sy ) b
+.Sy ] b
+.Pp
+Trailing punctuation:
+.Sy a (
+.Sy a [
+.Sy a |
+.Sy a .
+.Sy a ,
+.Sy a ;
+.Sy a :
+.Sy a ?
+.Sy a !
+.Sy a )
+.Sy a ]
+.Pp
+Middle punctuation:
+.Sy a ( b
+.Sy a [ b
+.Sy a | b
+.Sy a . b
+.Sy a , b
+.Sy a ; b
+.Sy a : b
+.Sy a ? b
+.Sy a ! b
+.Sy a ) b
+.Sy a ] b
+.Pp
+Isolated punctuation:
+.Sy a Sy ( Sy b
+.Sy a Sy [ Sy b
+.Sy a Sy | Sy b
+.Sy a Sy . Sy b
+.Sy a Sy , Sy b
+.Sy a Sy ; Sy b
+.Sy a Sy : Sy b
+.Sy a Sy ? Sy b
+.Sy a Sy ! Sy b
+.Sy a Sy ) Sy b
+.Sy a Sy ] Sy b
+.Pp
+Isolated trailing punctuation:
+.Sy a Sy (
+.Sy a Sy [
+.Sy a Sy |
+.Sy a Sy .
+.Sy a Sy ,
+.Sy a Sy ;
+.Sy a Sy :
+.Sy a Sy ?
+.Sy a Sy !
+.Sy a Sy )
+.Sy a Sy ]
+.Pp
+Multiple isolated punctuation:
+.Sy a Sy ( [ Sy b
+.Sy a Sy ) ] Sy b
+.Pp
+Multiple punctuation:
+.Sy [ ( arg ) ] .
+.Pp
+Quoted:
+.Sy "a . b Nm"
+.Sy ". b Nm"
--- /dev/null
+SY-PUNCT(1) General Commands Manual SY-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ S\bSy\by-\b-p\bpu\bun\bnc\bct\bt - punctuation following a symbolic macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Leading punctuation: (b\bb [b\bb | b\bb . b\bb , b\bb ; b\bb : b\bb ? b\bb ! b\bb ) b\bb ] b\bb
+
+ Trailing punctuation: a\ba ( a\ba [ a\ba | a\ba. a\ba, a\ba; a\ba: a\ba? a\ba! a\ba) a\ba]
+
+ Middle punctuation: a\ba (b\bb a\ba [b\bb a\ba | b\bb a\ba. b\bb a\ba, b\bb a\ba; b\bb a\ba: b\bb a\ba? b\bb a\ba! b\bb a\ba) b\bb a\ba]
+ b\bb
+
+ Isolated punctuation: a\ba (b\bb a\ba [b\bb a\ba | b\bb a\ba . b\bb a\ba , b\bb a\ba ; b\bb a\ba : b\bb a\ba ? b\bb a\ba ! b\bb
+ a\ba ) b\bb a\ba ] b\bb
+
+ Isolated trailing punctuation: a\ba ( a\ba [ a\ba | a\ba . a\ba , a\ba ; a\ba : a\ba ? a\ba ! a\ba )
+ a\ba ]
+
+ Multiple isolated punctuation: a\ba ([b\bb a\ba )] b\bb
+
+ Multiple punctuation: [(a\bar\brg\bg)].
+
+ Quoted: a\ba .\b. b\bb N\bNm\bm .\b. b\bb N\bNm\bm
+
+OpenBSD November 17, 2014 OpenBSD
--- /dev/null
+mandoc: punct.in:48:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:49:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:50:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:51:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:52:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:53:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:54:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:55:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:56:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:57:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:58:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:61:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:62:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:63:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:64:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:65:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:66:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:67:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:68:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:69:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:70:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:71:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:74:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:75:7: WARNING: skipping empty macro: Sy
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = noarg font
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 9, 2012
+.Dt TN-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Tn-font
+.Nd changing fonts inside the trade name macro
+.Sh DESCRIPTION
+normal text
+.Tn literal\\fIemphasis\\fPback
+trailing text
--- /dev/null
+TN-FONT(1) General Commands Manual TN-FONT(1)
+
+N\bNA\bAM\bME\bE
+ T\bTn\bn-\b-f\bfo\bon\bnt\bt - changing fonts inside the trade name macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text literal_\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsback trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd January 19, 2011
+.Dt TN-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Tn-noarg
+.Nd trade name macro without argument
+.Sh DESCRIPTION
+with argument
+.Tn IBM
+no argument
+.Tn
+end of test document
--- /dev/null
+TN-NOARG(1) General Commands Manual TN-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ T\bTn\bn-\b-n\bno\boa\bar\brg\bg - trade name macro without argument
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with argument IBM no argument end of test document
+
+OpenBSD January 19, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: Tn
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2017/01/11 17:39:45 schwarze Exp $
+
+REGRESS_TARGETS = arg
+LINT_TARGETS = arg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd January 11, 2017
+.Dt UD-ARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ud-arg
+.Nd obsolete text production macros
+.Sh DESCRIPTION
+The newest branch is
+.Ud
+The stable branch
+.Bt
+It will be released shortly.
+.Pp
+With arg:
+.Ud bar
+.Bt foo
+.Ud one two
+.Bt one two
+end
--- /dev/null
+UD-ARG(1) General Commands Manual UD-ARG(1)
+
+N\bNA\bAM\bME\bE
+ U\bUd\bd-\b-a\bar\brg\bg - obsolete text production macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The newest branch is currently under development. The stable branch is
+ currently in beta test. It will be released shortly.
+
+ With arg: currently under development. is currently in beta test.
+ currently under development. is currently in beta test. end
+
+OpenBSD January 11, 2017 OpenBSD
--- /dev/null
+mandoc: arg.in:15:2: ERROR: skipping all arguments: Ud bar
+mandoc: arg.in:16:2: ERROR: skipping all arguments: Bt foo
+mandoc: arg.in:17:2: ERROR: skipping all arguments: Ud one
+mandoc: arg.in:18:2: ERROR: skipping all arguments: Bt one
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2013/12/22 14:06:29 schwarze Exp $
+
+REGRESS_TARGETS = spacing eos
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd December 22, 2013
+.Dt UX-EOS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ux-eos
+.Nd end of sentence spacing after Unix macros
+.Sh DESCRIPTION
+In the beginning Ken and Dennis wrote
+.Ux .
+The CSRG rewrote it to become
+.Bx .
+When it dissolved, people started
+.Bsx .
+And
+.Nx .
+And
+.Fx .
+And
+.Ox .
+And
+.Dx .
+By now, it's free for everyone.
--- /dev/null
+UX-EOS(1) General Commands Manual UX-EOS(1)
+
+N\bNA\bAM\bME\bE
+ U\bUx\bx-\b-e\beo\bos\bs - end of sentence spacing after Unix macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ In the beginning Ken and Dennis wrote UNIX. The CSRG rewrote it to
+ become BSD. When it dissolved, people started BSD/OS. And NetBSD. And
+ FreeBSD. And OpenBSD. And DragonFly. By now, it's free for everyone.
+
+OpenBSD December 22, 2013 OpenBSD
--- /dev/null
+.Dd October 20, 2011
+.Dt UX-SPACING 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ux-spacing
+.Nd spacing around the Unix macro
+.Sh DESCRIPTION
+The
+.Ux
+family of operating systems, including
+.Nx ,
+.Ox ,
+.Fx ,
+.Dx
+and
+.Bsx .
+The system is
+.Ud
+The system
+.Bt
--- /dev/null
+UX-SPACING(1) General Commands Manual UX-SPACING(1)
+
+N\bNA\bAM\bME\bE
+ U\bUx\bx-\b-s\bsp\bpa\bac\bci\bin\bng\bg - spacing around the Unix macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The UNIX family of operating systems, including NetBSD, OpenBSD, FreeBSD,
+ DragonFly and BSD/OS. The system is currently under development. The
+ system is currently in beta test.
+
+OpenBSD October 20, 2011 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.3 2014/07/02 20:18:42 schwarze Exp $
+
+REGRESS_TARGETS = basic font noarg
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 8, 2012
+.Dt VA-BASIC 1
+.Os OpenBSD
+.Sh NAME
+.Nm Va-basic
+.Nd basic usage of the variable name macro
+.Sh DESCRIPTION
+Both
+.Vt char *
+.Va malloc_options
+and
+.Vt int
+.Va errno
+are typical examples of global variables.
--- /dev/null
+VA-BASIC(1) General Commands Manual VA-BASIC(1)
+
+N\bNA\bAM\bME\bE
+ V\bVa\ba-\b-b\bba\bas\bsi\bic\bc - basic usage of the variable name macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Both _\bc_\bh_\ba_\br _\b* _\bm_\ba_\bl_\bl_\bo_\bc_\b__\bo_\bp_\bt_\bi_\bo_\bn_\bs and _\bi_\bn_\bt _\be_\br_\br_\bn_\bo are typical examples of global
+ variables.
+
+OpenBSD July 8, 2012 OpenBSD
--- /dev/null
+.Dd July 9, 2012
+.Dt VA-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Va-font
+.Nd changing fonts inside the variable name macro
+.Sh DESCRIPTION
+normal text
+.Va emphasis\\fBbold\\fPback
+trailing text
--- /dev/null
+VA-FONT(1) General Commands Manual VA-FONT(1)
+
+N\bNA\bAM\bME\bE
+ V\bVa\ba-\b-f\bfo\bon\bnt\bt - changing fonts inside the variable name macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bbo\bol\bld\bd_\bb_\ba_\bc_\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd January 20, 2011
+.Dt VA-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Va-noarg
+.Nd variable name macro without arguments
+.Sh DESCRIPTION
+with arguments
+.Vt int
+.Va errno
+no arguments
+.Va
+end of test document
--- /dev/null
+VA-NOARG(1) General Commands Manual VA-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ V\bVa\ba-\b-n\bno\boa\bar\brg\bg - variable name macro without arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with arguments _\bi_\bn_\bt _\be_\br_\br_\bn_\bo no arguments end of test document
+
+OpenBSD January 20, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:12:2: WARNING: skipping empty macro: Va
--- /dev/null
+# $OpenBSD: Makefile,v 1.7 2015/09/14 15:35:47 schwarze Exp $
+
+REGRESS_TARGETS = noarg spacing font child
+LINT_TARGETS = noarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 2, 2014
+.Dt VT-CHILD 1
+.Os OpenBSD
+.Sh NAME
+.Nm Vt-child
+.Nd the variable type macro does not want children
+.Sh SYNOPSIS
+.Vt extern Sy int Li errno
+.Sh DESCRIPTION
+various types, for example
+.Vt unsigned Sy int ,
+.Vt long Li int
+and
+.Vt float ,
+.Vt double
--- /dev/null
+VT-CHILD(1) General Commands Manual VT-CHILD(1)
+
+N\bNA\bAM\bME\bE
+ V\bVt\bt-\b-c\bch\bhi\bil\bld\bd - the variable type macro does not want children
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ _\be_\bx_\bt_\be_\br_\bn i\bin\bnt\bt errno
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ various types, for example _\bu_\bn_\bs_\bi_\bg_\bn_\be_\bd i\bin\bnt\bt, _\bl_\bo_\bn_\bg int and _\bf_\bl_\bo_\ba_\bt, _\bd_\bo_\bu_\bb_\bl_\be
+
+OpenBSD July 2, 2014 OpenBSD
--- /dev/null
+.Dd July 9, 2012
+.Dt VT-FONT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Vt-font
+.Nd changing fonts inside the variable type macro
+.Sh DESCRIPTION
+normal text
+.Vt emphasis\\fBbold\\fPback
+trailing text
--- /dev/null
+VT-FONT(1) General Commands Manual VT-FONT(1)
+
+N\bNA\bAM\bME\bE
+ V\bVt\bt-\b-f\bfo\bon\bnt\bt - changing fonts inside the variable type macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bbo\bol\bld\bd_\bb_\ba_\bc_\bk trailing text
+
+OpenBSD July 9, 2012 OpenBSD
--- /dev/null
+.Dd January 20, 2011
+.Dt VT-NOARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm Vt-noarg
+.Nd variable type macro without arguments
+.Sh DESCRIPTION
+with arguments
+.Vt signed int
+no arguments
+.Vt
+end of test document
--- /dev/null
+VT-NOARG(1) General Commands Manual VT-NOARG(1)
+
+N\bNA\bAM\bME\bE
+ V\bVt\bt-\b-n\bno\boa\bar\brg\bg - variable type macro without arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ with arguments _\bs_\bi_\bg_\bn_\be_\bd _\bi_\bn_\bt no arguments end of test document
+
+OpenBSD January 20, 2011 OpenBSD
--- /dev/null
+mandoc: noarg.in:11:2: WARNING: skipping empty macro: Vt
--- /dev/null
+.Dd July 8, 2012
+.Dt VT-SPACING 1
+.Os OpenBSD
+.Sh NAME
+.Nm Vt-spacing
+.Nd spacing around the variable type macro
+.Sh SYNOPSIS
+.Vt extern char **environ
+.Vt extern int errno
+.Sh DESCRIPTION
+various types, for example
+.Vt unsigned int ,
+.Vt long int
+and
+.Vt float ,
+.Vt double
--- /dev/null
+VT-SPACING(1) General Commands Manual VT-SPACING(1)
+
+N\bNA\bAM\bME\bE
+ V\bVt\bt-\b-s\bsp\bpa\bac\bci\bin\bng\bg - spacing around the variable type macro
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ _\be_\bx_\bt_\be_\br_\bn _\bc_\bh_\ba_\br _\b*_\b*_\be_\bn_\bv_\bi_\br_\bo_\bn
+ _\be_\bx_\bt_\be_\br_\bn _\bi_\bn_\bt _\be_\br_\br_\bn_\bo
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ various types, for example _\bu_\bn_\bs_\bi_\bg_\bn_\be_\bd _\bi_\bn_\bt, _\bl_\bo_\bn_\bg _\bi_\bn_\bt and _\bf_\bl_\bo_\ba_\bt, _\bd_\bo_\bu_\bb_\bl_\be
+
+OpenBSD July 8, 2012 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2015/02/06 01:07:07 schwarze Exp $
+
+REGRESS_TARGETS = args
+LINT_TARGETS = args
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd December 3, 2011
+.Dt XR-ARGS 1
+.Os OpenBSD
+.Sh NAME
+.Nm Xr-args
+.Nd additional arguments to cross references
+.Sh DESCRIPTION
+One single
+.Xr echo 1
+is fine, and so is an
+.Xr echo 1 followed by something else.
+.Pp
+But listen for multiple
+.Xr echo 1 Ns s .
+.Pp
+A call, an
+.Xr echo 1 , and
+another
+.Xr echo 1 .
+.Pp
+Finally, half an
+.Xr echo ,
+no echo
+.Xr ,
+and no
+.Xr
+echo at all.
--- /dev/null
+XR-ARGS(1) General Commands Manual XR-ARGS(1)
+
+N\bNA\bAM\bME\bE
+ X\bXr\br-\b-a\bar\brg\bgs\bs - additional arguments to cross references
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ One single echo(1) is fine, and so is an echo(1) followed by something
+ else.
+
+ But listen for multiple echo(1)s.
+
+ A call, an echo(1), and another echo(1).
+
+ Finally, half an echo, no echo and no echo at all.
+
+OpenBSD December 3, 2011 OpenBSD
--- /dev/null
+mandoc: args.in:24:2: WARNING: skipping empty macro: Xr
+mandoc: args.in:26:2: WARNING: skipping empty macro: Xr
+mandoc: args.in:22:2: WARNING: missing section argument: Xr echo
--- /dev/null
+# $OpenBSD: Makefile,v 1.5 2014/07/06 19:08:57 schwarze Exp $
+
+REGRESS_TARGETS = line comment list
+LINT_TARGETS = line comment list
+
+SKIP_TMAN = list
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd February 17, 2010
+.Dt BLANK-COMMENT 1
+.Os OpenBSD
+.Sh NAME
+.Nm blank-comment
+.Nd normal and bogus comments
+.Sh DESCRIPTION
+normal comment
+.\" normal
+bogus comment
+\."
+end of text
+.Pp
+text \" comment
+text
--- /dev/null
+BLANK-COMMENT(1) General Commands Manual BLANK-COMMENT(1)
+
+N\bNA\bAM\bME\bE
+ b\bbl\bla\ban\bnk\bk-\b-c\bco\bom\bmm\bme\ben\bnt\bt - normal and bogus comments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal comment bogus comment end of text
+
+ text text
+
+OpenBSD February 17, 2010 OpenBSD
--- /dev/null
+mandoc: comment.in:11:3: WARNING: bad comment style
--- /dev/null
+.Dd February 17, 2010
+.Dt BLANK-LINE 1
+.Os OpenBSD
+.Sh NAME
+.Nm blank-line
+.Nd handling of blank line
+.Sh DESCRIPTION
+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:
+
+
+Bd ragged sp 2v:
+.Bd -ragged -offset 6n
+.sp 2v
+Ed sp 2v:
+.Ed
+.sp 2v
+Bl tag sp 2v:
+.Bl -tag -width 6n
+.It tag
+.sp 2v
+El sp 2v
+.El
+Sh sp 2v:
+.Sh CUSTOM
+.sp 2v
+Pp Sh Pp:
+.Pp
+.Sh CUSTOM TWO
+.Pp
+Ss Pp:
+.Ss Subsection
+.Pp
+End.
+.Pp
--- /dev/null
+BLANK-LINE(1) General Commands Manual BLANK-LINE(1)
+
+N\bNA\bAM\bME\bE
+ b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\be - handling of blank line
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 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:
+
+
+ Bd ragged sp 2v:
+
+
+
+ Ed sp 2v:
+
+
+ Bl tag sp 2v:
+
+ tag
+
+
+ El sp 2v
+ Sh sp 2v:
+
+C\bCU\bUS\bST\bTO\bOM\bM
+ Pp Sh Pp:
+
+C\bCU\bUS\bST\bTO\bOM\bM T\bTW\bWO\bO
+ Ss Pp:
+
+ S\bSu\bub\bbs\bse\bec\bct\bti\bio\bon\bn
+ End.
+
+OpenBSD February 17, 2010 OpenBSD
--- /dev/null
+mandoc: line.in:15:1: WARNING: blank line in fill mode, using .sp
+mandoc: line.in:48:1: WARNING: blank line in fill mode, using .sp
+mandoc: line.in:50:1: WARNING: blank line in fill mode, using .sp
+mandoc: line.in:54:1: WARNING: blank line in fill mode, using .sp
+mandoc: line.in:56:1: WARNING: blank line in fill mode, using .sp
+mandoc: line.in:60:1: WARNING: blank line in fill mode, using .sp
+mandoc: line.in:62:1: WARNING: blank line in fill mode, using .sp
+mandoc: line.in:65:1: WARNING: blank line in fill mode, using .sp
+mandoc: line.in:66:1: WARNING: blank line in fill mode, using .sp
+mandoc: line.in:18:2: WARNING: skipping paragraph macro: br after br
+mandoc: line.in:20:2: WARNING: skipping paragraph macro: br before Pp
+mandoc: line.in:24:2: WARNING: skipping paragraph macro: br after Pp
+mandoc: line.in:26:2: WARNING: skipping paragraph macro: Pp before Pp
+mandoc: line.in:33:2: WARNING: skipping paragraph macro: br after sp
+mandoc: line.in:36:2: WARNING: skipping paragraph macro: sp after Pp
+mandoc: line.in:39:2: WARNING: skipping paragraph macro: sp after Pp
+mandoc: line.in:51:2: WARNING: skipping paragraph macro: br after sp
+mandoc: line.in:54:1: WARNING: skipping paragraph macro: sp after Pp
+mandoc: line.in:81:2: WARNING: skipping paragraph macro: sp after Sh
+mandoc: line.in:83:2: WARNING: skipping paragraph macro: Pp at the end of Sh
+mandoc: line.in:85:2: WARNING: skipping paragraph macro: Pp after Sh
+mandoc: line.in:88:2: WARNING: skipping paragraph macro: Pp after Ss
+mandoc: line.in:90:2: WARNING: skipping paragraph macro: Pp at the end of Ss
--- /dev/null
+.Dd July 17, 2012
+.Dt BLANK-LIST 1
+.Os OpenBSD
+.Sh NAME
+.Nm blank-list
+.Nd handling of blank lines in lists
+.Sh DESCRIPTION
+normal list:
+.Bl -item -offset indent
+.It
+first item
+.It
+second item
+.El
+list with paragraphs:
+.Bl -item -offset indent
+.It
+first item
+.Pp
+.It
+second item
+.Pp
+.El
+list with final paragraph:
+.Bl -item -offset indent
+.It
+item
+.El
+.Pp
+list with double paragraph:
+.Bl -item -offset indent
+.It
+item
+.Pp
+.El
+.Pp
+normal compact list:
+.Bl -item -compact -offset indent
+.It
+first item
+.It
+second item
+.El
+compact list with paragraphs:
+.Bl -item -compact -offset indent
+.It
+first item
+.Pp
+.It
+second item
+.Pp
+.El
+compact list with final paragraph:
+.Bl -item -compact -offset indent
+.It
+item
+.El
+.Pp
+compact list with double paragraph:
+.Bl -item -compact -offset indent
+.It
+item
+.Pp
+.El
+.Pp
+End.
--- /dev/null
+BLANK-LIST(1) General Commands Manual BLANK-LIST(1)
+
+N\bNA\bAM\bME\bE
+ b\bbl\bla\ban\bnk\bk-\b-l\bli\bis\bst\bt - handling of blank lines in lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal list:
+
+ first item
+
+ second item
+ list with paragraphs:
+
+ first item
+
+ second item
+
+ list with final paragraph:
+
+ item
+
+ list with double paragraph:
+
+ item
+
+ normal compact list:
+ first item
+ second item
+ compact list with paragraphs:
+ first item
+
+ second item
+
+ compact list with final paragraph:
+ item
+
+ compact list with double paragraph:
+ item
+
+ End.
+
+OpenBSD July 17, 2012 OpenBSD
--- /dev/null
+mandoc: list.in:19:2: WARNING: skipping paragraph macro: Pp before It
+mandoc: list.in:22:2: WARNING: moving paragraph macro out of list: Pp
+mandoc: list.in:34:2: WARNING: moving paragraph macro out of list: Pp
+mandoc: list.in:34:2: WARNING: skipping paragraph macro: Pp before Pp
+mandoc: list.in:51:2: WARNING: moving paragraph macro out of list: Pp
+mandoc: list.in:63:2: WARNING: moving paragraph macro out of list: Pp
+mandoc: list.in:63:2: WARNING: skipping paragraph macro: Pp before Pp
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2016/08/20 17:58:09 schwarze Exp $
+
+REGRESS_TARGETS = brokenbreaker twice tail two notopen
+LINT_TARGETS = brokenbreaker twice tail two notopen
+
+# It's hard to keep stuff together in next-line scope.
+
+SKIP_TMAN = tail
+
+# groff-1.22.3 defect:
+# - non-matching enclosure end macro prints a closing delimiter
+
+SKIP_GROFF = brokenbreaker notopen
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd December 23, 2014
+.Dt BREAK-BROKENBREAKER 1
+.Os OpenBSD
+.Sh NAME
+.Nm break-brokenbreaker
+.Nd a broken block breaking another block
+.Sh DESCRIPTION
+.Po po
+.Ao ao pc
+.Pc
+.Bo bo pc
+.Pc ac
+.Ac bc
+.Bc
--- /dev/null
+BREAK-BROKENBREAKER(1) General Commands Manual BREAK-BROKENBREAKER(1)
+
+N\bNA\bAM\bME\bE
+ b\bbr\bre\bea\bak\bk-\b-b\bbr\bro\bok\bke\ben\bnb\bbr\bre\bea\bak\bke\ber\br - a broken block breaking another block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ (po <ao pc) [bo pc ac> bc]
+
+OpenBSD December 23, 2014 OpenBSD
--- /dev/null
+mandoc: brokenbreaker.in:10:2: WARNING: blocks badly nested: Po breaks Ao
+mandoc: brokenbreaker.in:12:2: ERROR: skipping end of block that is not open: Pc
+mandoc: brokenbreaker.in:13:2: WARNING: blocks badly nested: Ao breaks Bo
--- /dev/null
+.Dd August 20, 2016
+.Dt BREAK-NOTOPEN 1
+.Os OpenBSD
+.Sh NAME
+.Nm break-notopen
+.Nd mismatching end macro inside two open blocks
+.Sh DESCRIPTION
+.Ao ao
+.Bo bo pc
+.Pc bc
+.Bc ac
+.Ac tail
--- /dev/null
+BREAK-NOTOPEN(1) General Commands Manual BREAK-NOTOPEN(1)
+
+N\bNA\bAM\bME\bE
+ b\bbr\bre\bea\bak\bk-\b-n\bno\bot\bto\bop\bpe\ben\bn - mismatching end macro inside two open blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ <ao [bo pc bc] ac> tail
+
+OpenBSD August 20, 2016 OpenBSD
--- /dev/null
+mandoc: notopen.in:10:2: ERROR: skipping end of block that is not open: Pc
--- /dev/null
+.Dd April 5, 2015
+.Dt BREAK-TAIL 1
+.Os OpenBSD
+.Sh NAME
+.Nm break-tail
+.Nd tail arguments on broken blocks
+.Sh DESCRIPTION
+Broken by a partial explicit block:
+.Ao ao
+.Bo bo ac
+.Ac bc
+.Bc tail
+.Ao ao
+.Bo bo ac
+.Ac bc
+.Bc Po po pc
+.Pc tail
+.Pp
+Broken by a partial implicit block:
+.Aq aq Bo bo eol
+.Bc tail
+.Aq aq Bo bo eol
+.Bc Po po pc
+.Pc tail
+.Pp
+Broken by a full implicit block:
+.Bl -tag -width Ds -offset indent
+.It it Ao ao ac
+.Ac tail
+list body
+.El
+.Bl -tag -width Ds -offset indent
+.It it Ao ao ac
+.Ac Po po pc
+.Pc tail
+list body
+.El
--- /dev/null
+BREAK-TAIL(1) General Commands Manual BREAK-TAIL(1)
+
+N\bNA\bAM\bME\bE
+ b\bbr\bre\bea\bak\bk-\b-t\bta\bai\bil\bl - tail arguments on broken blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Broken by a partial explicit block: <ao [bo ac> bc] tail <ao [bo ac> bc]
+ (po pc) tail
+
+ Broken by a partial implicit block: <aq [bo eol>] tail <aq [bo eol>] (po
+ pc) tail
+
+ Broken by a full implicit block:
+
+ it <ao ac> tail
+ list body
+
+ it <ao ac> (po pc) tail
+ list body
+
+OpenBSD April 5, 2015 OpenBSD
--- /dev/null
+mandoc: tail.in:11:2: WARNING: blocks badly nested: Ao breaks Bo
+mandoc: tail.in:15:2: WARNING: blocks badly nested: Ao breaks Bo
+mandoc: tail.in:20:2: WARNING: blocks badly nested: Aq breaks Bo
+mandoc: tail.in:22:2: WARNING: blocks badly nested: Aq breaks Bo
--- /dev/null
+.Dd February 12, 2015
+.Dt BREAK-TWICE 1
+.Os OpenBSD
+.Sh NAME
+.Nm break-twice
+.Nd breaking the same block twice
+.Sh DESCRIPTION
+Standard case, explicit:
+.Bo bo
+.Bro bro
+.Ao ao brc
+.Brc bc
+.Bc ac
+.Ac
+.Pp
+Standard case, implicit:
+.Bo bo
+.Bro bro
+.Aq aq brc Brc bc Bc eol
+.Pp
+Two of the same kind, explicit:
+.Bo bo
+.Bo bo
+.Ao ao bc
+.Bc bc
+.Bc ac
+.Ac
+.Pp
+Two of the same kind, implicit:
+.Bo bo
+.Bo bo
+.Aq aq bc Bc bc Bc eol
--- /dev/null
+BREAK-TWICE(1) General Commands Manual BREAK-TWICE(1)
+
+N\bNA\bAM\bME\bE
+ b\bbr\bre\bea\bak\bk-\b-t\btw\bwi\bic\bce\be - breaking the same block twice
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Standard case, explicit: [bo {bro <ao brc} bc] ac>
+
+ Standard case, implicit: [bo {bro <aq brc} bc] eol>
+
+ Two of the same kind, explicit: [bo [bo <ao bc] bc] ac>
+
+ Two of the same kind, implicit: [bo [bo <aq bc] bc] eol>
+
+OpenBSD February 12, 2015 OpenBSD
--- /dev/null
+mandoc: twice.in:12:2: WARNING: blocks badly nested: Bro breaks Ao
+mandoc: twice.in:13:2: WARNING: blocks badly nested: Bo breaks Ao
+mandoc: twice.in:19:12: WARNING: blocks badly nested: Bro breaks Aq
+mandoc: twice.in:19:19: WARNING: blocks badly nested: Bo breaks Aq
+mandoc: twice.in:25:2: WARNING: blocks badly nested: Bo breaks Ao
+mandoc: twice.in:26:2: WARNING: blocks badly nested: Bo breaks Ao
+mandoc: twice.in:32:11: WARNING: blocks badly nested: Bo breaks Aq
+mandoc: twice.in:32:17: WARNING: blocks badly nested: Bo breaks Aq
--- /dev/null
+.Dd February 12, 2015
+.Dt BREAK-TWO 1
+.Os OpenBSD
+.Sh NAME
+.Nm break-two
+.Nd the same block breaking two other blocks
+.Sh DESCRIPTION
+Standard case, explicit:
+.Ao ao
+.Bo bo
+.Bro bro ac
+.Ac brc
+.Brc bc
+.Bc
+.Pp
+Standard case, implicit:
+.Aq aq Bo bo Bro bro eol
+.Brc bc Bc
+.Pp
+Reverse closing, explicit:
+.Ao ao
+.Bo bo
+.Bro bro ac
+.Ac bc
+.Bc brc
+.Brc
+.Pp
+Reverse closing, implicit:
+.Aq aq Bo bo Bro bro eol
+.Bc brc Brc
+.Pp
+Two of the same kind, explicit:
+.Ao ao
+.Bo bo
+.Bo bo ac
+.Ac bc
+.Bc bc
+.Bc
+.Pp
+Two of the same kind, implicit:
+.Aq aq Bo bo Bo bo eol
+.Bc bc Bc
--- /dev/null
+BREAK-TWO(1) General Commands Manual BREAK-TWO(1)
+
+N\bNA\bAM\bME\bE
+ b\bbr\bre\bea\bak\bk-\b-t\btw\bwo\bo - the same block breaking two other blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Standard case, explicit: <ao [bo {bro ac> brc} bc]
+
+ Standard case, implicit: <aq [bo {bro eol>} bc]
+
+ Reverse closing, explicit: <ao [bo {bro ac> bc] brc}
+
+ Reverse closing, implicit: <aq [bo {bro eol>] brc}
+
+ Two of the same kind, explicit: <ao [bo [bo ac> bc] bc]
+
+ Two of the same kind, implicit: <aq [bo [bo eol>] bc]
+
+OpenBSD February 12, 2015 OpenBSD
--- /dev/null
+mandoc: two.in:12:2: WARNING: blocks badly nested: Ao breaks Bro
+mandoc: two.in:17:2: WARNING: blocks badly nested: Aq breaks Bro
+mandoc: two.in:24:2: WARNING: blocks badly nested: Ao breaks Bro
+mandoc: two.in:25:2: WARNING: blocks badly nested: Bo breaks Bro
+mandoc: two.in:29:2: WARNING: blocks badly nested: Aq breaks Bro
+mandoc: two.in:30:2: WARNING: blocks badly nested: Bo breaks Bro
+mandoc: two.in:36:2: WARNING: blocks badly nested: Ao breaks Bo
+mandoc: two.in:41:2: WARNING: blocks badly nested: Aq breaks Bo
--- /dev/null
+#!/usr/bin/env perl
+#
+# $Id: regress.pl,v 1.1 2017/02/08 03:02:13 schwarze Exp $
+#
+# Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+use warnings;
+use strict;
+
+# Used because open(3p) and open2(3p) provide no way for handling
+# STDERR of the child process, neither for appending it to STDOUT,
+# nor for piping it into the Perl program.
+use IPC::Open3 qw(open3);
+
+# --- utility functions ------------------------------------------------
+
+sub usage ($) {
+ warn shift;
+ print STDERR "usage: $0 [directory[:test] [modifier ...]]\n";
+ exit 1;
+}
+
+# Run a command and send STDOUT and STDERR to a file.
+# 1st argument: path to the output file
+# 2nd argument: command name
+# The remaining arguments are passed to the command.
+sub sysout ($@) {
+ my $outfile = shift;
+ local *OUT_FH;
+ open OUT_FH, '>', $outfile or die "$outfile: $!";
+ my $pid = open3 undef, ">&OUT_FH", undef, @_;
+ close OUT_FH;
+ waitpid $pid, 0;
+ return $? >> 8;
+}
+
+# Simlar, but filter the output as needed for the lint test.
+sub syslint ($@) {
+ my $outfile = shift;
+ open my $outfd, '>', $outfile or die "$outfile: $!";
+ my $infd;
+ my $pid = open3 undef, $infd, undef, @_;
+ while (<$infd>) {
+ s/^mandoc: [^:]+\//mandoc: /;
+ print $outfd $_;
+ }
+ close $outfd;
+ close $infd;
+ waitpid $pid, 0;
+ return 0;
+}
+
+# Simlar, but filter the output as needed for the html test.
+sub syshtml ($@) {
+ my $outfile = shift;
+ open my $outfd, '>', $outfile or die "$outfile: $!";
+ my $infd;
+ my $pid = open3 undef, $infd, undef, @_;
+ my $state;
+ while (<$infd>) {
+ chomp;
+ if (!$state && s/.*<math class="eqn">//) {
+ $state = 1;
+ next unless length;
+ }
+ $state = 1 if /^BEGINTEST/;
+ if ($state && s/<\/math>.*//) {
+ s/^ *//;
+ print $outfd "$_\n" if length;
+ undef $state;
+ next;
+ }
+ s/^ *//;
+ print $outfd "$_\n" if $state;
+ undef $state if /^ENDTEST/;
+ }
+ close $outfd;
+ close $infd;
+ waitpid $pid, 0;
+ return 0;
+}
+
+my @failures;
+sub fail ($$$) {
+ warn "FAILED: @_\n";
+ push @failures, [@_];
+}
+
+
+# --- process command line arguments -----------------------------------
+
+my ($subdir, $onlytest) = split ':', (shift // '.');
+my $displaylevel = 2;
+my %targets;
+for (@ARGV) {
+ if (/^[0123]$/) {
+ $displaylevel = int;
+ next;
+ }
+ /^(all|ascii|utf8|man|html|lint|clean|verbose)$/
+ or usage "$_: invalid modifier";
+ $targets{$_} = 1;
+}
+$targets{all} = 1
+ unless $targets{ascii} || $targets{utf8} || $targets{man} ||
+ $targets{html} || $targets{lint} || $targets{clean};
+$targets{ascii} = $targets{utf8} = $targets{man} = $targets{html} =
+ $targets{lint} = 1 if $targets{all};
+$displaylevel = 3 if $targets{verbose};
+
+
+# --- parse Makefiles --------------------------------------------------
+
+my %vars = (MOPTS => '');
+sub parse_makefile ($) {
+ my $filename = shift;
+ open my $fh, '<', $filename or die "$filename: $!";
+ while (<$fh>) {
+ chomp;
+ next unless /\S/;
+ last if /^# OpenBSD only/;
+ next if /^#/;
+ next if /^\.include/;
+ /^(\w+)\s*([?+]?)=\s*(.*)/
+ or die "$filename: parse error: $_";
+ my $var = $1;
+ my $opt = $2;
+ my $val = $3;
+ $val =~ s/\${(\w+)}/$vars{$1}/;
+ $val = "$vars{$var} $val" if $opt eq '+';
+ $vars{$var} = $val
+ unless $opt eq '?' && defined $vars{$var};
+ }
+ close $fh;
+}
+
+if ($subdir eq '.') {
+ $vars{SUBDIR} = 'roff char mdoc man tbl eqn';
+} else {
+ parse_makefile "$subdir/Makefile";
+ parse_makefile "$subdir/../Makefile.inc"
+ if -e "$subdir/../Makefile.inc";
+}
+
+my @mandoc = '../mandoc';
+my @subdir_names;
+my (@regress_testnames, @utf8_testnames, @html_testnames, @lint_testnames);
+my (%skip_ascii, %skip_man);
+
+push @mandoc, split ' ', $vars{MOPTS} if $vars{MOPTS};
+delete $vars{MOPTS};
+delete $vars{SKIP_GROFF};
+delete $vars{SKIP_GROFF_ASCII};
+delete $vars{TBL};
+delete $vars{EQN};
+if (defined $vars{SUBDIR}) {
+ @subdir_names = split ' ', $vars{SUBDIR};
+ delete $vars{SUBDIR};
+}
+if (defined $vars{REGRESS_TARGETS}) {
+ @regress_testnames = split ' ', $vars{REGRESS_TARGETS};
+ delete $vars{REGRESS_TARGETS};
+}
+if (defined $vars{UTF8_TARGETS}) {
+ @utf8_testnames = split ' ', $vars{UTF8_TARGETS};
+ delete $vars{UTF8_TARGETS};
+}
+if (defined $vars{HTML_TARGETS}) {
+ @html_testnames = split ' ', $vars{HTML_TARGETS};
+ delete $vars{HTML_TARGETS};
+}
+if (defined $vars{LINT_TARGETS}) {
+ @lint_testnames = split ' ', $vars{LINT_TARGETS};
+ delete $vars{LINT_TARGETS};
+}
+if (defined $vars{SKIP_ASCII}) {
+ for (split ' ', $vars{SKIP_ASCII}) {
+ $skip_ascii{$_} = 1;
+ $skip_man{$_} = 1;
+ }
+ delete $vars{SKIP_ASCII};
+}
+if (defined $vars{SKIP_TMAN}) {
+ $skip_man{$_} = 1 for split ' ', $vars{SKIP_TMAN};
+ delete $vars{SKIP_TMAN};
+}
+if (keys %vars) {
+ my @vars = keys %vars;
+ die "unknown var(s) @vars";
+}
+map { $skip_ascii{$_} = 1; } @regress_testnames if $skip_ascii{ALL};
+map { $skip_man{$_} = 1; } @regress_testnames if $skip_man{ALL};
+
+# --- run targets ------------------------------------------------------
+
+my $count_total = 0;
+for my $dirname (@subdir_names) {
+ $count_total++;
+ print "\n" if $targets{verbose};
+ system './regress.pl', "$subdir/$dirname", keys %targets,
+ ($displaylevel ? $displaylevel - 1 : 0),
+ and fail $subdir, $dirname, 'subdir';
+}
+
+my $count_ascii = 0;
+my $count_man = 0;
+for my $testname (@regress_testnames) {
+ next if $onlytest && $testname ne $onlytest;
+ my $i = "$subdir/$testname.in";
+ my $o = "$subdir/$testname.mandoc_ascii";
+ my $w = "$subdir/$testname.out_ascii";
+ if ($targets{ascii} && !$skip_ascii{$testname}) {
+ $count_ascii++;
+ $count_total++;
+ print "@mandoc -T ascii $i\n" if $targets{verbose};
+ sysout $o, @mandoc, qw(-T ascii), $i
+ and fail $subdir, $testname, 'ascii:mandoc';
+ system qw(diff -au), $w, $o
+ and fail $subdir, $testname, 'ascii:diff';
+ }
+ my $m = "$subdir/$testname.in_man";
+ my $mo = "$subdir/$testname.mandoc_man";
+ if ($targets{man} && !$skip_man{$testname}) {
+ $count_man++;
+ $count_total++;
+ print "@mandoc -T man $i\n" if $targets{verbose};
+ sysout $m, @mandoc, qw(-T man), $i
+ and fail $subdir, $testname, 'man:man';
+ print "@mandoc -man -T ascii $m\n" if $targets{verbose};
+ sysout $mo, @mandoc, qw(-man -T ascii -O mdoc), $m
+ and fail $subdir, $testname, 'man:mandoc';
+ system qw(diff -au), $w, $mo
+ and fail $subdir, $testname, 'man:diff';
+ }
+ if ($targets{clean}) {
+ print "rm $o\n"
+ if $targets{verbose} && !$skip_ascii{$testname};
+ unlink $o;
+ print "rm $m $mo\n"
+ if $targets{verbose} && !$skip_man{$testname};
+ unlink $m, $mo;
+ }
+}
+
+my $count_utf8 = 0;
+for my $testname (@utf8_testnames) {
+ next if $onlytest && $testname ne $onlytest;
+ my $i = "$subdir/$testname.in";
+ my $o = "$subdir/$testname.mandoc_utf8";
+ my $w = "$subdir/$testname.out_utf8";
+ if ($targets{utf8}) {
+ $count_utf8++;
+ $count_total++;
+ print "@mandoc -T utf8 $i\n" if $targets{verbose};
+ sysout $o, @mandoc, qw(-T utf8), $i
+ and fail $subdir, $testname, 'utf8:mandoc';
+ system qw(diff -au), $w, $o
+ and fail $subdir, $testname, 'utf8:diff';
+ }
+ if ($targets{clean}) {
+ print "rm $o\n" if $targets{verbose};
+ unlink $o;
+ }
+}
+
+my $count_html = 0;
+for my $testname (@html_testnames) {
+ next if $onlytest && $testname ne $onlytest;
+ my $i = "$subdir/$testname.in";
+ my $o = "$subdir/$testname.mandoc_html";
+ my $w = "$subdir/$testname.out_html";
+ if ($targets{html}) {
+ $count_html++;
+ $count_total++;
+ print "@mandoc -T html $i\n" if $targets{verbose};
+ syshtml $o, @mandoc, qw(-T html), $i
+ and fail $subdir, $testname, 'html:mandoc';
+ system qw(diff -au), $w, $o
+ and fail $subdir, $testname, 'html:diff';
+ }
+ if ($targets{clean}) {
+ print "rm $o\n" if $targets{verbose};
+ unlink $o;
+ }
+}
+
+my $count_lint = 0;
+for my $testname (@lint_testnames) {
+ next if $onlytest && $testname ne $onlytest;
+ my $i = "$subdir/$testname.in";
+ my $o = "$subdir/$testname.mandoc_lint";
+ my $w = "$subdir/$testname.out_lint";
+ if ($targets{lint}) {
+ $count_lint++;
+ $count_total++;
+ print "@mandoc -T lint $i\n" if $targets{verbose};
+ syslint $o, @mandoc, qw(-T lint), $i
+ and fail $subdir, $testname, 'lint:mandoc';
+ system qw(diff -au), $w, $o
+ and fail $subdir, $testname, 'lint:diff';
+ }
+ if ($targets{clean}) {
+ print "rm $o\n" if $targets{verbose};
+ unlink $o;
+ }
+}
+
+exit 0 unless $displaylevel or @failures;
+
+print "\n" if $targets{verbose};
+if ($onlytest) {
+ print "test $subdir:$onlytest finished";
+} else {
+ print "testsuite $subdir finished";
+}
+print ' ', (scalar @subdir_names), ' subdirectories' if @subdir_names;
+print " $count_ascii ascii" if $count_ascii;
+print " $count_man man" if $count_man;
+print " $count_utf8 utf8" if $count_utf8;
+print " $count_html html" if $count_html;
+print " $count_lint lint" if $count_lint;
+
+if (@failures) {
+ print " (FAIL)\n\nSOME TESTS FAILED:\n\n";
+ print "@$_\n" for @failures;
+ print "\n";
+ exit 1;
+} elsif ($count_total == 1) {
+ print " (OK)\n";
+} elsif ($count_total) {
+ print " (all $count_total tests OK)\n";
+} else {
+ print " (no tests run)\n";
+}
+exit 0;
--- /dev/null
+.\" $Id: regress.pl.1,v 1.1 2017/02/08 03:02:13 schwarze Exp $
+.\"
+.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: February 8 2017 $
+.Dt REGRESS.PL 1
+.Os
+.Sh NAME
+.Nm regress.pl
+.Nd portable steering script for mandoc regression tests
+.Sh SYNOPSIS
+.Nm ./regress.pl
+.Oo
+.Ar directory Ns Op Pf : Ar test
+.Op Ar modifier ...
+.Oc
+.Sh DESCRIPTION
+The
+.Nm
+steering script allows running the
+.Xr mandoc 1
+regression suite on arbitrary operating systems,
+even though the suite was designed for OpenBSD only.
+.Pp
+When run without an argument,
+.Nm
+runs the complete regression suite.
+.Pp
+When run with one argument, that argument can be:
+.Bl -enum
+.It
+A single dot to run the complete suite.
+.It
+One of the top level directories, for example
+.Pa mdoc ,
+to run the test suite for a complete language or feature group.
+.It
+A subdirectory, for example
+.Pa man/IP ,
+to run the tests for a specific macro or an individual feature.
+.It
+A subdirectory with a test name appended with a colon, for example
+.Pa char/unicode : Ns Pa named ,
+to run the tests for one particular input file.
+.El
+.Pp
+Any additional arguments modify the way the tests are run.
+The default is
+.Cm all .
+The following modifiers are available:
+.Bl -tag -width verbose
+.It Cm all
+Run all kinds of subtests.
+This implies all other modifiers except
+.Cm verbose
+and
+.Cm clean .
+.It Cm ascii
+Run subtests for
+.Fl T Cm ascii
+output mode.
+.It Cm clean
+Remove all output files created by running the tests.
+.It Cm html
+Run subtests for
+.Fl T Cm html
+output mode.
+.It Cm lint
+Run subtests for
+.Fl T Cm lint
+warning and error output.
+.It Cm man
+Run subtests for
+.Fl T Cm man
+output mode.
+.It Cm utf8
+Run subtests for
+.Fl T Cm utf8
+output mode.
+.It Cm verbose
+Display approximate indications of what is being done.
+.El
+.Pp
+The amount of summary lines shown can be modified by giving an
+argument consisting of a single digit:
+.Bl -tag -width verbose
+.It Cm 3
+Show all summary lines for all directories entered.
+Even without
+.Cm verbose ,
+this generates more than hundred lines of output when running the
+complete regression suite.
+.It Cm 2
+This is the default.
+It shows the summary lines for the
+.Ar directory
+given on the command line and its immediate children.
+Except for
+.Pa mdoc ,
+the output usually fits on one screen.
+.It Cm 1
+Only show a single summary line for the whole run.
+.It Cm 0
+Do not show any summary lines.
+No output means success.
+Success or failure can also be seen from the exit status.
+.El
+.Pp
+All failed tests are always reported, even when the
+.Cm 0
+modifier is given.
+.Sh EXIT STATUS
+.Ex -std
+.Sh EXAMPLES
+The recommended invocation for casual users:
+.Pp
+.Dl ./regress.pl
+.Pp
+Maximum output:
+.Pp
+.Dl ./regress.pl \&. verbose
+.Pp
+Complete check, but keep the tree clean:
+.Pp
+.Dl ./regress.pl \&. all clean
+.Pp
+Test all of
+.Pa mdoc ,
+but don't print the usual 65 lines of output:
+.Pp
+.Dl ./regress.pl mdoc 1
+.Pp
+Investigate a specific failure:
+.Pp
+.Dl ./regress.pl mdoc/Bd:broken man verbose
+.Sh HISTORY
+The
+.Nm
+script appeared in release 1.14.1 of the portable
+.Sy mandoc
+distribution.
+.Sh AUTHORS
+.An Ingo Schwarze Aq Mt schwarze@openbsd.org
+.Sh CAVEATS
+This script is not optimized for elegance.
+Regression suites for other software should not copy the design.
+.Pp
+The problem it solves is that the
+.Sy mandoc
+regression suite is tightly integrated into the regression
+testing system of the OpenBSD base system, which requires
+both OpenBSD
+.Xr make 1 ,
+working neither with POSIX make nor with GNU make, and which
+also requires the OpenBSD-specific Makefile fragments in
+.Pa /usr/share/mk .
+The workaround of parsing the Makefiles by hand and constructing
+the required command lines by hand is unavoidably messy; it's
+the classic no-no of parsing a language with an ad-hoc incomplete
+parser.
+But the problem of providing this regression suite for other
+operating systems stood unsolved for many years, and no cleaner
+solution was found that could be implemented with reasonable effort.
+So maybe this is better than nothing.
+.Pp
+The top-level Makefiles for running this regression suite on
+OpenBSD are not included in the portable distribution.
+They are too OpenBSD-specific to be useful elsewhere,
+and on OpenBSD itself, the suite ought be run natively from
+.Pa /usr/src/regress/usr.bin/mandoc
+and not from the portable distribution.
+.Pp
+The
+.Pa db
+subdirectory of the regression suite is not included.
+It uses a Makefile structure that differs vastly from the
+rest of the suite.
--- /dev/null
+# $OpenBSD: Makefile,v 1.20 2015/02/06 16:05:51 schwarze Exp $
+
+SUBDIR = args cond esc scale string
+SUBDIR += br cc de ds ft ig it ll na nr ps rm sp tr
+
+.include "../Makefile.sub"
+.include <bsd.subdir.mk>
--- /dev/null
+# $OpenBSD: Makefile.inc,v 1.3 2015/02/03 19:37:25 schwarze Exp $
+
+SKIP_TMAN ?= ALL
+
+.include "../Makefile.inc"
--- /dev/null
+# $OpenBSD: Makefile,v 1.4 2014/07/06 19:08:57 schwarze Exp $
+
+REGRESS_TARGETS = roff man mdoc
+LINT_TARGETS = roff man mdoc
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH ARGS-MAN 1 "November 19, 2014"
+.SH NAME
+args-man - arguments to man macros
+.SH DESCRIPTION
+standard unquoted:
+.IB one two
+text
+.br
+escaped blanks:
+.IB one\ one two\ two
+text
+.br
+escaped 'e' character:
+.IB one\eone two
+text
+.br
+.\"escaped backslash before blank:
+.\"IB one\\ two
+.\"text
+.\"br
+escaped backslash before 'e' character:
+.IB one\\e two
+text
+.br
+double inter-argument space:
+.IB one two
+text
+.br
+triple inter-argument space:
+.IB one two
+text
+.br
+single eol blank:
+.IB one two
+text
+.br
+double eol blank:
+.IB one two
+text
+.br
+triple eol blank:
+.IB one two
+text
+.br
+standard quoted:
+.IB "one" "two"
+text
+.br
+quoted quotes:
+.IB "one""one" """two"""
+text
+.br
+quoted whitespace:
+.IB "one one" "two two"
+text
+.br
+escaped 'e' characters:
+.IB "one \e one" "\e"
+text
+.br
+escaped backslash before blank:
+.IB "one\\ one" "\\ "
+text
+.br
+escaped backslash before 'e' character:
+.IB "one\\eone" "\\e"
+text
+.br
+double inter-argument space:
+.IB "one one" "two two"
+text
+.br
+triple inter-argument space:
+.IB "one one" "two two"
+text
+.br
+missing inter-argument space:
+.IB "one one"two\ two
+text
+.br
+single eol blank:
+.IB "one one" "two two"
+text
+.br
+double eol blank:
+.IB "one one" "two two"
+text
+.br
+triple eol blank:
+.IB "one one" "two two"
+text
+.br
+.\" Disabled for now because mandoc man(7) seems to
+.\" mishandle trailing blanks in arguments,
+.\" but that really isn't urgent to fix.
+.ig
+trailing blanks in arguments:
+.IB "one " "two "
+text
+.br
+..
+unterminated quotes:
+.IB "one
+text
+.br
+.IB one "two
+text
+.br
+.ig
+single trailing blank in unterminated quotes:
+.IB "one
+text
+.br
+.IB one "two
+text
+.br
+double trailing blank in unterminated quotes:
+.IB "one
+text
+.br
+.IB one "two
+text
+.br
+..
+tab after macro:
+.IB one two
+text
+.br
+escape sequence after macro:
+.IB\(lqone two
+text
+.br
+backslash at eol:
+.IB one two\
--- /dev/null
+ARGS-MAN(1) General Commands Manual ARGS-MAN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ args-man - arguments to man macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ standard unquoted: _\bo_\bn_\bet\btw\bwo\bo text
+ escaped blanks: _\bo_\bn_\be _\bo_\bn_\bet\btw\bwo\bo t\btw\bwo\bo text
+ escaped 'e' character: _\bo_\bn_\be_\b\_\bo_\bn_\bet\btw\bwo\bo text
+ escaped backslash before 'e' character: _\bo_\bn_\be_\b\t\btw\bwo\bo text
+ double inter-argument space: _\bo_\bn_\bet\btw\bwo\bo text
+ triple inter-argument space: _\bo_\bn_\bet\btw\bwo\bo text
+ single eol blank: _\bo_\bn_\bet\btw\bwo\bo text
+ double eol blank: _\bo_\bn_\bet\btw\bwo\bo text
+ triple eol blank: _\bo_\bn_\bet\btw\bwo\bo text
+ standard quoted: _\bo_\bn_\bet\btw\bwo\bo text
+ quoted quotes: _\bo_\bn_\be_\b"_\bo_\bn_\be"\b"t\btw\bwo\bo"\b" text
+ quoted whitespace: _\bo_\bn_\be _\bo_\bn_\bet\btw\bwo\bo t\btw\bwo\bo text
+ escaped 'e' characters: _\bo_\bn_\be _\b\ _\bo_\bn_\be\\b\ text
+ escaped backslash before blank: _\bo_\bn_\be _\bo_\bn_\be text
+ escaped backslash before 'e' character: _\bo_\bn_\be_\b\_\bo_\bn_\be\\b\ text
+ double inter-argument space: _\bo_\bn_\be _\bo_\bn_\bet\btw\bwo\bo t\btw\bwo\bo text
+ triple inter-argument space: _\bo_\bn_\be _\bo_\bn_\bet\btw\bwo\bo t\btw\bwo\bo text
+ missing inter-argument space: _\bo_\bn_\be _\bo_\bn_\bet\btw\bwo\bo t\btw\bwo\bo text
+ single eol blank: _\bo_\bn_\be _\bo_\bn_\bet\btw\bwo\bo t\btw\bwo\bo text
+ double eol blank: _\bo_\bn_\be _\bo_\bn_\bet\btw\bwo\bo t\btw\bwo\bo text
+ triple eol blank: _\bo_\bn_\be _\bo_\bn_\bet\btw\bwo\bo t\btw\bwo\bo text
+ unterminated quotes: _\bo_\bn_\be text
+ _\bo_\bn_\bet\btw\bwo\bo text
+ tab after macro: _\bo_\bn_\bet\btw\bwo\bo text
+ escape sequence after macro: _\bo_\bn_\bet\btw\bwo\bo text
+ backslash at eol: _\bo_\bn_\bet\btw\bwo\bo
+
+
+
+ November 19, 2014 ARGS-MAN(1)
--- /dev/null
+mandoc: man.in:34:13: WARNING: whitespace at end of input line
+mandoc: man.in:38:14: WARNING: whitespace at end of input line
+mandoc: man.in:42:15: WARNING: whitespace at end of input line
+mandoc: man.in:82:25: WARNING: whitespace at end of input line
+mandoc: man.in:86:26: WARNING: whitespace at end of input line
+mandoc: man.in:90:27: WARNING: whitespace at end of input line
+mandoc: man.in:103:5: WARNING: unterminated quoted argument
+mandoc: man.in:106:9: WARNING: unterminated quoted argument
+mandoc: man.in:130:1: ERROR: escaped character not allowed in a name: IB\(
--- /dev/null
+.Dd November 19, 2014
+.Dt ARGS-MDOC 1
+.Os OpenBSD
+.Sh NAME
+.Nm args-mdoc
+.Nd arguments to mdoc macros
+.Sh DESCRIPTION
+standard unquoted:
+.Fl one two
+text
+.br
+escaped blanks:
+.Fl one\ one two\ two
+text
+.br
+escaped 'e' character:
+.Fl one\eone two
+text
+.br
+.\"escaped backslash before blank:
+.\"Fl one\\ two
+.\"text
+.\"br
+escaped backslash before 'e' character:
+.Fl one\\e two
+text
+.br
+double inter-argument space:
+.Fl one two
+text
+.br
+triple inter-argument space:
+.Fl one two
+text
+.br
+single eol blank:
+.Fl one two
+text
+.br
+double eol blank:
+.Fl one two
+text
+.br
+triple eol blank:
+.Fl one two
+text
+.br
+standard quoted:
+.Fl "one" "two"
+text
+.br
+quoted quotes:
+.Fl "one""one" """two"""
+text
+.br
+quoted whitespace:
+.Fl "one one" "two two"
+text
+.br
+escaped 'e' characters:
+.Fl "one \e one" "\e"
+text
+.br
+.\"escaped backslash before blank:
+.\"Fl "one\\ one" "\\ "
+.\"text
+.\"br
+.\"escaped backslash before 'e' character:
+.\"Fl "one\\eone" "\\e"
+.\"text
+.\"br
+double inter-argument space:
+.Fl "one one" "two two"
+text
+.br
+triple inter-argument space:
+.Fl "one one" "two two"
+text
+.br
+missing inter-argument space:
+.Fl "one one"two\ two
+text
+.br
+single eol blank:
+.Fl "one one" "two two"
+text
+.br
+double eol blank:
+.Fl "one one" "two two"
+text
+.br
+triple eol blank:
+.Fl "one one" "two two"
+text
+.br
+trailing blanks in arguments:
+.Fl "one " "two "
+text
+.br
+unterminated quotes:
+.Fl "one
+.Fl one "two
+text
+.br
+single trailing blank in unterminated quotes:
+.Fl "one
+.Fl one "two
+text
+.br
+double trailing blank in unterminated quotes:
+.Fl "one
+.Fl one "two
+text
+.br
+tab after macro:
+.Fl one two
+text
+.br
+escape sequence after macro:
+.Fl\(lqone two
+text
+.br
+backslash at eol:
+.Fl one two\
--- /dev/null
+ARGS-MDOC(1) General Commands Manual ARGS-MDOC(1)
+
+N\bNA\bAM\bME\bE
+ a\bar\brg\bgs\bs-\b-m\bmd\bdo\boc\bc - arguments to mdoc macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ standard unquoted: -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ escaped blanks: -\b-o\bon\bne\be o\bon\bne\be -\b-t\btw\bwo\bo t\btw\bwo\bo text
+ escaped 'e' character: -\b-o\bon\bne\be\\b\o\bon\bne\be -\b-t\btw\bwo\bo text
+ escaped backslash before 'e' character: -\b-o\bon\bne\be\\b\ -\b-t\btw\bwo\bo text
+ double inter-argument space: -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ triple inter-argument space: -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ single eol blank: -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ double eol blank: -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ triple eol blank: -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ standard quoted: -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ quoted quotes: -\b-o\bon\bne\be"\b"o\bon\bne\be -\b-"\b"t\btw\bwo\bo"\b" text
+ quoted whitespace: -\b-o\bon\bne\be o\bon\bne\be -\b-t\btw\bwo\bo t\btw\bwo\bo text
+ escaped 'e' characters: -\b-o\bon\bne\be \\b\ o\bon\bne\be -\b-\\b\ text
+ double inter-argument space: -\b-o\bon\bne\be o\bon\bne\be -\b-t\btw\bwo\bo t\btw\bwo\bo text
+ triple inter-argument space: -\b-o\bon\bne\be o\bon\bne\be -\b-t\btw\bwo\bo t\btw\bwo\bo text
+ missing inter-argument space: -\b-o\bon\bne\be o\bon\bne\be -\b-t\btw\bwo\bo t\btw\bwo\bo text
+ single eol blank: -\b-o\bon\bne\be o\bon\bne\be -\b-t\btw\bwo\bo t\btw\bwo\bo text
+ double eol blank: -\b-o\bon\bne\be o\bon\bne\be -\b-t\btw\bwo\bo t\btw\bwo\bo text
+ triple eol blank: -\b-o\bon\bne\be o\bon\bne\be -\b-t\btw\bwo\bo t\btw\bwo\bo text
+ trailing blanks in arguments: -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ unterminated quotes: -\b-o\bon\bne\be -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ single trailing blank in unterminated quotes: -\b-o\bon\bne\be -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ double trailing blank in unterminated quotes: -\b-o\bon\bne\be -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ tab after macro: -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ escape sequence after macro: -\b-o\bon\bne\be -\b-t\btw\bwo\bo text
+ backslash at eol: -\b-o\bon\bne\be -\b-t\btw\bwo\bo
+
+OpenBSD November 19, 2014 OpenBSD
--- /dev/null
+mandoc: mdoc.in:37:13: WARNING: whitespace at end of input line
+mandoc: mdoc.in:41:14: WARNING: whitespace at end of input line
+mandoc: mdoc.in:45:15: WARNING: whitespace at end of input line
+mandoc: mdoc.in:85:25: WARNING: whitespace at end of input line
+mandoc: mdoc.in:89:26: WARNING: whitespace at end of input line
+mandoc: mdoc.in:93:27: WARNING: whitespace at end of input line
+mandoc: mdoc.in:101:9: WARNING: unterminated quoted argument
+mandoc: mdoc.in:102:13: WARNING: unterminated quoted argument
+mandoc: mdoc.in:106:10: WARNING: unterminated quoted argument
+mandoc: mdoc.in:107:14: WARNING: unterminated quoted argument
+mandoc: mdoc.in:111:11: WARNING: unterminated quoted argument
+mandoc: mdoc.in:112:15: WARNING: unterminated quoted argument
+mandoc: mdoc.in:120:1: ERROR: escaped character not allowed in a name: Fl\(
--- /dev/null
+.TH ARGS-ROFF 1 "February 21, 2015"
+.SH NAME
+args-roff - arguments to roff macros
+.SH DESCRIPTION
+.de test
+.BI (\\$1) "(\\$2)"
+.br
+..
+arguments containing quotes:
+.test a"b a"b
+.de test
+(\\$1) (\\$2)
+.br
+..
+standard unquoted:
+.test one two
+escaped blanks:
+.test one\ one two\ two
+escaped 'e' character:
+.test one\eone two
+escaped backslash before blank:
+.test one\\ two
+escaped backslash before 'e' character:
+.test one\\e two
+double inter-argument space:
+.test one two
+triple inter-argument space:
+.test one two
+single eol blank:
+.test one two
+double eol blank:
+.test one two
+triple eol blank:
+.test one two
+standard quoted:
+.test "one" "two"
+quoted quotes:
+.test "one""one" """two"""
+quoted whitespace:
+.test "one one" "two two"
+escaped 'e' characters:
+.test "one \e one" "\e"
+escaped backslash before blank:
+.test "one\\ one" "\\ "
+escaped backslash before 'e' character:
+.test "one\\eone" "\\e"
+double inter-argument space:
+.test "one one" "two two"
+triple inter-argument space:
+.test "one one" "two two"
+missing inter-argument space:
+.test "one one"two\ two
+single eol blank:
+.test "one one" "two two"
+double eol blank:
+.test "one one" "two two"
+triple eol blank:
+.test "one one" "two two"
+trailing blanks in arguments:
+.test "one " "two "
+unterminated quotes:
+.test "one
+.test one "two
+single trailing blank in unterminated quotes:
+.test "one
+.test one "two
+double trailing blank in unterminated quotes:
+.test "one
+.test one "two
+backslash at eol:
+.test one two\
--- /dev/null
+ARGS-ROFF(1) General Commands Manual ARGS-ROFF(1)
+
+
+
+N\bNA\bAM\bME\bE
+ args-roff - arguments to roff macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ arguments containing quotes: (\b(a\ba"\b"b\bb)\b)_\b(_\ba_\b"_\bb_\b)
+ standard unquoted: (one) (two)
+ escaped blanks: (one one) (two two)
+ escaped 'e' character: (one\one) (two)
+ escaped backslash before blank: (one) (two)
+ escaped backslash before 'e' character: (one\) (two)
+ double inter-argument space: (one) (two)
+ triple inter-argument space: (one) (two)
+ single eol blank: (one) (two)
+ double eol blank: (one) (two)
+ triple eol blank: (one) (two)
+ standard quoted: (one) (two)
+ quoted quotes: (one"one) ("two")
+ quoted whitespace: (one one) (two two)
+ escaped 'e' characters: (one \ one) (\)
+ escaped backslash before blank: (one one) ( )
+ escaped backslash before 'e' character: (one\one) (\)
+ double inter-argument space: (one one) (two two)
+ triple inter-argument space: (one one) (two two)
+ missing inter-argument space: (one one) (two two)
+ single eol blank: (one one) (two two)
+ double eol blank: (one one) (two two)
+ triple eol blank: (one one) (two two)
+ trailing blanks in arguments: (one ) (two )
+ unterminated quotes: (one) ()
+ (one) (two)
+ single trailing blank in unterminated quotes: (one ) ()
+ (one) (two )
+ double trailing blank in unterminated quotes: (one ) ()
+ (one) (two )
+ backslash at eol: (one) (two)
+
+
+
+ February 21, 2015 ARGS-ROFF(1)
--- /dev/null
+mandoc: roff.in:30:15: WARNING: whitespace at end of input line
+mandoc: roff.in:32:16: WARNING: whitespace at end of input line
+mandoc: roff.in:34:17: WARNING: whitespace at end of input line
+mandoc: roff.in:54:27: WARNING: whitespace at end of input line
+mandoc: roff.in:56:28: WARNING: whitespace at end of input line
+mandoc: roff.in:58:29: WARNING: whitespace at end of input line
+mandoc: roff.in:62:7: WARNING: unterminated quoted argument
+mandoc: roff.in:63:11: WARNING: unterminated quoted argument
+mandoc: roff.in:65:7: WARNING: unterminated quoted argument
+mandoc: roff.in:65:12: WARNING: whitespace at end of input line
+mandoc: roff.in:66:11: WARNING: unterminated quoted argument
+mandoc: roff.in:66:16: WARNING: whitespace at end of input line
+mandoc: roff.in:68:7: WARNING: unterminated quoted argument
+mandoc: roff.in:68:13: WARNING: whitespace at end of input line
+mandoc: roff.in:69:11: WARNING: unterminated quoted argument
+mandoc: roff.in:69:17: WARNING: whitespace at end of input line
--- /dev/null
+# $OpenBSD: Makefile,v 1.3 2015/02/06 08:28:04 schwarze Exp $
+
+REGRESS_TARGETS = args
+LINT_TARGETS = args
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH BR-ARGS 1 "January 17, 2011" OpenBSD
+.SH NAME
+br-args \- arguments to .br macros
+.SH DESCRIPTION
+some
+text
+.br arg1 arg2 arg3
+more
+text
--- /dev/null
+BR-ARGS(1) General Commands Manual BR-ARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ br-args - arguments to .br macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text
+ more text
+
+
+
+OpenBSD January 17, 2011 BR-ARGS(1)
--- /dev/null
+mandoc: args.in:7:5: ERROR: skipping all arguments: br arg1 arg2 arg3
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2015/02/06 16:05:51 schwarze Exp $
+
+REGRESS_TARGETS = basic
+LINT_TARGETS = basic
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH CC-BASIC 1 "July 7, 2012" OpenBSD
+.SH NAME
+cc-basic \- basic usage of the cc request
+.SH DESCRIPTION
+first line
+.br
+second
+.cc :
+line
+:br
+third
+:cc ;bogus
+line
+;br
+fourth
+;cc
+line
+.br
+last line
--- /dev/null
+CC-BASIC(1) General Commands Manual CC-BASIC(1)
+
+
+
+N\bNA\bAM\bME\bE
+ cc-basic - basic usage of the cc request
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ first line
+ second line
+ third line
+ fourth line
+ last line
+
+
+
+OpenBSD July 7, 2012 CC-BASIC(1)
--- /dev/null
+mandoc: basic.in:12:6: ERROR: skipping excess arguments: cc ... bogus
--- /dev/null
+# $OpenBSD: Makefile,v 1.8 2015/05/31 23:12:17 schwarze Exp $
+
+REGRESS_TARGETS = if ie close numeric register strcmp before-Dd
+LINT_TARGETS = if close
+
+.include <bsd.regress.mk>
--- /dev/null
+.if n \{.ds mystring mytext
+.\}
+.Dd May 27, 2012
+.Dt IF-BEFORE-DD 1
+.Os OpenBSD
+.Sh NAME
+.Nm if-before-Dd
+.Nd end of if block on its own line before Dd
+.Sh DESCRIPTION
+In an old version of
+.Xr mandoc 1 ,
+.Xr mdoc 7
+file format autodetection failed when the end of an
+.Ic if
+block stood on its own line before the initial
+.Xr mdoc 7
+.Ic Dd
+macro.
+The file was mishandled as
+.Xr man 7
+and parsing failed with unknown macro errors.
+.Pp
+If the present document looks like a proper
+.Xr mdoc 7
+document and the following display reads
+.Dq mytext ,
+then the problem did not come back:
+.Bd -ragged -offset indent
+\*[mystring]
+.Ed
--- /dev/null
+IF-BEFORE-DD(1) General Commands Manual IF-BEFORE-DD(1)
+
+N\bNA\bAM\bME\bE
+ i\bif\bf-\b-b\bbe\bef\bfo\bor\bre\be-\b-D\bDd\bd - end of if block on its own line before Dd
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ In an old version of mandoc(1), mdoc(7) file format autodetection failed
+ when the end of an i\bif\bf block stood on its own line before the initial
+ mdoc(7) D\bDd\bd macro. The file was mishandled as man(7) and parsing failed
+ with unknown macro errors.
+
+ If the present document looks like a proper mdoc(7) document and the
+ following display reads ``mytext'', then the problem did not come back:
+
+ mytext
+
+OpenBSD May 27, 2012 OpenBSD
--- /dev/null
+.TH COND-CLOSE 1 2013-06-27 OpenBSD
+.SH NAME
+cond-close \- closing conditional macros
+.SH DESCRIPTION
+.if t \{.unknown \}
+closing after an unknown macro
+.PP
+.if t \{.ig \}
+closing after an ignored macro
+.PP
+.if t \{text \}
+closing after plain text
+.PP
+.if n \{
+still open at the end of the file
--- /dev/null
+COND-CLOSE(1) General Commands Manual COND-CLOSE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ cond-close - closing conditional macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ closing after an unknown macro
+
+ closing after an ignored macro
+
+ closing after plain text
+
+ still open at the end of the file
+
+
+
+OpenBSD 2013-06-27 COND-CLOSE(1)
--- /dev/null
+mandoc: close.in:14:1: ERROR: appending missing end of block: if
--- /dev/null
+.TH IE 1 "December 16, 2014" OpenBSD
+.SH NAME
+if \- the roff conditional instruction with else-clause
+.SH DESCRIPTION
+.el Initially, else is ignored.
+.ie n One-line true condition.
+.br
+Text following the true condition.
+.el One-line else after true.
+.el Another else after true.
+.br
+.ie t One-line false condition.
+Text following the false condition.
+.br
+.el \{Two-line else
+after false.\}
+.br
+.el Another else after false.
+.br
+.ie
+Text following an empty condition.
+.el Else after empty condition.
+.br
+.ie !
+Text following negated empty condition.
+.el Else after negated empty condition.
+.br
+.ie n If \&.el\e{ works, nothing follows here:
+.el\{dummy
+BOOHOO\}
--- /dev/null
+IE(1) General Commands Manual IE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ if - the roff conditional instruction with else-clause
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ One-line true condition.
+ Text following the true condition.
+ Text following the false condition.
+ Two-line else after false.
+ Else after empty condition.
+ Else after negated empty condition.
+ If .el\{ works, nothing follows here:
+
+
+
+OpenBSD December 16, 2014 IE(1)
--- /dev/null
+.TH IF 1 "June 27, 2015" OpenBSD
+.SH NAME
+if \- the roff conditional instruction
+.SH DESCRIPTION
+.if n One-line true condition.
+.if t One-line false condition.
+.if n
+Next-line empty true condition.
+.if t
+Next-line empty false condition.
+.br
+False condition with whitespace:
+.br
+.if t
+True condition with whitespace:
+.if n
+.if n \{One-line true cond\}ition with block.
+.if t \{One-line false cond\}ition with block.
+.br
+.if n \{ One-line true cond\}ition with block with leading blanks.
+.if t \{ One-line false cond\}ition with block with leading blanks.
+.br
+.if n \{Two-line true condition
+without cont\}inuation and macros.
+.if t \{Two-line false condition
+without cont\}inuation and macros.
+.br
+.if n \{Two-line true condition
+.B without cont\}inuation but with macros.
+.if t \{Two-line false condition
+.B without cont\}inuation but with macros.
+.br
+.if n \{\
+Two-line true condition
+with continuation and macros.
+.\}This will not be printed.
+.if t \{\
+Two-line false condition
+with continuation and macros.
+.\}This will not be printed.
+.br
+.if n \{
+Two-line true condition with blank line.\}
+.if t \{
+Two-line false condition with blank line.\}
+.br
+.if n \{Outer true condition.
+.br
+.if n Inner one-line true condition.
+.if t Inner one-line false condition.
+.br
+.if n \{Inner two-line true condition
+without continuation and macros.\}
+.if t \{Inner two-line false condition
+without continuation and macros.\}
+.br
+Back to the outer true condition.\}
+.br
+.if t \{Outer false condition.
+.br
+.if n Inner one-line true condition.
+.if t Inner one-line false condition.
+.br
+.if n \{Inner two-line true condition
+without continuation and macros.\}
+.if t \{Inner two-line false condition
+without continuation and macros.\}
+.br
+Back to the outer false condition.\}
+.br
+.if n \{Outer true condition.
+.if t \{Inner false condition.
+inner\}middle\}end
+After conditional.
+.br
+.if n \{Outer true condition.
+.if t \{Inner false condition.
+.\}middle\}end
+After conditional.
+.br
+.if n \{Outer true condition.
+.if n \{Inner true condition.
+.\}middle\}end
+After conditional.
+.br
+.if n \{Outer true condition.
+.if t \{Inner false condition.
+.B\}middle\}end
+After conditional.
+.br
+Backslash-backslash-brace in text:
+.if t \{This text is not printed.\\}
+This neither.\}
+On a macro line:
+.if t \{.B This text\\} is not printed.
+.B This\} neither.
+End.
--- /dev/null
+IF(1) General Commands Manual IF(1)
+
+
+
+N\bNA\bAM\bME\bE
+ if - the roff conditional instruction
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ One-line true condition.
+
+ Next-line empty true condition.
+ False condition with whitespace:
+ True condition with whitespace:
+
+ One-line true condition with block.
+ One-line true condition with block with leading blanks.
+ Two-line true condition without continuation and macros.
+ Two-line true condition w\bwi\bit\bth\bho\bou\but\bt c\bco\bon\bnt\bti\bin\bnu\bua\bat\bti\bio\bon\bn b\bbu\but\bt w\bwi\bit\bth\bh m\bma\bac\bcr\bro\bos\bs.\b.
+ Two-line true condition with continuation and macros.
+
+ Two-line true condition with blank line.
+ Outer true condition.
+ Inner one-line true condition.
+ Inner two-line true condition without continuation and macros.
+ Back to the outer true condition.
+ Outer true condition. After conditional.
+ Outer true condition. After conditional.
+ Outer true condition. Inner true condition. After conditional.
+ Outer true condition. After conditional.
+ Backslash-backslash-brace in text: On a macro line: End.
+
+
+
+OpenBSD June 27, 2015 IF(1)
--- /dev/null
+mandoc: if.in:14:1: WARNING: conditional request controls empty scope: if
+mandoc: if.in:16:1: WARNING: conditional request controls empty scope: if
--- /dev/null
+.TH COND-NUMERIC 1 "December 16, 2014" OpenBSD
+.SH NAME
+cond-numeric \- roff conditions involving numbers
+.SH DESCRIPTION
+positive number:
+plain
+.ie 42 (t)
+.el (f)
+negated
+.ie !42 (t)
+.el (f)
+.PP
+negative number:
+plain
+.ie -42 (t)
+.el (f)
+negated
+.ie !-42 (t)
+.el (f)
+.PP
+second number missing:
+.ie 42=bad worse
+.el ok
+.PP
+operator "<":
+smaller
+.ie 1<2 (t)
+.el (f)
+equal
+.ie 1<1 (t)
+.el (f)
+greater
+.ie 2<1 (t)
+.el (f)
+.PP
+operator "<=":
+smaller
+.ie 1<=2 (t)
+.el (f)
+equal
+.ie 1<=1 (t)
+.el (f)
+greater
+.ie 2<=1 (t)
+.el (f)
+.PP
+operator "=":
+smaller
+.ie 1=2 (t)
+.el (f)
+equal
+.ie 1=1 (t)
+.el (f)
+greater
+.ie 2=1 (t)
+.el (f)
+.PP
+operator "==":
+smaller
+.ie 1==2 (t)
+.el (f)
+equal
+.ie 1==1 (t)
+.el (f)
+greater
+.ie 2==1 (t)
+.el (f)
+.PP
+operator ">=":
+smaller
+.ie 1>=2 (t)
+.el (f)
+equal
+.ie 1>=1 (t)
+.el (f)
+greater
+.ie 2>=1 (t)
+.el (f)
+.PP
+operator ">":
+smaller
+.ie 1>2 (t)
+.el (f)
+equal
+.ie 1>1 (t)
+.el (f)
+greater
+.ie 2>1 (t)
+.el (f)
+.PP
+with negative numbers:
+mm
+.ie -2<-1 (t)
+.el (f)
+mp
+.ie -2<1 (t)
+.el (f)
+pm
+.ie 1>-2 (t)
+.el (f)
+.PP
+operator "&":
+00
+.ie 0&0 (t)
+.el (f)
+01
+.ie 0&1 (t)
+.el (f)
+10
+.ie 1&0 (t)
+.el (f)
+11
+.ie 1&1 (t)
+.el (f)
+.PP
+operator ":":
+00
+.ie 0:0 (t)
+.el (f)
+01
+.ie 0:1 (t)
+.el (f)
+10
+.ie 1:0 (t)
+.el (f)
+11
+.ie 1:1 (t)
+.el (f)
+.PP
+with scaling units:
+1i>2c
+.ie 1i>2c (t)
+.el (f)
+1i-6P
+.ie 1i-6P (t)
+.el (f)
+.PP
+unmatched parenthesis:
+.ie (
+(t)
+.el (f)
+one
+.ie (1 (t)
+.el (f)
+.PP
+negated unmatched parenthesis:
+.ie !(
+(t)
+.el (f)
+zero
+.ie !(0 (t)
+.el (f)
--- /dev/null
+COND-NUMERIC(1) General Commands Manual COND-NUMERIC(1)
+
+
+
+N\bNA\bAM\bME\bE
+ cond-numeric - roff conditions involving numbers
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ positive number: plain (t) negated (f)
+
+ negative number: plain (f) negated (t)
+
+ second number missing: ok
+
+ operator "<": smaller (t) equal (f) greater (f)
+
+ operator "<=": smaller (t) equal (t) greater (f)
+
+ operator "=": smaller (f) equal (t) greater (f)
+
+ operator "==": smaller (f) equal (t) greater (f)
+
+ operator ">=": smaller (f) equal (t) greater (t)
+
+ operator ">": smaller (f) equal (f) greater (t)
+
+ with negative numbers: mm (t) mp (t) pm (t)
+
+ operator "&": 00 (f) 01 (f) 10 (f) 11 (t)
+
+ operator ":": 00 (f) 01 (t) 10 (t) 11 (t)
+
+ with scaling units: 1i>2c (t) 1i-6P (f)
+
+ unmatched parenthesis: (f) one (t)
+
+ negated unmatched parenthesis: (f) zero (t)
+
+
+
+OpenBSD December 16, 2014 COND-NUMERIC(1)
--- /dev/null
+.TH REGISTER 1 "May 31, 2015" OpenBSD
+.SH NAME
+register \- conditional testing whether a register is defined
+.SH DESCRIPTION
+.ie rmyreg OOPS
+.el not yet defined
+.br
+.nr myreg 0
+.ie rmyreg now defined
+.el OOPS
+.if !rmyreg OOPS
--- /dev/null
+REGISTER(1) General Commands Manual REGISTER(1)
+
+
+
+N\bNA\bAM\bME\bE
+ register - conditional testing whether a register is defined
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ not yet defined
+ now defined
+
+
+
+OpenBSD May 31, 2015 REGISTER(1)
--- /dev/null
+.TH COND-STRCMP 1 "March 8, 2014" OpenBSD
+.SH NAME
+cond-strcmp \- roff conditions involving string comparison
+.SH DESCRIPTION
+empty:
+.ie """ (t)
+.el (f)
+one char:
+.ie xaxax (t)
+.el (f)
+three chars:
+.ie xabcxabcx (t)
+.el (f)
+.br
+mismatch:
+.ie xabcxabdx (t)
+.el (f)
+longer:
+.ie xabcxabcdx (t)
+.el (f)
+shorter:
+.ie xabcdxabcx (t)
+.el (f)
+.br
+no middle:
+.ie xabc (t)
+.el (f)
+no end:
+.ie xabcxabc
+.el (f)
+.SS Negation
+match:
+.ie !xabcxabcx (t)
+.el (f)
+mismatch:
+.ie !xaxbx (t)
+.el (f)
--- /dev/null
+COND-STRCMP(1) General Commands Manual COND-STRCMP(1)
+
+
+
+N\bNA\bAM\bME\bE
+ cond-strcmp - roff conditions involving string comparison
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ empty: (t) one char: (t) three chars: (t)
+ mismatch: (f) longer: (f) shorter: (f)
+ no middle: (f) no end: (f)
+
+ N\bNe\beg\bga\bat\bti\bio\bon\bn
+ match: (f) mismatch: (t)
+
+
+
+OpenBSD March 8, 2014 COND-STRCMP(1)
--- /dev/null
+.de At
+BSD
+..
+.Dd June 3, 2012
+.Dt DE-DD 1
+.Os OpenBSD
+.Sh NAME
+.Nm de-Dd
+.Nd interaction of the Dd macro with de requests
+.Sh DESCRIPTION
+.At
--- /dev/null
+DE-DD(1) General Commands Manual DE-DD(1)
+
+N\bNA\bAM\bME\bE
+ d\bde\be-\b-D\bDd\bd - interaction of the Dd macro with de requests
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ AT&T UNIX
+
+OpenBSD June 3, 2012 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.9 2015/02/03 19:37:25 schwarze Exp $
+
+REGRESS_TARGETS = append cond escname factorial indir startde TH Dd
+LINT_TARGETS = escname indir
+
+.include <bsd.regress.mk>
+
+
+# OpenBSD only: non-standard targets
+
+# --- additions to public targets ---
+
+all ascii: ascii-diff-opt
+
+ascii-clean: ascii-clean-opt
+
+groff: TH.out_ascii_opt Dd.out_ascii_opt
+
+groff-clean: groff-clean-opt
+
+
+# --- local rules ---
+
+ascii-diff-opt: TH.mandoc_ascii_opt Dd.mandoc_ascii_opt
+ @${DIFF} ${.CURDIR}/TH.out_ascii_opt TH.mandoc_ascii_opt
+ @${DIFF} ${.CURDIR}/Dd.out_ascii_opt Dd.mandoc_ascii_opt
+
+TH.mandoc_ascii_opt: TH.in
+ @${MANDOC} -Tascii -man ${.ALLSRC} > ${.TARGET}
+
+Dd.mandoc_ascii_opt: Dd.in
+ @${MANDOC} -Tascii -mdoc ${.ALLSRC} > ${.TARGET}
+
+ascii-clean-opt:
+ @rm -f TH.mandoc_ascii_opt Dd.mandoc_ascii_opt
+
+TH.out_ascii_opt: TH.in
+ /usr/local/bin/nroff -c -man -Tascii ${.ALLSRC} > ${.TARGET}
+
+Dd.out_ascii_opt: Dd.in
+ /usr/local/bin/nroff -c -mdoc -Tascii ${.ALLSRC} > ${.TARGET}
+
+groff-clean-opt:
+ rm -f TH.out_ascii_opt Dd.out_ascii_opt
--- /dev/null
+.de BI
+.IB \\$1 \\$2 \\$3
+..
+.TH DE-TH 1 "June 3, 2012" OpenBSD
+.SH NAME
+de-TH - interaction of the TH macro with de requests
+.SH DESCRIPTION
+.BI bold italic bold
--- /dev/null
+DE-TH(1) General Commands Manual DE-TH(1)
+
+
+
+N\bNA\bAM\bME\bE
+ de-TH - interaction of the TH macro with de requests
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ b\bbo\bol\bld\bd_\bi_\bt_\ba_\bl_\bi_\bcb\bbo\bol\bld\bd
+
+
+
+OpenBSD June 3, 2012 DE-TH(1)
--- /dev/null
+.Dd July 7, 2014
+.Dt DE-APPEND 1
+.Os OpenBSD
+.Sh NAME
+.Nm de-append
+.Nd append to macro definitions
+.Sh DESCRIPTION
+de:
+.de mym
+.Ox
+..
+.mym
+am:
+.am mym
+.Nx
+..
+.mym
+ami:
+.ds myim mym
+.ds myie mye
+.ami myim myie
+.Fx
+.mye
+.mym
+end
--- /dev/null
+DE-APPEND(1) General Commands Manual DE-APPEND(1)
+
+N\bNA\bAM\bME\bE
+ d\bde\be-\b-a\bap\bpp\bpe\ben\bnd\bd - append to macro definitions
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ de: OpenBSD am: OpenBSD NetBSD ami: OpenBSD NetBSD FreeBSD end
+
+OpenBSD July 7, 2014 OpenBSD
--- /dev/null
+.Dd January 7, 2015
+.Dt DE-COND 1
+.Os OpenBSD
+.Sh NAME
+.Nm de-cond
+.Nd conditional execution of a user-defined macro
+.Sh DESCRIPTION
+.de mym
+This is the text printed by the macro.
+..
+preceding text
+.if n .mym
+following text
--- /dev/null
+DE-COND(1) General Commands Manual DE-COND(1)
+
+N\bNA\bAM\bME\bE
+ d\bde\be-\b-c\bco\bon\bnd\bd - conditional execution of a user-defined macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ preceding text This is the text printed by the macro. following text
+
+OpenBSD January 7, 2015 OpenBSD
--- /dev/null
+.Dd June 29, 2014
+.Dt DE-ESCNAME 1
+.Os OpenBSD
+.Sh NAME
+.Nm de-escname
+.Nd escape sequences in macro names
+.Sh DESCRIPTION
+initial text
+.Pp
+define second = val2
+.de second
+val2
+..
+.Pp
+define first\esecond = val3
+.de first\\second end3
+val3
+.end3
+.Pp
+define first = val1
+.de first\esecond
+val1
+..
+.Pp
+Values (first, second, first\esecond):
+.first
+.second
+.first\\second
+.Pp
+Remove all but second:
+.rm first\\second first\esecond second
+.first
+.second
+.first\\second
+.Pp
+macro seperated from argument by an escape sequence:
+.de witharg end4 excess arguments
+.Dq \\$1
+.end4 tail argument
+.witharg\(enargument
+.Pp
+.de\e
+final text
--- /dev/null
+DE-ESCNAME(1) General Commands Manual DE-ESCNAME(1)
+
+N\bNA\bAM\bME\bE
+ d\bde\be-\b-e\bes\bsc\bcn\bna\bam\bme\be - escape sequences in macro names
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text
+
+ define second = val2
+
+ define first\second = val3
+
+ define first = val1
+
+ Values (first, second, first\second): val1 val2 val3
+
+ Remove all but second: val2
+
+ macro seperated from argument by an escape sequence: ``argument''
+
+ final text
+
+OpenBSD June 29, 2014 OpenBSD
--- /dev/null
+mandoc: escname.in:21:1: ERROR: escaped character not allowed in a name: first\e
+mandoc: escname.in:31:19: ERROR: escaped character not allowed in a name: first\e
+mandoc: escname.in:32:2: ERROR: skipping unknown macro: .first
+mandoc: escname.in:34:2: ERROR: skipping unknown macro: .first\\second
+mandoc: escname.in:37:5: ERROR: skipping excess arguments: .de ... excess arguments
+mandoc: escname.in:40:1: ERROR: escaped character not allowed in a name: witharg\(
+mandoc: escname.in:42:1: ERROR: escaped character not allowed in a name: de\e
+mandoc: escname.in:42:1: WARNING: skipping empty request: de
--- /dev/null
+.Dd December 30, 2014
+.Dt FACTORIAL 1
+.Os OpenBSD
+.Sh NAME
+.Nm factorial
+.Nd factorial sequence
+.Sh DESCRIPTION
+.\" recursively calculate a single factorial
+.de rfac
+. ie \\$1>1 \{\
+. No \\$1 *
+. nr i \\$1-1
+. rfac \\ni
+. nr acc \\n[acc]*\\$1
+. \}
+. el .nr acc 1
+..
+.\" recursively print a sequence of factorials
+.de fac
+. No \\$1! =
+. rfac \\$1
+. if \\$1>1 1 =
+. No \\n[acc]
+. if \\$1 \{\
+. br
+. nr i \\$1-1
+. fac \\ni
+. \}
+..
+.\" main program
+.fac 9
--- /dev/null
+FACTORIAL(1) General Commands Manual FACTORIAL(1)
+
+N\bNA\bAM\bME\bE
+ f\bfa\bac\bct\bto\bor\bri\bia\bal\bl - factorial sequence
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 9! = 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 362880
+ 8! = 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 40320
+ 7! = 7 * 6 * 5 * 4 * 3 * 2 * 1 = 5040
+ 6! = 6 * 5 * 4 * 3 * 2 * 1 = 720
+ 5! = 5 * 4 * 3 * 2 * 1 = 120
+ 4! = 4 * 3 * 2 * 1 = 24
+ 3! = 3 * 2 * 1 = 6
+ 2! = 2 * 1 = 2
+ 1! = 1
+ 0! = 1
+
+OpenBSD December 30, 2014 OpenBSD
--- /dev/null
+.Dd July 7, 2014
+.Dt DE-INDIR 1
+.Os OpenBSD
+.Sh NAME
+.Nm de-indir
+.Nd indirect macro definitions
+.Sh DESCRIPTION
+full dei:
+.ds myim mym
+.ds myie mye
+.dei myim myie
+text1
+.mye
+.mym
+.br
+dei with undefined second argument:
+.rm myie mym
+.dei myim myie
+text2
+..
+.mym
+.br
+dei with undefined first argument:
+.rm myim mym
+.dei myim
+text3
+.br
+dei without arguments:
+.dei
+text4
--- /dev/null
+DE-INDIR(1) General Commands Manual DE-INDIR(1)
+
+N\bNA\bAM\bME\bE
+ d\bde\be-\b-i\bin\bnd\bdi\bir\br - indirect macro definitions
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ full dei: text1
+ dei with undefined second argument: text2
+ dei with undefined first argument: text3
+ dei without arguments: text4
+
+OpenBSD July 7, 2014 OpenBSD
--- /dev/null
+mandoc: indir.in:18:11: WARNING: undefined string, using "": myie
+mandoc: indir.in:25:6: WARNING: undefined string, using "": myim
+mandoc: indir.in:25:1: WARNING: skipping empty request: dei
+mandoc: indir.in:29:1: WARNING: skipping empty request: dei
--- /dev/null
+.Dd December 30, 2014
+.Dt DE-STARTDE 1
+.Os OpenBSD
+.Sh NAME
+.Nm de-startde
+.Nd macro starting a macro definition, but not ending it
+.Sh DESCRIPTION
+define outer macro:
+.de outer
+outer macro called; define inner macro:
+.de inner
+inner macro called; end outer scope.
+..
+outer scope ended; outer macro now defined.
+.Pp
+call outer macro:
+.outer
+returned from call of outer macro; end inner scope.
+..
+inner scope ended; inner macro now defined.
+.Pp
+call inner macro:
+.inner
+returned from call of inner macro.
--- /dev/null
+DE-STARTDE(1) General Commands Manual DE-STARTDE(1)
+
+N\bNA\bAM\bME\bE
+ d\bde\be-\b-s\bst\bta\bar\brt\btd\bde\be - macro starting a macro definition, but not ending it
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ define outer macro: outer scope ended; outer macro now defined.
+
+ call outer macro: outer macro called; define inner macro: inner scope
+ ended; inner macro now defined.
+
+ call inner macro: inner macro called; end outer scope. returned from
+ call of outer macro; end inner scope. returned from call of inner macro.
+
+OpenBSD December 30, 2014 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.5 2014/06/29 22:12:54 schwarze Exp $
+
+REGRESS_TARGETS = append escname nested quoting
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd February 4, 2014
+.Dt DS-APPEND 1
+.Os OpenBSD
+.Sh NAME
+.Nm ds-append
+.Nd appending to user-defined strings
+.Sh DESCRIPTION
+.ds foo first part
+first part: \*[foo]
+.br
+.as foo " second part
+with second part: \*[foo]
+.br
+.as foo " third part
+with third part: \*[foo]
+.br
+end of test document
--- /dev/null
+DS-APPEND(1) General Commands Manual DS-APPEND(1)
+
+N\bNA\bAM\bME\bE
+ d\bds\bs-\b-a\bap\bpp\bpe\ben\bnd\bd - appending to user-defined strings
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ first part: first part
+ with second part: first part second part
+ with third part: first part second part third part
+ end of test document
+
+OpenBSD February 4, 2014 OpenBSD
--- /dev/null
+.Dd June 29, 2014
+.Dt DS-ESCNAME 1
+.Os OpenBSD
+.Sh NAME
+.Nm ds-escname
+.Nd escape sequences in string names
+.Sh DESCRIPTION
+.ds std\\esc stdval
+Now \e*[std\\esc] is
+.Sq \*[std\\esc] .
+.Pp
+.ds esc\eesc escval
+Now \e*[esc] is
+.Sq \*[esc] .
--- /dev/null
+DS-ESCNAME(1) General Commands Manual DS-ESCNAME(1)
+
+N\bNA\bAM\bME\bE
+ d\bds\bs-\b-e\bes\bsc\bcn\bna\bam\bme\be - escape sequences in string names
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Now \*[std\esc] is `stdval'.
+
+ Now \*[esc] is `'.
+
+OpenBSD June 29, 2014 OpenBSD
--- /dev/null
+.Dd April 7, 2010
+.Dt DS-NESTED 1
+.Os OpenBSD
+.Sh NAME
+.Nm ds-nested
+.Nd nested string expansion
+.Sh DESCRIPTION
+.ds foo bar
+.ds bar output
+This is the \*[\*[foo]].
+.Pp
+.ds pi surprising
+This is \*[\*[Pi]].
+This is \*(\*(Pi.
--- /dev/null
+DS-NESTED(1) General Commands Manual DS-NESTED(1)
+
+N\bNA\bAM\bME\bE
+ d\bds\bs-\b-n\bne\bes\bst\bte\bed\bd - nested string expansion
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is the output.
+
+ This is surprising. This is surprising.
+
+OpenBSD April 7, 2010 OpenBSD
--- /dev/null
+.Dd August 3, 2010
+.Dt DS-QUOTING 1
+.Os OpenBSD
+.Sh NAME
+.Nm ds-quoting
+.Nd quote handling by the define string request
+.Sh DESCRIPTION
+.ds foo initial definition
+no quoting: \*[foo]
+.br
+.ds foo redefinition
+still no quoting: \*[foo]
+.br
+.ds foo "string value
+leading quotes: \*[foo]
+.br
+.ds foo "string value"
+leading and trailing quotes: \*[foo]
+.br
+.ds foo "string" value
+leading and middle quotes: \*[foo]
+.br
+.ds foo 'string value"
+leading apostrophe, trailing quotes: \*[foo]
+.br
+.ds foo string value"
+leading blank, trailing quotes: \*[foo]
+.br
+.ds foo
+empty string: x\*[foo]x
+.br
+end of test document
--- /dev/null
+DS-QUOTING(1) General Commands Manual DS-QUOTING(1)
+
+N\bNA\bAM\bME\bE
+ d\bds\bs-\b-q\bqu\buo\bot\bti\bin\bng\bg - quote handling by the define string request
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ no quoting: initial definition
+ still no quoting: redefinition
+ leading quotes: string value
+ leading and trailing quotes: string value"
+ leading and middle quotes: string" value
+ leading apostrophe, trailing quotes: 'string value"
+ leading blank, trailing quotes: string value"
+ empty string: xx
+ end of test document
+
+OpenBSD August 3, 2010 OpenBSD
--- /dev/null
+.Dd July 6, 2014
+.Dt ESC-B 1
+.Os OpenBSD
+.Sh NAME
+.Nm esc-B
+.Nd the roff escape B sequence: validate numerical expression
+.Sh DESCRIPTION
+empty: \B''
+.br
+digit: \B'0'
+.br
+no number: \B'no number'
+.br
+trailing garbage: \B'1X'
+.br
+trailing operator: \B'1+'
+.br
+infix operator: \B'1+1'
+.br
+infix and trailing operator: \B'1+1+'
+.br
+chain of operations: \B'1+2+3+4'
+.br
+trailing para: \B'1+('
+.br
+unclosed para: \B'(1'
+.br
+empty pair of parentheses: \B'()'
+.br
+parentheses containing number: \B'(42)'
+.br
+complex expression: \B'3+(3*(5==5*2)*4)+(3*5)/2'
+.br
+other delimiter: \Bx1+1x
+.br
+no closing delimiter: \B'1+1
--- /dev/null
+ESC-B(1) General Commands Manual ESC-B(1)
+
+N\bNA\bAM\bME\bE
+ e\bes\bsc\bc-\b-B\bB - the roff escape B sequence: validate numerical expression
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ empty: 0
+ digit: 1
+ no number: 0
+ trailing garbage: 0
+ trailing operator: 0
+ infix operator: 1
+ infix and trailing operator: 0
+ chain of operations: 1
+ trailing para: 0
+ unclosed para: 0
+ empty pair of parentheses: 0
+ parentheses containing number: 1
+ complex expression: 1
+ other delimiter: 1
+ no closing delimiter: 0
+
+OpenBSD July 6, 2014 OpenBSD
--- /dev/null
+mandoc: B.in:36:23: WARNING: invalid escape sequence: \B'1+1
--- /dev/null
+# $OpenBSD: Makefile,v 1.11 2015/04/29 18:32:57 schwarze Exp $
+
+REGRESS_TARGETS = one two multi B c c_man e f h o w z ignore
+LINT_TARGETS = B h w ignore
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd December 2, 2014
+.Dt ESC-C 1
+.Os OpenBSD
+.Sh NAME
+.Nm esc-c
+.Nd the roff escape c sequence: remove trailing space
+.Sh DESCRIPTION
+No space between
+.Dq one
+and
+.Dq word :
+one\c
+word
+.Bd -literal
+one\c
+word
+.Ed
--- /dev/null
+ESC-C(1) General Commands Manual ESC-C(1)
+
+N\bNA\bAM\bME\bE
+ e\bes\bsc\bc-\b-c\bc - the roff escape c sequence: remove trailing space
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ No space between ``one'' and ``word'': oneword
+
+ oneword
+
+OpenBSD December 2, 2014 OpenBSD
--- /dev/null
+.TH ESC-C_MAN 1 "December 2, 2014" OpenBSD
+.SH NAME
+esc-c_man \- the roff escape c sequence: remove trailing space
+.SH DESCRIPTION
+No space between "one" and "word":
+one\c
+word
+.nf
+one\c
+word
+.fi
+final text
--- /dev/null
+ESC-C_MAN(1) General Commands Manual ESC-C_MAN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ esc-c_man - the roff escape c sequence: remove trailing space
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ No space between "one" and "word": oneword
+ oneword
+ final text
+
+
+
+OpenBSD December 2, 2014 ESC-C_MAN(1)
--- /dev/null
+.Dd December 3, 2014
+.Dt ESC-E 1
+.Os OpenBSD
+.Sh NAME
+.Nm esc-e
+.Nd escaping backslashes
+.Sh DESCRIPTION
+In plain text: "\e" and "\\"
+.Pp
+On macro lines:
+.Qq \e(at
+and
+.Qq \\(at
+.Pp
+In a macro definition:
+.de mytest
+"\e$1" and "\\$2"
+..
+.mytest one two
--- /dev/null
+ESC-E(1) General Commands Manual ESC-E(1)
+
+N\bNA\bAM\bME\bE
+ e\bes\bsc\bc-\b-e\be - escaping backslashes
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ In plain text: "\" and "\"
+
+ On macro lines: "\(at" and "@"
+
+ In a macro definition: "\$1" and "two"
+
+OpenBSD December 3, 2014 OpenBSD
--- /dev/null
+.Dd August 7, 2013
+.Dt ESC-F 1
+.Os OpenBSD
+.Sh NAME
+.Nm esc-f
+.Nd the roff escape f sequence: font changes
+.Sh DESCRIPTION
+numbers: \f3bold\f2italic\f1roman
+.br
+letters: \fBbold\fIitalic\fPback\f(BIbolditalic\fRroman
+.br
+multiletter: \f[B]bold\f[I]italic\f[P]back\f[BI]bolditalic\f[R]roman
--- /dev/null
+ESC-F(1) General Commands Manual ESC-F(1)
+
+N\bNA\bAM\bME\bE
+ e\bes\bsc\bc-\b-f\bf - the roff escape f sequence: font changes
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ numbers: b\bbo\bol\bld\bd_\bi_\bt_\ba_\bl_\bi_\bcroman
+ letters: b\bbo\bol\bld\bd_\bi_\bt_\ba_\bl_\bi_\bcb\bba\bac\bck\bk_\bb\bb_\bo\bo_\bl\bl_\bd\bd_\bi\bi_\bt\bt_\ba\ba_\bl\bl_\bi\bi_\bc\bcroman
+ multiletter: b\bbo\bol\bld\bd_\bi_\bt_\ba_\bl_\bi_\bcb\bba\bac\bck\bk_\bb\bb_\bo\bo_\bl\bl_\bd\bd_\bi\bi_\bt\bt_\ba\ba_\bl\bl_\bi\bi_\bc\bcroman
+
+OpenBSD August 7, 2013 OpenBSD
--- /dev/null
+.Dd May 28, 2012
+.Dt ESC-H 1
+.Os OpenBSD
+.Sh NAME
+.Nm esc-h
+.Nd the roff escape h sequence: horizontal movement
+.Sh DESCRIPTION
+simple: >\h'0'<
+.br
+escape only: >\h'\w'\&''<
+.br
+escape at the end: >\h'0+\w'\&''<
+.br
+escape at the beginning: >\h'\w'\&'+0'<
+.br
+escape in the middle: >\h'0+\w'\&'+0'<
+.br
+invalid delimiter: >\h-<
--- /dev/null
+ESC-H(1) General Commands Manual ESC-H(1)
+
+N\bNA\bAM\bME\bE
+ e\bes\bsc\bc-\b-h\bh - the roff escape h sequence: horizontal movement
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ simple: ><
+ escape only: ><
+ escape at the end: ><
+ escape at the beginning: ><
+ escape in the middle: ><
+ invalid delimiter: ><
+
+OpenBSD May 28, 2012 OpenBSD
--- /dev/null
+mandoc: h.in:18:21: WARNING: invalid escape sequence: \h-
--- /dev/null
+.Dd January 1, 2015
+.Dt ESC-IGNORE 1
+.Os OpenBSD
+.Sh NAME
+.Nm esc-ignore
+.Nd ignored roff escape sequences
+.Sh DESCRIPTION
+multiform: a\kxb\k(xyc\k[xyz]d
+.br
+quoted: a\R'myreg 0'b\R'myreg \A'y'0'c
+.br
+sizes: a\s0b\s(12c\s[123]d\s'123'e\s'1\w'xy'2'f
+.br
+signed sizes: a\s-0b\s-(12c\s-[123]d\s-'123'e\s-'1\w'xy'2'f\s-
--- /dev/null
+ESC-IGNORE(1) General Commands Manual ESC-IGNORE(1)
+
+N\bNA\bAM\bME\bE
+ e\bes\bsc\bc-\b-i\big\bgn\bno\bor\bre\be - ignored roff escape sequences
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ multiform: abcd
+ quoted: abc
+ sizes: abcdef
+ signed sizes: abcdef
+
+OpenBSD January 1, 2015 OpenBSD
--- /dev/null
+mandoc: ignore.in:14:60: WARNING: invalid escape sequence: \s-
--- /dev/null
+.Dd May 28, 2012
+.Dt ESC-MULTI 1
+.Os OpenBSD
+.Sh NAME
+.Nm esc-multi
+.Nd roff multi-character escape sequences
+.Sh DESCRIPTION
+\[tno] \[t+-] \[tmu] \[tdi] \[12] \[14] \[34]
+.br
+\C'tno' \C't+-' \C'tmu' \C'tdi' \C'12' \C'14' \C'34'
--- /dev/null
+ESC-MULTI(1) General Commands Manual ESC-MULTI(1)
+
+N\bNA\bAM\bME\bE
+ e\bes\bsc\bc-\b-m\bmu\bul\blt\bti\bi - roff multi-character escape sequences
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ ~ +- x -:- 1/2 1/4 3/4
+ ~ +- x -:- 1/2 1/4 3/4
+
+OpenBSD May 28, 2012 OpenBSD
--- /dev/null
+.Dd January 21, 2015
+.Dt ESC-O 1
+.Os OpenBSD
+.Sh NAME
+.Nm esc-o
+.Nd the roff escape o sequence: overstrike
+.Sh DESCRIPTION
+empty: x\o''x
+.br
+one character: x\o'|'x
+.br
+wide/narrow: x\o'O|'x
+.br
+narrow/wide: x\o'|O'x
+.br
+wide/narrow/narrow: x\o'O-|'x
+.br
+narrow/narrow/wide: x\o'|-O'x
--- /dev/null
+ESC-O(1) General Commands Manual ESC-O(1)
+
+N\bNA\bAM\bME\bE
+ e\bes\bsc\bc-\b-o\bo - the roff escape o sequence: overstrike
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ empty: xx
+ one character: x|x
+ wide/narrow: xO\b|x
+ narrow/wide: x|\bOx
+ wide/narrow/narrow: xO\b-\b|x
+ narrow/narrow/wide: x|\b-\bOx
+
+OpenBSD January 21, 2015 OpenBSD
--- /dev/null
+.Dd October 27, 2014
+.Dt ESC-ONE 1
+.Os OpenBSD
+.Sh NAME
+.Nm esc-one
+.Nd roff one-character escape sequences
+.Sh DESCRIPTION
+backslash: >\e<
+.br
+minus: >\-<
+.br
+acute: >\'<
+.br
+grave: >\`<
+.br
+normal character: >\q<
--- /dev/null
+ESC-ONE(1) General Commands Manual ESC-ONE(1)
+
+N\bNA\bAM\bME\bE
+ e\bes\bsc\bc-\b-o\bon\bne\be - roff one-character escape sequences
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ backslash: >\<
+ minus: >-<
+ acute: >'<
+ grave: >`<
+ normal character: >q<
+
+OpenBSD October 27, 2014 OpenBSD
--- /dev/null
+.Dd October 28, 2014
+.Dt ESC-TWO 1
+.Os OpenBSD
+.Sh NAME
+.Nm esc-two
+.Nd roff two-character escape sequences
+.Sh DESCRIPTION
+lines: \(ba \(br \(ul \(bb \(sl \(rs
+.\" groff doesn't know \(rl
+.br
+markers: \(bu \(lz \(sq \(lh \(rh \(at \(sh \(CR
+.\" the circle \(ci differs
+.\" the daggers \(dd and \(dg use backspace
+.\" \(ps and \(sc intentionally differ
+.\" groff doesn't know \(OK
+.br
+legal: \(co \(rg \(tm
+.br
+punctuation: \(em \(en \(hy
+.\" the inverted punctuation is intentionally different
+.br
+quotes: \(Bq \(bq \(oq \(cq \(aq \(dq \(Fo \(Fc \(fo \(fc
+.\" the double quotes \(lq and \(rq differ
+.br
+brackets: \(lB \(rB \(lC \(rC \(la \(ra \(bv \(lt \(lk \(rt \(rk \(rb
+.\" the left bottom \(lb differs
+.br
+arrows: \(<- \(-> \(lA \(rA \(hA
+.\" the left-right arrow \(<> differs
+.\" groff doesn't know \(va and \(vA
+.\" the vertical arrows \(da, \(ua, \(uA, \(dA use backspace
+.br
+logical: \(AN \(OR \(no \(te \(st \(tf \(3d \(or
+.\" the universal quantifier \(fa uses backspace
+.br
+mathematical: \(pl \(mi \(-+ \(+- \(pc \(mu \(di \(f/ \(**
+\(<= \(>= \(<< \(>> \(eq \(!= \(== \(ne \(=~ \(ap \(~~ \(~= \(pt
+\(es \(mo \(sb \(sp \(ca \(cu
+\(sr \(lc \(rc \(lf \(rf \(if \(Ah \(Im \(Re \(pd
+.\" groff doesn't know \(-~, \(nb, \(nc, \(-h
+.\" these differ: \(nm \(ib \(ip \(/_ \(pp \(gr
+.\" these use backspace: \(c* \(c+ \(is
+.br
+ligatures: \(ff \(fi \(fl \(Fi \(Fl \(AE \(ae \(OE \(oe \(IJ \(ij
+.\" the German eszett \(ss differs
+.br
+accents: \(a" \(a^ \(aa \(ga \(ab \(ac \(ad \(ah \(ao \(a~ \(ho \(ha \(ti
+.\" the macron \(a- differs
+.\" groff doesn't know \(a.
+.br
+accented and special letters:
+\('A \('E \('I \('O \('U \('a \('e \('i \('o \('u
+\(`A \(`E \(`I \(`O \(`U \(`a \(`e \(`i \(`o \(`u
+\(~A \(~N \(~O \(~a \(~n \(~o
+\(:A \(:E \(:I \(:O \(:U \(:a \(:e \(:i \(:o \(:u \(:y
+\(^A \(^E \(^I \(^O \(^U \(^a \(^e \(^i \(^o \(^u
+\(,C \(,c \(/L \(/l \(/O \(/o \(oA \(oa \(-D \(.i
+.\" these intentionally differ: \(Sd \(TP \(Tp
+.\" groff doesn't know \(.j
+.br
+currency: \(Do \(ct \(Eu \(eu \(Ye \(Fo
+.\" uses backspace: \(Cs
+.\" the GB pound \(Po is intentionally different
+.br
+units: \(fm \(mc
+.\" groff doesn't know \(%O
+.\" \(sd differs
+.\" \(de is intentionally different
+.br
+greek letters: \(*A \(*B \*D \(*E \(*Z \(*Y \*H \(*I \(*K \(*L
+\(*M \(*N \*C \(*O \(*P \(*R \(*T \(*U \*F \(*X \(*Q \(*W
+\(*a \(*b \(*g \(*d \(*e \(*z \(*y \(*h \(*i \(*k \(*l
+\(*m \(*n \(*c \(*o \(*p \(*r \(*s \(*t \(*u \(*f \(*x \(*q \(*w
+\(+h \(+f \+p \(+e \(ts
+.\" these differ: \(*G \(*S
--- /dev/null
+ESC-TWO(1) General Commands Manual ESC-TWO(1)
+
+N\bNA\bAM\bME\bE
+ e\bes\bsc\bc-\b-t\btw\bwo\bo - roff two-character escape sequences
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ lines: | | _ | / \
+ markers: +\bo <> [] <= => @ # _|
+ legal: (C) (R) tm
+ punctuation: -- - -
+ quotes: ,, , ` ' ' " << >> < >
+ brackets: [ ] { } < > | ,- { -. } -'
+ arrows: <- -> <= => <=>
+ logical: ^ v ~ 3 -) .:. .:. |
+ mathematical: + - -+ +- . x -:- / * <= >= << >> = != == !== =~ ~ ~~ ~= oc
+ {} E (= =) (^) U \/ |~ ~| |_ _| oo N I R a
+ ligatures: ff fi fl ffi ffl AE ae OE oe IJ ij
+ accents: " ^ ' ` '\b` , " v o ~ , ^ ~
+ accented and special letters: '\bA '\bE '\bI '\bO '\bU '\ba '\be '\bi '\bo '\bu `\bA `\bE `\bI `\bO `\bU `\ba `\be `\bi `\bo `\bu ~\bA ~\bN
+ ~\bO ~\ba ~\bn ~\bo "\bA "\bE "\bI "\bO "\bU "\ba "\be "\bi "\bo "\bu "\by ^\bA ^\bE ^\bI ^\bO ^\bU ^\ba ^\be ^\bi ^\bo ^\bu ,\bC ,\bc /\bL /\bl /\bO /\bo o\bA o\ba -\bD i
+ currency: $ /\bc EUR EUR =\bY <<
+ units: ' ,\bu
+ greek letters: A B E Z H I K /\ M N O TT P T Y X I\bY _\bO a B y d e ,\bC n -\b0
+ i k >\b\ ,\bu v ,\bE o -\bn p -\bo ~\bt u |\bo x |\bu w -\b0 |\bo +p e s
+
+OpenBSD October 28, 2014 OpenBSD
--- /dev/null
+.Dd April 8, 2014
+.Dt ESC-W 1
+.Os OpenBSD
+.Sh NAME
+.Nm esc-w
+.Nd the roff escape w sequence: text width
+.Sh DESCRIPTION
+empty: \w''
+.br
+character: \w'n'
+.br
+blank: \w' '
+.br
+text: \w'text'
+.br
+unterminated: \w'foo
--- /dev/null
+ESC-W(1) General Commands Manual ESC-W(1)
+
+N\bNA\bAM\bME\bE
+ e\bes\bsc\bc-\b-w\bw - the roff escape w sequence: text width
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ empty: 0
+ character: 24
+ blank: 24
+ text: 96
+ unterminated: 72
+
+OpenBSD April 8, 2014 OpenBSD
--- /dev/null
+mandoc: w.in:16:15: WARNING: invalid escape sequence: \w'foo
--- /dev/null
+.Dd April 29, 2015
+.Dt ESC-Z 1
+.Os OpenBSD
+.Sh NAME
+.Nm esc-z
+.Nd the roff escape z sequence
+.Sh DESCRIPTION
+single z with ASCII char: >\zx<
+.br
+single z with escape char: >\z\(ci<
+.br
+.ds mystr mytext
+single z with defined string (\*[mystr]): >\z\*[mystr]<
+.br
+single z with font escape: >\z\fBxbold\fP<
+.br
+single z with nospace escape: >\z\c
+new line<
+.br
+single z with overstrike: >\z\o'ab'c<
+.br
+single z near the end of the line: >\z<
+.br
+double z: >\z\zx<
--- /dev/null
+ESC-Z(1) General Commands Manual ESC-Z(1)
+
+N\bNA\bAM\bME\bE
+ e\bes\bsc\bc-\b-z\bz - the roff escape z sequence
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ single z with ASCII char: >x\b<
+ single z with escape char: >O\b<
+ single z with defined string (mytext): >m\bytext<
+ single z with font escape: >x\bx\bb\bbo\bol\bld\bd<
+ single z with nospace escape: > new line<
+ single z with overstrike: >a\bb\bc<
+ single z near the end of the line: ><
+ double z: >x\b<
+
+OpenBSD April 29, 2015 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2014/07/05 12:33:54 schwarze Exp $
+
+REGRESS_TARGETS = badargs
+LINT_TARGETS = badargs
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH "FT-BADARGS" 1 "July 5, 2014" OpenBSD
+.SH NAME
+ft-badargs \(en font request with bad arguments
+.SH DESCRIPTION
+default font
+.ft B
+bold
+.ft foo
+still bold
+.ft I bogus
+italic
+.ft P
+back to bold
+.ft
+back to italic
--- /dev/null
+FT-BADARGS(1) General Commands Manual FT-BADARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ ft-badargs - font request with bad arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ default font b\bbo\bol\bld\bd s\bst\bti\bil\bll\bl b\bbo\bol\bld\bd _\bi_\bt_\ba_\bl_\bi_\bc b\bba\bac\bck\bk t\bto\bo b\bbo\bol\bld\bd _\bb_\ba_\bc_\bk _\bt_\bo _\bi_\bt_\ba_\bl_\bi_\bc
+
+
+
+OpenBSD July 5, 2014 FT-BADARGS(1)
--- /dev/null
+mandoc: badargs.in:10:7: ERROR: skipping excess arguments: ft ... bogus
+mandoc: badargs.in:8:2: WARNING: unknown font, skipping request: ft foo
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2014/07/07 11:34:41 schwarze Exp $
+
+REGRESS_TARGETS = basic
+LINT_TARGETS = basic
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 7, 2014
+.Dt IG-BASIC 1
+.Os OpenBSD
+.Sh NAME
+.Nm ig-basic
+.Nd ignored blocks
+.Sh DESCRIPTION
+no arguments
+.ig
+ignored text
+..
+.br
+with end marker
+.ig end1
+ignored text
+.end1
+.br
+with two arguments
+.ig end2 excess
+ignored text
+.end2
+.br
+Here is a stray .. block ending,
+..
+and then an .ig staying open until the end of the file:
+.ig
+ignored text
--- /dev/null
+IG-BASIC(1) General Commands Manual IG-BASIC(1)
+
+N\bNA\bAM\bME\bE
+ i\big\bg-\b-b\bba\bas\bsi\bic\bc - ignored blocks
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ no arguments
+ with end marker
+ with two arguments
+ Here is a stray .. block ending, and then an .ig staying open until the
+ end of the file:
+
+OpenBSD July 7, 2014 OpenBSD
--- /dev/null
+mandoc: basic.in:19:5: ERROR: skipping excess arguments: .ig ... excess
+mandoc: basic.in:24:1: ERROR: skipping end of block that is not open: ..
+mandoc: basic.in:26:1: ERROR: appending missing end of block: ig
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2014/08/14 02:00:53 schwarze Exp $
+
+REGRESS_TARGETS = badarg double text
+LINT_TARGETS = badarg
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd July 30, 2014
+.Dt IT-BADARG 1
+.Os OpenBSD
+.Sh NAME
+.Nm it-badarg
+.Nd input line traps without numeric arguments
+.Sh DESCRIPTION
+.de mytrap
+traptext
+..
+line 1
+.it mytrap
+line 2
+line 3
+.it
+line 4
+line 5
--- /dev/null
+IT-BADARG(1) General Commands Manual IT-BADARG(1)
+
+N\bNA\bAM\bME\bE
+ i\bit\bt-\b-b\bba\bad\bda\bar\brg\bg - input line traps without numeric arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ line 1 line 2 line 3 line 4 line 5
+
+OpenBSD July 30, 2014 OpenBSD
--- /dev/null
+mandoc: badarg.in:12:1: ERROR: skipping request without numeric argument: it mytrap
+mandoc: badarg.in:15:1: ERROR: skipping request without numeric argument: it
--- /dev/null
+.TH IT-DOUBLE 1 2013-07-13 OpenBSD
+.SH NAME
+it-double \- double input line trap
+.SH DESCRIPTION
+.de firstmacro
+firstmacro
+..
+.de secondmacro
+secondmacro
+..
+initial text
+.it 1 firstmacro
+.it 2 secondmacro
+first line
+second line
+third line
--- /dev/null
+IT-DOUBLE(1) General Commands Manual IT-DOUBLE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ it-double - double input line trap
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text first line second line secondmacro third line
+
+
+
+OpenBSD 2013-07-13 IT-DOUBLE(1)
--- /dev/null
+.Dd February 17, 2015
+.Dt IT-TEXT 1
+.Os OpenBSD
+.Sh NAME
+.Nm it-text
+.Nd what an input line trap counts as text
+.Sh DESCRIPTION
+.de trap
+traptext
+..
+initial text
+.it 1trap
+first line after 1trap
+second line after 1trap
+.Pp
+.it 1vtrap
+first line after 1vtrap
+second line after 1vtrap
+.Pp
+.it ( + 1c + 1i)trap
+first line after ( + 1c + 1i)trap
+second line after ( + 1c + 1i)trap
+third line after ( + 1c + 1i)trap
+.it 1 trap
+.Pp
+first line after .Pp
+second line after .Pp
--- /dev/null
+IT-TEXT(1) General Commands Manual IT-TEXT(1)
+
+N\bNA\bAM\bME\bE
+ i\bit\bt-\b-t\bte\bex\bxt\bt - what an input line trap counts as text
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text first line after 1trap traptext second line after 1trap
+
+ first line after 1vtrap traptext second line after 1vtrap
+
+ first line after ( + 1c + 1i)trap second line after ( + 1c + 1i)trap
+ traptext third line after ( + 1c + 1i)trap
+
+ first line after .Pp traptext second line after .Pp
+
+OpenBSD February 17, 2015 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2014/03/30 19:47:32 schwarze Exp $
+
+REGRESS_TARGETS = basic
+
+SKIP_TMAN =
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd February 5, 2014
+.Dt LL-BASIC 1
+.Os OpenBSD
+.Sh NAME
+.Nm ll-basic
+.Nd changing the line length
+.Sh DESCRIPTION
+This is a longer text to demonstrate the default line length.
+In ASCII mode, it is expected to break at column 78.
+.Pp
+.ll 38n
+This is another long text to demonstrate shorter lines.
+In ASCII mode, it is expected to break at column 38.
+.Pp
+.ll
+This is a longer text after switching back to the default line length.
+In ASCII mode, it is expected to break at column 78.
+.Pp
+.ll +100n
+This is another long text to demonstrate longer lines.
+In ASCII mode, it is not expected to break at all.
+.Pp
+.ll FOO
+This is a longer text after switching to an invalid line length.
+In ASCII mode, it is expected to break at column 78.
--- /dev/null
+LL-BASIC(1) General Commands Manual LL-BASIC(1)
+
+N\bNA\bAM\bME\bE
+ l\bll\bl-\b-b\bba\bas\bsi\bic\bc - changing the line length
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is a longer text to demonstrate the default line length. In ASCII
+ mode, it is expected to break at column 78.
+
+ This is another long text to
+ demonstrate shorter lines. In
+ ASCII mode, it is expected to
+ break at column 38.
+
+ This is a longer text after switching back to the default line length.
+ In ASCII mode, it is expected to break at column 78.
+
+ This is another long text to demonstrate longer lines. In ASCII mode, it is not expected to break at all.
+
+ This is a longer text after switching to an invalid line length. In
+ ASCII mode, it is expected to break at column 78.
+
+OpenBSD February 5, 2014 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2011/11/17 16:28:46 schwarze Exp $
+
+REGRESS_TARGETS=args
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH NA-ARGS 1 "January 17, 2011" OpenBSD
+.SH NAME
+na-args \- arguments to .na macros
+.SH DESCRIPTION
+some
+text
+.na arg1 arg2 arg3
+more
+text
--- /dev/null
+NA-ARGS(1) General Commands Manual NA-ARGS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ na-args - arguments to .na macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ some text more text
+
+
+
+OpenBSD January 17, 2011 NA-ARGS(1)
--- /dev/null
+# $OpenBSD: Makefile,v 1.9 2015/01/23 00:38:43 schwarze Exp $
+
+REGRESS_TARGETS = argc divzero eval escname int predef rr scale
+LINT_TARGETS = divzero escname
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd December 15, 2013
+.Dt NR-ARGC 1
+.Os OpenBSD
+.Sh NAME
+.Nm nr-argc
+.Nd varying number of arguments to the .nr macro
+.Sh DESCRIPTION
+.nr onearg
+one argument: \n[onearg]
+.Pp
+.nr twoargs 2
+two arguments: \n[twoargs]
+.Pp
+.nr withsuffix 2x
+with suffix: \n[withsuffix]
+.Pp
+.nr threeargs 2 3
+three arguments: \n[threeargs]
+.Pp
+.nr fourargs 2 3 4
+four arguments: \n[fourargs]
--- /dev/null
+NR-ARGC(1) General Commands Manual NR-ARGC(1)
+
+N\bNA\bAM\bME\bE
+ n\bnr\br-\b-a\bar\brg\bgc\bc - varying number of arguments to the .nr macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ one argument: 0
+
+ two arguments: 2
+
+ with suffix: 2
+
+ three arguments: 2
+
+ four arguments: 2
+
+OpenBSD December 15, 2013 OpenBSD
--- /dev/null
+.TH NR-DIVZERO 1 "December 18, 2014" OpenBSD
+.SH NAME
+nr-divzero \- division by zero in numerical expression
+.SH DESCRIPTION
+initial text
+.nr divresult 1/0
+.nr modresult 1%0
+final \n[divresult] \n[modresult] text
--- /dev/null
+NR-DIVZERO(1) General Commands Manual NR-DIVZERO(1)
+
+
+
+N\bNA\bAM\bME\bE
+ nr-divzero - division by zero in numerical expression
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text final 0 0 text
+
+
+
+OpenBSD December 18, 2014 NR-DIVZERO(1)
--- /dev/null
+mandoc: divzero.in:6:4: ERROR: divide by zero: 1/0
+mandoc: divzero.in:7:4: ERROR: divide by zero: 1%0
--- /dev/null
+.TH NR-ESCNAME 1 "June 29, 2014" OpenBSD
+.SH NAME
+nr-escname \- escape sequences in register names
+.SH DESCRIPTION
+.nr first 1
+.nr second 2
+.nr first\\second 3
+.nr first\esecond 4
+\n[first] \n[second] \n[first\\second]
+.PP
+.rr first\esecond
+\n[first] \n[second] \n[first\\second]
+.PP
+.rr first\\second
+\n[first] \n[second] \n[first\\second]
+.PP
+incomplete: \n[second
--- /dev/null
+NR-ESCNAME(1) General Commands Manual NR-ESCNAME(1)
+
+
+
+N\bNA\bAM\bME\bE
+ nr-escname - escape sequences in register names
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 1 2 3
+
+ 0 2 3
+
+ 0 2 0
+
+ incomplete:
+
+
+
+OpenBSD June 29, 2014 NR-ESCNAME(1)
--- /dev/null
+mandoc: escname.in:8:5: ERROR: escaped character not allowed in a name: first\e
+mandoc: escname.in:11:5: ERROR: escaped character not allowed in a name: first\e
+mandoc: escname.in:17:13: WARNING: invalid escape sequence: \n[second
+mandoc: escname.in:17:12: WARNING: whitespace at end of input line
--- /dev/null
+.TH NR-EVAL 1 "April 7, 2014" OpenBSD
+.SH NAME
+nr-eval \- numeric expressions in assignments to number registers
+.SH DESCRIPTION
+.nr mr 1
+1: \n(mr
+.br
+.nr mr nonumber
+nonumber: \n(mr
+.br
+.nr mr 3X
+3X: \n(mr
+.br
+.nr mr 4+
+4+: \n(mr
+.br
+.nr mr 2+3
+2+3: \n(mr
+.br
+.nr mr 1+1:
+1+1:: \n(mr
+.br
+.nr mr 10-3
+10-3: \n(mr
+.br
+.nr mr 4*2
+4*2: \n(mr
+.br
+.nr mr 27/3
+27/3: \n(mr
+.br
+.nr mr 58%16
+58%16: \n(mr
+.br
+.nr mr 11<?20
+11<?20: \n(mr
+.br
+.nr mr 30<?12
+30<?12: \n(mr
+.br
+.nr mr 7>?13
+7>?13: \n(mr
+.br
+.nr mr 14>?6
+14>?6: \n(mr
+.br
+.nr mr 2+3*3
+2+3*3: \n(mr
+.br
+.nr mr 16+(
+para at eol: \n(mr
+.br
+.nr mr (17
+unclosed para: \n(mr
+.br
+.nr mr (18)
+(18): \n(mr
+.br
+.nr mr ( 25 - 6 )
+( 25 - 6 ): \n(mr
+.br
+.nr mr 11+( 3*3 )
+11+( 3*3 ): \n(mr
+.br
+.nr mr 3+(3*(5==5*2)*4)+(3*5)/2
+3+(3*(5==5*2)*4)+(3*5)/2: \n(mr
+.br
--- /dev/null
+NR-EVAL(1) General Commands Manual NR-EVAL(1)
+
+
+
+N\bNA\bAM\bME\bE
+ nr-eval - numeric expressions in assignments to number registers
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 1: 1
+ nonumber: 1
+ 3X: 3
+ 4+: 3
+ 2+3: 5
+ 1+1:: 5
+ 10-3: 7
+ 4*2: 8
+ 27/3: 9
+ 58%16: 10
+ 11<?20: 11
+ 30<?12: 12
+ 7>?13: 13
+ 14>?6: 14
+ 2+3*3: 15
+ para at eol: 15
+ unclosed para: 17
+ (18): 18
+ ( 25 - 6 ): 19
+ 11+( 3*3 ): 20
+ 3+(3*(5==5*2)*4)+(3*5)/2: 21
+
+
+
+OpenBSD April 7, 2014 NR-EVAL(1)
--- /dev/null
+.TH NR-INT 1 "October 3, 2013" OpenBSD
+.SH NAME
+nr-int \- integer number registers
+.SH DESCRIPTION
+initial contents: \nY \n(YY \n[YYY]
+.br
+.nr Y 42
+.nr YY -1
+.nr YYY 2147483647
+intermediate contents: \nY \n(YY \n[YYY]
+.br
+.nr Y -19
+.nr YY +2
+.nr YYY +1
+final contents: \nY \n(YY \n[YYY]
--- /dev/null
+NR-INT(1) General Commands Manual NR-INT(1)
+
+
+
+N\bNA\bAM\bME\bE
+ nr-int - integer number registers
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial contents: 0 0 0
+ intermediate contents: 42 -1 2147483647
+ final contents: 23 1 -2147483648
+
+
+
+OpenBSD October 3, 2013 NR-INT(1)
--- /dev/null
+.TH NR-PREDEF 1 "August 29, 2015" OpenBSD
+.SH NAME
+nr-predef \- pre-defined read-only integer number registers
+.SH DESCRIPTION
+.de mym
+user defined macro with \\n(.$ arguments: \\$*
+..
+.nf
+.nr .A 111
+.nr .g 111
+.nr .H 111
+.nr .j 111
+.nr .T 111
+.nr .V 111
+.nr .$ 111
+ascii mode: \n(.A
+groff mode: \n(.g
+horizontal resolution: \n(.H
+adjustment mode: \n(.j
+output device defined: \n(.T
+vertical resolution: \n(.V
+.mym
+.mym one
+.mym one two
--- /dev/null
+NR-PREDEF(1) General Commands Manual NR-PREDEF(1)
+
+
+
+N\bNA\bAM\bME\bE
+ nr-predef - pre-defined read-only integer number registers
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ ascii mode: 0
+ groff mode: 1
+ horizontal resolution: 24
+ adjustment mode: 0
+ output device defined: 1
+ vertical resolution: 40
+ user defined macro with 0 arguments:
+ user defined macro with 1 arguments: one
+ user defined macro with 2 arguments: one two
+
+
+
+OpenBSD August 29, 2015 NR-PREDEF(1)
--- /dev/null
+.TH NR-RR 1 "April 5, 2014" OpenBSD
+.SH NAME
+nr-rr \- defining and undefining number registers
+.SH DESCRIPTION
+.nr key1 1
+.nr key2 2
+.nr key3 3
+.nr key4 4
+.nr key5 5
+.rr key1
+.rr key3
+.rr key5
+non-null values: \n[key2] \n[key4]
+.br
+unset values: \n[key1] \n[key3] \n[key5]
--- /dev/null
+NR-RR(1) General Commands Manual NR-RR(1)
+
+
+
+N\bNA\bAM\bME\bE
+ nr-rr - defining and undefining number registers
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ non-null values: 2 4
+ unset values: 0 0 0
+
+
+
+OpenBSD April 5, 2014 NR-RR(1)
--- /dev/null
+.TH NR-INT 1 "January 23, 2015" OpenBSD
+.SH NAME
+nr-scale \- scaling units in numeric expressions
+.SH DESCRIPTION
+.nr Y 1f+1
+\nY
+.nr Y 1i+1
+\nY
+.nr Y 10c+1
+\nY
+.nr Y 1v+1
+\nY
+.nr Y 1P+1
+\nY
+.nr Y 1m+1
+\nY
+.nr Y 1n+1
+\nY
+.nr Y 10p+1
+\nY
+.nr Y 1u+1
+\nY
+.nr Y 100M+1
+\nY
+.nr Y 1X+2
+\nY
--- /dev/null
+NR-INT(1) General Commands Manual NR-INT(1)
+
+
+
+N\bNA\bAM\bME\bE
+ nr-scale - scaling units in numeric expressions
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 65537 241 945 41 41 25 25 34 2 25 1
+
+
+
+OpenBSD January 23, 2015 NR-INT(1)
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2011/11/17 16:28:46 schwarze Exp $
+
+REGRESS_TARGETS=ignore
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH PS-IGNORE 1 "Febuary 5, 2011" OpenBSD
+.SH NAME
+ps-ignore \- ignoreing point size macros
+.SH DESCRIPTION
+normal text
+.ps -1
+small text
+.ps +1
+big text
--- /dev/null
+PS-IGNORE(1) General Commands Manual PS-IGNORE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ ps-ignore - ignoreing point size macros
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text small text big text
+
+
+
+OpenBSD Febuary 5, 2011 PS-IGNORE(1)
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2011/11/17 16:28:46 schwarze Exp $
+
+REGRESS_TARGETS=basic
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd January 11, 2011
+.Dt RM-BASIC 1
+.Os OpenBSD
+.Sh NAME
+.Nm rm-basic
+.Nd the remove macro request
+.Sh DESCRIPTION
+.de mymacro
+Hello
+..
+.ds mystring world
+before rm:
+.mymacro
+\*[mystring]!
+.br
+.rm mymacro mystring
+after rm:
+.mymacro
+\*[mystring]!
--- /dev/null
+RM-BASIC(1) General Commands Manual RM-BASIC(1)
+
+N\bNA\bAM\bME\bE
+ r\brm\bm-\b-b\bba\bas\bsi\bic\bc - the remove macro request
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ before rm: Hello world!
+ after rm: !
+
+OpenBSD January 11, 2011 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2014/08/14 02:00:53 schwarze Exp $
+
+REGRESS_TARGETS = horiz
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH HORIZ 1 "December 23, 2014" OpenBSD
+.SH NAME
+horiz \- horizontal distances
+.SH DESCRIPTION
+initial text
+.in 240u
+240u
+.in 3.6c
+3.6c
+.in 0.003f
+0.003f
+.in 2i
+2i
+.in 500M
+500M
+.in 6P
+6P
+.in 36p
+36p
+.in 10n
+10n
+.in 5m
+5m
+.in 79n
+79n
+.in 1.5ix
+1.5ix
+.in -6n
+-6n
+.PP
+final text
--- /dev/null
+HORIZ(1) General Commands Manual HORIZ(1)
+
+
+
+N\bNA\bAM\bME\bE
+ horiz - horizontal distances
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ initial text
+ 240u
+ 3.6c
+ 0.003f
+ 2i
+ 500M
+ 6P
+ 36p
+ 10n
+ 5m
+ 79n
+ 1.5ix
+ -6n
+
+ final text
+
+
+
+OpenBSD December 23, 2014 HORIZ(1)
--- /dev/null
+# $OpenBSD: Makefile,v 1.5 2015/02/06 09:38:22 schwarze Exp $
+
+REGRESS_TARGETS = badargs-man badargs-mdoc negative scaling-man scaling-mdoc
+LINT_TARGETS = badargs-man
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH SP-BADARGS-MAN 1 "December 23, 2014" OpenBSD
+.SH NAME
+sp-badargs-man \- bad arguments to .sp macros in man(7)
+.SH DESCRIPTION
+no arguments:
+.sp
+one argument:
+.sp 2v
+two arguments:
+.sp 3v 2i
+no scaling unit specified:
+.sp 1
+trailing garbage:
+.sp 2vx
+garbage only:
+.sp xxx
+end of test document
--- /dev/null
+SP-BADARGS-MAN(1) General Commands Manual SP-BADARGS-MAN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ sp-badargs-man - bad arguments to .sp macros in man(7)
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ no arguments:
+
+ one argument:
+
+
+ two arguments:
+
+
+
+ no scaling unit specified:
+
+ trailing garbage:
+
+
+ garbage only:
+
+ end of test document
+
+
+
+OpenBSD December 23, 2014 SP-BADARGS-MAN(1)
--- /dev/null
+mandoc: badargs-man.in:10:8: ERROR: skipping excess arguments: sp ... 2i
--- /dev/null
+.Dd December 23, 2014
+.Dt SP-BADARGS-MDOC 1
+.Os OpenBSD
+.Sh NAME
+.Nm sp-badargs-mdoc
+.Nd bad arguments to .sp macros in mdoc(7)
+.Sh DESCRIPTION
+no arguments:
+.sp
+one argument:
+.sp 2v
+two arguments:
+.sp 3v 2i
+no scaling unit specified:
+.sp 1
+trailing garbage:
+.sp 2vx
+garbage only:
+.sp xxx
+end of test document
--- /dev/null
+SP-BADARGS-MDOC(1) General Commands Manual SP-BADARGS-MDOC(1)
+
+N\bNA\bAM\bME\bE
+ s\bsp\bp-\b-b\bba\bad\bda\bar\brg\bgs\bs-\b-m\bmd\bdo\boc\bc - bad arguments to .sp macros in mdoc(7)
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ no arguments:
+
+ one argument:
+
+
+ two arguments:
+
+
+
+ no scaling unit specified:
+
+ trailing garbage:
+
+
+ garbage only:
+
+ end of test document
+
+OpenBSD December 23, 2014 OpenBSD
--- /dev/null
+.TH SP-NEGATIVE 1 "July 12, 2012" OpenBSD
+.SH NAME
+sp-negative \- negative vertical spacing
+.SH DESCRIPTION
+first line
+.sp -1v
+.PP
+second line
--- /dev/null
+SP-NEGATIVE(1) General Commands Manual SP-NEGATIVE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ sp-negative - negative vertical spacing
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ first line
+ second line
+
+
+
+OpenBSD July 12, 2012 SP-NEGATIVE(1)
--- /dev/null
+.TH SP-SCALING-MAN 1 "December 23, 2014" OpenBSD
+.SH NAME
+sp-scaling-man \- scaled arguments to .sp requests in man(7)
+.SH DESCRIPTION
+20 basic units:
+.sp 20u
+21 basic units:
+.sp 21u
+one centimeter:
+.sp 1c
+quarter of an inch:
+.sp 0.25i
+half a pica:
+.sp 0.5P
+one pica:
+.sp 1P
+6 points:
+.sp 6p
+7 points:
+.sp 7p
+one en:
+.sp 1n
+three en:
+.sp 3n
+two em:
+.sp 2m
+end of test document
--- /dev/null
+SP-SCALING-MAN(1) General Commands Manual SP-SCALING-MAN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ sp-scaling-man - scaled arguments to .sp requests in man(7)
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 20 basic units:
+ 21 basic units:
+
+ one centimeter:
+
+
+ quarter of an inch:
+
+ half a pica:
+ one pica:
+
+ 6 points:
+ 7 points:
+
+ one en:
+
+ three en:
+
+
+ two em:
+
+ end of test document
+
+
+
+OpenBSD December 23, 2014 SP-SCALING-MAN(1)
--- /dev/null
+.Dd December 23, 2014
+.Dt SP-SCALING-MDOC 1
+.Os OpenBSD
+.Sh NAME
+.Nm sp-scaling-mdoc
+.Nd scaled arguments to .sp requests in mdoc(7)
+.Sh DESCRIPTION
+20 basic units:
+.sp 20u
+21 basic units:
+.sp 21u
+one centimeter:
+.sp 1c
+quarter of an inch:
+.sp 0.25i
+half a pica:
+.sp 0.5P
+one pica:
+.sp 1P
+6 points:
+.sp 6p
+7 points:
+.sp 7p
+one en:
+.sp 1n
+three en:
+.sp 3n
+two em:
+.sp 2m
+end of test document
--- /dev/null
+SP-SCALING-MDOC(1) General Commands Manual SP-SCALING-MDOC(1)
+
+N\bNA\bAM\bME\bE
+ s\bsp\bp-\b-s\bsc\bca\bal\bli\bin\bng\bg-\b-m\bmd\bdo\boc\bc - scaled arguments to .sp requests in mdoc(7)
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ 20 basic units:
+ 21 basic units:
+
+ one centimeter:
+
+
+ quarter of an inch:
+
+ half a pica:
+ one pica:
+
+ 6 points:
+ 7 points:
+
+ one en:
+
+ three en:
+
+
+ two em:
+
+ end of test document
+
+OpenBSD December 23, 2014 OpenBSD
--- /dev/null
+# $OpenBSD: Makefile,v 1.6 2014/07/06 19:08:57 schwarze Exp $
+
+REGRESS_TARGETS=escape infinite zerolength name
+LINT_TARGETS = name
+
+# The infinite test fails badly with groff-1.20.1:
+# It fails to print the following text.
+
+SKIP_GROFF ?= infinite
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH STRING-ESCAPE 1 "December 3, 2010"
+.SH NAME
+string-escape - preventing string interpolation
+.SH DESCRIPTION
+.ds right wrong
+.ds inner *[right]
+.ds outer \\*[inner]
+.SS Normal interpolation
+result: \*[inner]
+.PP
+The above line must be "result: *[right]".
+.SS Intervening character
+result: \e*[right]
+.PP
+The above line must be "result: backslash*[right]",
+not "result: rong".
+.SS Escaped backslash
+result: \\*[right]
+.PP
+The above line must be "result: backslash*[right]",
+not "result: rong".
+.SS Delayed interpolation
+result: \*[outer]
+.PP
+The above line must be "result: *[right]",
+not "result: wrong".
--- /dev/null
+STRING-ESCAPE(1) General Commands Manual STRING-ESCAPE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ string-escape - preventing string interpolation
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ N\bNo\bor\brm\bma\bal\bl i\bin\bnt\bte\ber\brp\bpo\bol\bla\bat\bti\bio\bon\bn
+ result: *[right]
+
+ The above line must be "result: *[right]".
+
+ I\bIn\bnt\bte\ber\brv\bve\ben\bni\bin\bng\bg c\bch\bha\bar\bra\bac\bct\bte\ber\br
+ result: \*[right]
+
+ The above line must be "result: backslash*[right]", not "result: rong".
+
+ E\bEs\bsc\bca\bap\bpe\bed\bd b\bba\bac\bck\bks\bsl\bla\bas\bsh\bh
+ result: \*[right]
+
+ The above line must be "result: backslash*[right]", not "result: rong".
+
+ D\bDe\bel\bla\bay\bye\bed\bd i\bin\bnt\bte\ber\brp\bpo\bol\bla\bat\bti\bio\bon\bn
+ result: *[right]
+
+ The above line must be "result: *[right]", not "result: wrong".
+
+
+
+ December 3, 2010 STRING-ESCAPE(1)
--- /dev/null
+.TH STRING-INFINITE 1 "December 3, 2010" OpenBSD
+.SH NAME
+string-infinite - endless recursion in string expansion
+.SH DESCRIPTION
+.ds recur \\*[recur]
+Blow up,
+(and do not \*[recur] print this)
+but still render following text correctly.
--- /dev/null
+STRING-INFINITE(1) General Commands Manual STRING-INFINITE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ string-infinite - endless recursion in string expansion
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Blow up, but still render following text correctly.
+
+
+
+OpenBSD December 3, 2010 STRING-INFINITE(1)
--- /dev/null
+.Dd January 10, 2011
+.Dt STRING-NAME 1
+.Os OpenBSD
+.Sh NAME
+.Nm string-name
+.Nd torturing .ds with weird string names
+.Sh DESCRIPTION
+.ds norm value of norm
+.ds "quot" value of "quot"
+.ds bs\e value of bs\ee
+.ds bs\\e value of bs\e\ee
+.ds bl\ e value of bl\e e
+norm: \*[norm]
+.br
+norm without closing brace: \*[norm
+.br
+quot: \*[quot]
+.br
+"quot": \*["quot"]
+.br
+bs\e\ee: \*[bs\\e]
+.\".br
+.\"bs\ee: \*[bs\e]
+.br
+bse: \*[bse]
+.br
+bs: \*[bs]
+.\".br
+.\"bl\e e: \*[bl\ e]
+.br
+bl e: \*[bl e]
+.br
+ble: \*[ble]
+.br
+bl: \*[bl]
--- /dev/null
+STRING-NAME(1) General Commands Manual STRING-NAME(1)
+
+N\bNA\bAM\bME\bE
+ s\bst\btr\bri\bin\bng\bg-\b-n\bna\bam\bme\be - torturing .ds with weird string names
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ norm: value of norm
+ norm without closing brace:
+ quot:
+ "quot": value of "quot"
+ bs\\e: value of bs\\e
+ bse:
+ bs:
+ bl e:
+ ble:
+ bl:
+
+OpenBSD January 10, 2011 OpenBSD
--- /dev/null
+mandoc: name.in:10:5: ERROR: escaped character not allowed in a name: bs\e
+mandoc: name.in:12:5: ERROR: escaped character not allowed in a name: bl\
+mandoc: name.in:15:29: WARNING: invalid escape sequence: \*[norm
+mandoc: name.in:15:29: WARNING: undefined string, using "": norm
+mandoc: name.in:15:28: WARNING: whitespace at end of input line
+mandoc: name.in:17:7: WARNING: undefined string, using "": quot
+mandoc: name.in:17:6: WARNING: whitespace at end of input line
+mandoc: name.in:25:6: WARNING: undefined string, using "": bse
+mandoc: name.in:25:5: WARNING: whitespace at end of input line
+mandoc: name.in:27:5: WARNING: undefined string, using "": bs
+mandoc: name.in:27:4: WARNING: whitespace at end of input line
+mandoc: name.in:31:7: WARNING: undefined string, using "": bl e
+mandoc: name.in:31:6: WARNING: whitespace at end of input line
+mandoc: name.in:33:6: WARNING: undefined string, using "": ble
+mandoc: name.in:33:5: WARNING: whitespace at end of input line
+mandoc: name.in:35:5: WARNING: undefined string, using "": bl
+mandoc: name.in:35:4: WARNING: whitespace at end of input line
--- /dev/null
+.TH STRING-ZEROLENGTH 1 "December 19, 2010"
+.SH NAME
+string-zerolength - handling of zero-length user-defined strings
+.SH DESCRIPTION
+.ds dszero "
+.de dezero
+..
+use zero-length string:
+x\*[dszero]x
+.dszero
+x
+.PP
+use zero-length macro:
+x\*[dezero]x
+.dezero
+x
--- /dev/null
+STRING-ZEROLENGTH(1) General Commands Manual STRING-ZEROLENGTH(1)
+
+
+
+N\bNA\bAM\bME\bE
+ string-zerolength - handling of zero-length user-defined strings
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ use zero-length string: xx x
+
+ use zero-length macro: xx x
+
+
+
+ December 19, 2010 STRING-ZEROLENGTH(1)
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2015/02/06 16:05:51 schwarze Exp $
+
+REGRESS_TARGETS = args
+LINT_TARGETS = args
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH TR-BASIC 1 "February 6, 2015" OpenBSD
+.SH NAME
+tr-args \- arguments of the tr request
+.SH DESCRIPTION
+no argument:
+.tr
+one character:
+.tr x
+>>x<<
+two characters:
+.tr xy
+>>x<<
+three characters:
+.tr xyz
+>>xz<<
+last line
--- /dev/null
+TR-BASIC(1) General Commands Manual TR-BASIC(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tr-args - arguments of the tr request
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ no argument: one character: >> << two characters: >>y<< three
+ characters: >>y << last line
+
+
+
+OpenBSD February 6, 2015 TR-BASIC(1)
--- /dev/null
+mandoc: args.in:6:1: WARNING: skipping empty request: tr
+mandoc: args.in:8:5: WARNING: odd number of characters in request: tr x
+mandoc: args.in:14:7: WARNING: odd number of characters in request: tr z
--- /dev/null
+# $OpenBSD: Makefile,v 1.13 2015/01/29 23:34:45 schwarze Exp $
+
+SUBDIR = opt layout mod data macro
+
+.include "../Makefile.sub"
+.include <bsd.subdir.mk>
--- /dev/null
+# $OpenBSD: Makefile.inc,v 1.2 2015/02/03 19:37:25 schwarze Exp $
+
+TBL = /usr/local/bin/tbl
+
+SKIP_TMAN ?= ALL
+
+
+# OpenBSD only: maintainer targets
+
+.for t in ${REGRESS_TARGETS}
+${t}.out_ascii: ${t}.in
+ ${TBL} ${.ALLSRC} | ${NROFF} ${NOPTS} -Tascii > ${.TARGET}
+.endfor
+
+.include "../Makefile.inc"
--- /dev/null
+# $OpenBSD: Makefile,v 1.1.1.1 2015/01/29 23:24:24 schwarze Exp $
+
+REGRESS_TARGETS = blankline block_unclosed empty
+LINT_TARGETS = block_unclosed empty
+
+# groff-1.22.3 defect:
+# - When a table ends in the middle of a block,
+# GNU eqn produces no output whatsoever for the whole table.
+
+SKIP_GROFF = block_unclosed
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH TBL-DATA-BLANKLINE 1 "January 21, 2015" OpenBSD
+.SH NAME
+tbl-data-blankline \- blank line in a table
+.SH DESCRIPTION
+normal text
+.TS
+lb
+li
+lb.
+first
+
+last
+.TE
+normal text
--- /dev/null
+TBL-DATA-BLANKLINE(1) General Commands Manual TBL-DATA-BLANKLINE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-data-blankline - blank line in a table
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ f\bfi\bir\brs\bst\bt
+
+ l\bla\bas\bst\bt
+ normal text
+
+
+
+OpenBSD January 21, 2015 TBL-DATA-BLANKLINE(1)
--- /dev/null
+.TH TBL-DATA-BLOCK_UNCLOSED 1 "January 28, 2015" OpenBSD
+.SH NAME
+tbl-data-block_unclosed \- unclosed text block
+.SH DESCRIPTION
+normal text
+.TS
+box tab(:);
+lll.
+begin:T{
+middle
+T}:end
+T{
+begin
+T}:middle:T{
+end
+T}
+incomplete:T{
+block
+.TE
+normal text
+.TS
+box tab(:);
+lll.
+begin:T{
+middle
+T}:end
+incomplete:T{
+block
+.T&
+rrr.
+reset:still:works
+.TE
+normal text
--- /dev/null
+TBL-DATA-BLOCK_UNCLOSED(1) General Commands Manual TBL-DATA-BLOCK_UNCLOSED(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-data-block_unclosed - unclosed text block
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ +--------------------------+
+ |begin middle end |
+ |begin middle end |
+ |incomplete block |
+ +--------------------------+
+ normal text
+
+ +----------------------------+
+ |begin middle end |
+ |incomplete block |
+ | reset still works |
+ +----------------------------+
+ normal text
+
+
+
+OpenBSD January 28, 2015 TBL-DATA-BLOCK_UNCLOSED(1)
--- /dev/null
+mandoc: block_unclosed.in:6:1: ERROR: data block open at end of tbl: TE
+mandoc: block_unclosed.in: ERROR: data block open at end of tbl: T&
--- /dev/null
+.TH TBL-DATA-EMPTY 1 "January 28, 2015" OpenBSD
+.SH NAME
+tbl-data-empty \- empty table
+.SH DESCRIPTION
+normal text
+.TS
+box; l.
+.TE
+normal text
--- /dev/null
+TBL-DATA-EMPTY(1) General Commands Manual TBL-DATA-EMPTY(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-data-empty - empty table
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ normal text
+
+
+
+OpenBSD January 28, 2015 TBL-DATA-EMPTY(1)
--- /dev/null
+mandoc: empty.in:6:1: ERROR: tbl without any data cells
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2015/01/30 00:27:09 schwarze Exp $
+
+REGRESS_TARGETS = center complex empty emptyline numbers span
+LINT_TARGETS = complex empty
+
+# groff-1.22.3 defect:
+# - When the layout is completely empty,
+# GNU eqn produces no output whatsoever for the whole table.
+
+SKIP_GROFF = empty
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH TBL-LAYOUT-CENTER 1
+.SH NAME
+tbl-layout-center \- centering of table cells
+.SH DESCRIPTION
+normal text
+.TS
+tab(:);
+r c l
+r c l
+r c l
+c s l
+r c s
+r c l .
+*:*:*
+**:**:**
+***:***:***
+***:***
+***:***
+***:***:***
+****:****:****
+*****:*****:*****
+.TE
--- /dev/null
+TBL-LAYOUT-CENTER(1) General Commands Manual TBL-LAYOUT-CENTER(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-layout-center - centering of table cells
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ * * *
+ ** ** **
+ *** *** ***
+ *** ***
+ *** ***
+ *** *** ***
+ **** **** ****
+ ***** ***** *****
+
+
+
+ TBL-LAYOUT-CENTER(1)
--- /dev/null
+.TH TBL-LAYOUT-COMPLEX 1 "January 26, 2015" OpenBSD
+.SH NAME
+tbl-layout-complex \- complex table layout
+.SH DESCRIPTION
+normal text
+.TS
+box tab(:);
+l|p-1l bsil|||l,l|l ilb^|i||l.
+a:b:c:d
+e:f:g:h:i
+.TE
+.PP
+normal text
+.TS
+box tab(:);
+l ^
+l l.
+a:b
+c:d
+.TE
+.PP
+normal text
+.TS
+tab(:);
+||l||l||
+|l|l|
+ll.
+_
+a:b
+_
+c:d
+_
+e:f
+_
+.TE
+.PP
+normal text
--- /dev/null
+TBL-LAYOUT-COMPLEX(1) General Commands Manual TBL-LAYOUT-COMPLEX(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-layout-complex - complex table layout
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ +--+-----------++--+
+ |a | b\bb c ||d |
+ |e | _\bf g\bg ||i |
+ +--+-----------++--+
+ normal text
+
+ +------+
+ |a |
+ |c d |
+ +------+
+ normal text
+
+ +--++--+
+ |a ||b |
+ +--++--+
+ |c | d |
+ +--+---+
+ e f
+ --------
+
+ normal text
+
+
+
+OpenBSD January 26, 2015 TBL-LAYOUT-COMPLEX(1)
--- /dev/null
+mandoc: complex.in:8:14: WARNING: skipping vertical bar in tbl layout
+mandoc: complex.in:8:28: WARNING: skipping vertical bar in tbl layout
+mandoc: complex.in:10:7: ERROR: ignoring data in spanned tbl cell: h
+mandoc: complex.in:16:3: WARNING: tbl column starts with span
+mandoc: complex.in:18:3: ERROR: ignoring data in spanned tbl cell: b
--- /dev/null
+.TH TBL-LAYOUT-EMPTY 1 "January 29, 2015" OpenBSD
+.SH NAME
+tbl-layout-empty \- empty table layout
+.SH DESCRIPTION
+completely empty layout:
+.TS
+.
+table text
+.TE
+layout only contains a bar:
+.TS
+|.
+table text
+.TE
+normal text
--- /dev/null
+TBL-LAYOUT-EMPTY(1) General Commands Manual TBL-LAYOUT-EMPTY(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-layout-empty - empty table layout
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ completely empty layout:
+
+ table text
+ layout only contains a bar:
+
+ |table text
+ normal text
+
+
+
+OpenBSD January 29, 2015 TBL-LAYOUT-EMPTY(1)
--- /dev/null
+mandoc: empty.in:7:2: ERROR: empty tbl layout
+mandoc: empty.in:12:3: ERROR: empty tbl layout
--- /dev/null
+.TH TBL-LAYOUT-EMPTYLINE 1 "January 29, 2015" OpenBSD
+.SH NAME
+tbl-layout-emptyline \- empty lines in table layouts
+.SH DESCRIPTION
+An empty line in the middle of a table joins with the next:
+.TS
+l
+|
+r.
+table text
+_
+bar
+right
+.TE
+.PP
+An empty line at the end of a table is discarded:
+.TS
+l
+r
+|.
+table text
+right
+.TE
+normal text
--- /dev/null
+TBL-LAYOUT-EMPTYLINE(1) General Commands Manual TBL-LAYOUT-EMPTYLINE(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-layout-emptyline - empty lines in table layouts
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ An empty line in the middle of a table joins with the next:
+
+ table text
+ +-----------
+ | bar
+ | right
+
+ An empty line at the end of a table is discarded:
+
+ table text
+ right
+ normal text
+
+
+
+OpenBSD January 29, 2015 TBL-LAYOUT-EMPTYLINE(1)
--- /dev/null
+.TH TBL-LAYOUT-NUMBERS 1
+.SH NAME
+tbl-layout-numbers \- alignment of numbers in tables
+.SH DESCRIPTION
+normal text
+.TS
+box tab(:);
+r || n | n .
+1:1.00:+42.0
+_
+10:-10.0:3.14
+.TE
--- /dev/null
+TBL-LAYOUT-NUMBERS(1) General Commands Manual TBL-LAYOUT-NUMBERS(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-layout-numbers - alignment of numbers in tables
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ +---++-------+--------+
+ | 1 || 1.00 | +42.0 |
+ +---++-------+--------+
+ |10 ||-10.0 | 3.14 |
+ +---++-------+--------+
+
+
+ TBL-LAYOUT-NUMBERS(1)
--- /dev/null
+.TH TBL-LAYOUT-SPAN 1
+.SH NAME
+tbl-layout-span \- alignment of spanned cells
+.SH DESCRIPTION
+normal text
+.TS
+box tab(:);
+L L L L
+L S L L
+L L S L
+L L L S.
+a:b:c:d
+s:c:d
+a:s:d
+a:b:s
+.TE
+.sp
+.TS
+box tab(:);
+C C C C
+C S C C
+C C S C
+C C C S.
+a:b:c:d
+s:c:d
+a:s:d
+a:b:s
+.TE
+.sp
+.TS
+box tab(:);
+R R R R
+R S R R
+R R S R
+R R R S.
+a:b:c:d
+s:c:d
+a:s:d
+a:b:s
+.TE
--- /dev/null
+TBL-LAYOUT-SPAN(1) General Commands Manual TBL-LAYOUT-SPAN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-layout-span - alignment of spanned cells
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ +--------------+
+ |a b c d |
+ |s c d |
+ |a s d |
+ |a b s |
+ +--------------+
+
+ +--------------+
+ |a b c d |
+ | s c d |
+ |a s d |
+ |a b s |
+ +--------------+
+
+ +--------------+
+ |a b c d |
+ | s c d |
+ |a s d |
+ |a b s |
+ +--------------+
+
+
+ TBL-LAYOUT-SPAN(1)
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2016/08/20 14:43:40 schwarze Exp $
+
+REGRESS_TARGETS = man nested column
+LINT_TARGETS = man nested
+
+# trivial differences to groff-1.22.3:
+# .TS in a table causes a blank table line in GNU tbl(1), but not in mandoc.
+# .TS in a column list causes a blank line in mandoc, but not in GNU tbl(1).
+
+SKIP_GROFF = nested column
+
+.include <bsd.regress.mk>
--- /dev/null
+.Dd August 20, 2016
+.Dt TBL-COLUMN 1
+.Os OpenBSD
+.Sh NAME
+.Nm TBL-column
+.Nd tables inside column lists
+.Sh DESCRIPTION
+.Bl -column "a" "b"
+.Sy a Ta b
+.TS
+lll.
+1 2 3
+4 5 6
+.TE
+.Em c Ta d
+.El
--- /dev/null
+TBL-COLUMN(1) General Commands Manual TBL-COLUMN(1)
+
+N\bNA\bAM\bME\bE
+ T\bTB\bBL\bL-\b-c\bco\bol\blu\bum\bmn\bn - tables inside column lists
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ a\ba b
+ 1 2 3
+ 4 5 6
+
+ _\bc d
+
+OpenBSD August 20, 2016 OpenBSD
--- /dev/null
+.TH TBL-MACRO-MAN 1 "December 16, 2014"
+.SH NAME
+tbl-macro-man \- man macro in a table
+.SH DESCRIPTION
+normal text
+.TS
+box tab(:);
+l | l .
+a:b:stray
+_
+c:T{
+.SM d
+T}
+.TE
+.PP
+normal text
--- /dev/null
+TBL-MACRO-MAN(1) General Commands Manual TBL-MACRO-MAN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-macro-man - man macro in a table
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ +--+---+
+ |a | b |
+ +--+---+
+ |c | d |
+ +--+---+
+ normal text
+
+
+
+ December 16, 2014 TBL-MACRO-MAN(1)
--- /dev/null
+mandoc: man.in:9:5: ERROR: ignoring extra tbl data cells: stray
+mandoc: man.in:12:2: UNSUPP: ignoring macro in table: SM d
--- /dev/null
+.TH TBL-MACRO-NESTED 1 "December 16, 2014"
+.SH NAME
+tbl-macro-nested \- nested table
+.SH DESCRIPTION
+normal text
+.TS
+box tab(:);
+l | l .
+a:b
+_
+c:d
+.TS
+e:f
+.TE
+.PP
+normal text
--- /dev/null
+TBL-MACRO-NESTED(1) General Commands Manual TBL-MACRO-NESTED(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-macro-nested - nested table
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ +--+---+
+ |a | b |
+ +--+---+
+ |c | d |
+ |e | f |
+ +--+---+
+ normal text
+
+
+
+ December 16, 2014 TBL-MACRO-NESTED(1)
--- /dev/null
+mandoc: nested.in:12:4: UNSUPP: ignoring macro in table: TS
--- /dev/null
+# $OpenBSD: Makefile,v 1.2 2015/02/10 11:02:19 schwarze Exp $
+
+REGRESS_TARGETS = badfont expand font misalign
+LINT_TARGETS = badfont font
+
+# groff-1.22.3 defects:
+# - The "f" font modifier swallows a following newline character.
+# - When space is insufficient (on either side) for properly aligning
+# a number, GNU tbl(1) moves the number too much to the right,
+# overflowing the column, even if space would be sufficient without
+# left padding.
+
+SKIP_GROFF = badfont misalign
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH TBL-MOD-BADFONT 1 "February 10, 2015" OpenBSD
+.SH NAME
+tbl-mod-badfont \- invalid font modifiers in table layouts
+.SH DESCRIPTION
+normal text
+.TS
+box tab(:);
+lfB lf
+lfI lf.
+lfB lfI.
+bold:none
+italic:none
+bold:italic
+.TE
--- /dev/null
+TBL-MOD-BADFONT(1) General Commands Manual TBL-MOD-BADFONT(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-mod-badfont - invalid font modifiers in table layouts
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ +----------------+
+ |b\bbo\bol\bld\bd none |
+ |_\bi_\bt_\ba_\bl_\bi_\bc none |
+ |b\bbo\bol\bld\bd _\bi_\bt_\ba_\bl_\bi_\bc |
+ +----------------+
+
+
+OpenBSD February 10, 2015 TBL-MOD-BADFONT(1)
--- /dev/null
+mandoc: badfont.in:8:7: WARNING: unknown font, skipping request: TS f
+mandoc: badfont.in:9:7: WARNING: unknown font, skipping request: TS f.
--- /dev/null
+.TH TBL-MOD-EXPAND 1 "January 27, 2015" OpenBSD
+.SH NAME
+tbl-mod-expand \- expand modifier in table layout
+.SH DESCRIPTION
+normal text
+.TS
+tab(:);
+lx lx l.
+x:x:123456789012345678901234567890123456789012345678901234567890123
+.TE
+.TS
+tab(:);
+lx lx l.
+x:x:12345678901234567890123456789012345678901234567890123456789012
+.TE
+.TS
+tab(:);
+lx lx l.
+x:x:1234567890123456789012345678901234567890123456789012345678901
+.TE
+.TS
+tab(:);
+lx lx l.
+x:x:123456789012345678901234567890123456789012345678901234567890
+.TE
+.TS
+tab(:);
+lx lx lx l.
+x:x:x:12345678901234567890123456789012345678901234567890123456789
+.TE
+.TS
+tab(:);
+lx lx lx l.
+x:x:x:1234567890123456789012345678901234567890123456789012345678
+.TE
+.TS
+tab(:);
+lx lx lx l.
+x:x:x:123456789012345678901234567890123456789012345678901234567
+.TE
+.TS
+tab(:);
+lx lx lx l.
+x:x:x:12345678901234567890123456789012345678901234567890123456
+.TE
+.TS
+tab(:);
+lx lx lx lx l.
+x:x:x:x:1234567890123456789012345678901234567890123456789012345
+.TE
+.TS
+tab(:);
+lx lx lx lx l.
+x:x:x:x:123456789012345678901234567890123456789012345678901234
+.TE
+.TS
+tab(:);
+lx lx lx lx l.
+x:x:x:x:12345678901234567890123456789012345678901234567890123
+.TE
+.TS
+tab(:);
+lx lx lx lx l.
+x:x:x:x:1234567890123456789012345678901234567890123456789012
+.TE
+.TS
+tab(:);
+lx lx lx lx lx l.
+x:x:x:x:x:123456789012345678901234567890123456789012345678901
+.TE
+.TS
+tab(:);
+lx lx lx lx lx l.
+x:x:x:x:x:12345678901234567890123456789012345678901234567890
+.TE
+.TS
+tab(:);
+lx lx lx lx lx l.
+x:x:x:x:x:1234567890123456789012345678901234567890123456789
+.TE
+.TS
+tab(:);
+lx lx lx lx lx l.
+x:x:x:x:x:123456789012345678901234567890123456789012345678
+.TE
+.TS
+tab(:);
+lx lx lx lx lx l.
+x:x:x:x:x:12345678901234567890123456789012345678901234567
+.TE
+.TS
+tab(:);
+lx lx lx lx lx lx l.
+x:x:x:x:x:x:1234567890123456789012345678901234567890123456
+.TE
+.TS
+tab(:);
+lx lx lx lx lx lx l.
+x:x:x:x:x:x:123456789012345678901234567890123456789012345
+.TE
+.TS
+tab(:);
+lx lx lx lx lx lx l.
+x:x:x:x:x:x:12345678901234567890123456789012345678901234
+.TE
+.TS
+tab(:);
+lx lx lx lx lx lx l.
+x:x:x:x:x:x:1234567890123456789012345678901234567890123
+.TE
+.TS
+tab(:);
+lx lx lx lx lx lx l.
+x:x:x:x:x:x:123456789012345678901234567890123456789012
+.TE
+.TS
+tab(:);
+lx l rx.
+x:123456789012345678901234567890123456789012345678901234567890123:x
+.TE
+.TS
+tab(:);
+lx l rx.
+x:12345678901234567890123456789012345678901234567890123456789012:x
+.TE
+.TS
+tab(:);
+lx l rx.
+x:1234567890123456789012345678901234567890123456789012345678901:x
+.TE
+.TS
+tab(:);
+lx l rx.
+x:123456789012345678901234567890123456789012345678901234567890:x
+.TE
+.TS
+tab(:);
+lx lx l rx.
+x:x:12345678901234567890123456789012345678901234567890123456789:x
+.TE
+.TS
+tab(:);
+lx lx l rx.
+x:x:1234567890123456789012345678901234567890123456789012345678:x
+.TE
+.TS
+tab(:);
+lx lx l rx.
+x:x:123456789012345678901234567890123456789012345678901234567:x
+.TE
+.TS
+tab(:);
+lx lx l rx.
+x:x:12345678901234567890123456789012345678901234567890123456:x
+.TE
+.TS
+tab(:);
+lx lx lx l rx.
+x:x:x:1234567890123456789012345678901234567890123456789012345:x
+.TE
+.TS
+tab(:);
+lx lx lx l rx.
+x:x:x:123456789012345678901234567890123456789012345678901234:x
+.TE
+.TS
+tab(:);
+lx lx lx l rx.
+x:x:x:12345678901234567890123456789012345678901234567890123:x
+.TE
+.TS
+tab(:);
+lx lx lx l rx.
+x:x:x:1234567890123456789012345678901234567890123456789012:x
+.TE
+.TS
+tab(:);
+lx lx lx lx l rx.
+x:x:x:x:123456789012345678901234567890123456789012345678901:x
+.TE
+.TS
+tab(:);
+lx lx lx lx l rx.
+x:x:x:x:12345678901234567890123456789012345678901234567890:x
+.TE
+.TS
+tab(:);
+lx lx lx lx l rx.
+x:x:x:x:1234567890123456789012345678901234567890123456789:x
+.TE
+.TS
+tab(:);
+lx lx lx lx l rx.
+x:x:x:x:123456789012345678901234567890123456789012345678:x
+.TE
+.TS
+tab(:);
+lx lx lx lx l rx.
+x:x:x:x:12345678901234567890123456789012345678901234567:x
+.TE
+.TS
+tab(:);
+lx lx lx lx lx l rx.
+x:x:x:x:x:1234567890123456789012345678901234567890123456:x
+.TE
+.TS
+tab(:);
+lx lx lx lx lx l rx.
+x:x:x:x:x:123456789012345678901234567890123456789012345:x
+.TE
+.TS
+tab(:);
+lx lx lx lx lx l rx.
+x:x:x:x:x:12345678901234567890123456789012345678901234:x
+.TE
+.TS
+tab(:);
+lx lx lx lx lx l rx.
+x:x:x:x:x:1234567890123456789012345678901234567890123:x
+.TE
+.TS
+tab(:);
+lx lx lx lx lx l rx.
+x:x:x:x:x:123456789012345678901234567890123456789012:x
+.TE
--- /dev/null
+TBL-MOD-EXPAND(1) General Commands Manual TBL-MOD-EXPAND(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-mod-expand - expand modifier in table layout
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ x x 123456789012345678901234567890123456789012345678901234567890123
+
+ x x 12345678901234567890123456789012345678901234567890123456789012
+
+ x x 1234567890123456789012345678901234567890123456789012345678901
+
+ x x 123456789012345678901234567890123456789012345678901234567890
+
+ x x x 12345678901234567890123456789012345678901234567890123456789
+
+ x x x 1234567890123456789012345678901234567890123456789012345678
+
+ x x x 123456789012345678901234567890123456789012345678901234567
+
+ x x x 12345678901234567890123456789012345678901234567890123456
+
+ x x x x 1234567890123456789012345678901234567890123456789012345
+
+ x x x x 123456789012345678901234567890123456789012345678901234
+
+ x x x x 12345678901234567890123456789012345678901234567890123
+
+ x x x x 1234567890123456789012345678901234567890123456789012
+
+ x x x x x 123456789012345678901234567890123456789012345678901
+
+ x x x x x 12345678901234567890123456789012345678901234567890
+
+ x x x x x 1234567890123456789012345678901234567890123456789
+
+ x x x x x 123456789012345678901234567890123456789012345678
+
+ x x x x x 12345678901234567890123456789012345678901234567
+
+ x x x x x x 1234567890123456789012345678901234567890123456
+
+ x x x x x x 123456789012345678901234567890123456789012345
+
+ x x x x x x 12345678901234567890123456789012345678901234
+
+ x x x x x x 1234567890123456789012345678901234567890123
+
+ x x x x x x 123456789012345678901234567890123456789012
+
+ x 123456789012345678901234567890123456789012345678901234567890123 x
+
+ x 12345678901234567890123456789012345678901234567890123456789012 x
+
+ x 1234567890123456789012345678901234567890123456789012345678901 x
+
+ x 123456789012345678901234567890123456789012345678901234567890 x
+
+ x x 12345678901234567890123456789012345678901234567890123456789 x
+
+ x x 1234567890123456789012345678901234567890123456789012345678 x
+
+ x x 123456789012345678901234567890123456789012345678901234567 x
+
+ x x 12345678901234567890123456789012345678901234567890123456 x
+
+ x x x 1234567890123456789012345678901234567890123456789012345 x
+
+ x x x 123456789012345678901234567890123456789012345678901234 x
+
+ x x x 12345678901234567890123456789012345678901234567890123 x
+
+ x x x 1234567890123456789012345678901234567890123456789012 x
+
+ x x x x 123456789012345678901234567890123456789012345678901 x
+
+ x x x x 12345678901234567890123456789012345678901234567890 x
+
+ x x x x 1234567890123456789012345678901234567890123456789 x
+
+ x x x x 123456789012345678901234567890123456789012345678 x
+
+ x x x x 12345678901234567890123456789012345678901234567 x
+
+ x x x x x 1234567890123456789012345678901234567890123456 x
+
+ x x x x x 123456789012345678901234567890123456789012345 x
+
+ x x x x x 12345678901234567890123456789012345678901234 x
+
+ x x x x x 1234567890123456789012345678901234567890123 x
+
+ x x x x x 123456789012345678901234567890123456789012 x
+
+
+
+OpenBSD January 27, 2015 TBL-MOD-EXPAND(1)
--- /dev/null
+.TH TBL-MOD-FONT 1 "February 10, 2015" OpenBSD
+.SH NAME
+tbl-mod-font \- font modifiers in table layouts
+.SH DESCRIPTION
+normal text
+.TS
+box tab(:);
+cb|cfCW|ci
+cFI | cf(foobar) | cFB.
+bold:roman:italic
+_
+italic:roman:bold
+and:so:on
+.TE
--- /dev/null
+TBL-MOD-FONT(1) General Commands Manual TBL-MOD-FONT(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-mod-font - font modifiers in table layouts
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ +-------+-------+--------+
+ | b\bbo\bol\bld\bd | roman | _\bi_\bt_\ba_\bl_\bi_\bc |
+ +-------+-------+--------+
+ |_\bi_\bt_\ba_\bl_\bi_\bc | roman | b\bbo\bol\bld\bd |
+ | _\ba_\bn_\bd | so | o\bon\bn |
+ +-------+-------+--------+
+
+
+OpenBSD February 10, 2015 TBL-MOD-FONT(1)
--- /dev/null
+mandoc: font.in:8:6: WARNING: unknown font, skipping request: TS fCW|ci
--- /dev/null
+.TH TBL-MOD-MISALIGN 1 "December 24, 2014" OpenBSD
+.SH NAME
+tbl-mod-misalign \- failing alignment in tables
+.SH DESCRIPTION
+normal text
+.TS
+box tab(:);
+n, nz.
+12.34
+_
+100.0
+0.001
+_
+1000.0
+0.0001
+.TE
--- /dev/null
+TBL-MOD-MISALIGN(1) General Commands Manual TBL-MOD-MISALIGN(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-mod-misalign - failing alignment in tables
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ +------+
+ |12.34 |
+ +------+
+ |100.0 |
+ |0.001 |
+ +------+
+ |1000.0 |
+ |0.0001 |
+ +------+
+
+
+OpenBSD December 24, 2014 TBL-MOD-MISALIGN(1)
--- /dev/null
+# $OpenBSD: Makefile,v 1.1.1.1 2015/01/29 23:24:24 schwarze Exp $
+
+REGRESS_TARGETS = box center invalid
+LINT_TARGETS = invalid
+
+.include <bsd.regress.mk>
--- /dev/null
+.TH TBL-VERT 1
+.SH NAME
+tbl-vert \- vertical lines
+.SH DESCRIPTION
+no boxing:
+.TS
+tab(:);
+l l.
+a:b
+c:d
+.TE
+.sp
+automatic boxing:
+.TS
+tab(:) box;
+l l.
+a:b
+c:d
+.TE
+.sp
+manual boxing:
+.TS
+tab(:);
+||l||l||.
+_
+a:b
+_
+c:d
+_
+.TE
+.sp
+automatic and manual boxing:
+.TS
+tab(:) box;
+||l||l||.
+a:b
+_
+c:d
+.TE
--- /dev/null
+TBL-VERT(1) General Commands Manual TBL-VERT(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-vert - vertical lines
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ no boxing:
+
+ a b
+ c d
+
+ automatic boxing:
+
+ +------+
+ |a b |
+ |c d |
+ +------+
+ manual boxing:
+
+ +--++--+
+ |a ||b |
+ +--++--+
+ |c ||d |
+ +--++--+
+
+ automatic and manual boxing:
+
+ +--++--+
+ |a ||b |
+ +--++--+
+ |c ||d |
+ +--++--+
+
+
+ TBL-VERT(1)
--- /dev/null
+.TH TBL-LAYOUT_CENTER 1 "January 28, 2015" OpenBSD
+.SH NAME
+tbl-layout_center \- center a table as a whole
+.SH DESCRIPTION
+normal text
+.TS
+center; l.
+12345678901234567890123456789012345678901234567890123456789012345678901\
+234567890123456
+.TE
+.TS
+center; l.
+12345678901234567890123456789012345678901234567890123456789012345678901\
+23456789012345
+.TE
+.TS
+center; l.
+12345678901234567890123456789012345678901234567890123456789012345678901\
+2345678901234
+.TE
+.TS
+center; l.
+12345678901234567890123456789012345678901234567890123456789012345678901234
+.TE
+.TS
+center; l.
+1234567890123456789012345678901234567890123456789012345678901234567890123
+.TE
+.TS
+center; l.
+123456789012345678901234567890123456789012345678901234567890123456789012
+.TE
+.TS
+center; l.
+12345678901234567890123456789012345678901234567890123456789012345678901
+.TE
+.TS
+center; l.
+1234567890123456789012345678901234567890123456789012345678901234567890
+.TE
+.TS
+center; l.
+123456789012345678901234567890123456789012345678901234567890123456789
+.TE
+.TS
+center; l.
+12345678901234567890123456789012345678901234567890123456789012345678
+.TE
+.TS
+center; l|.
+_
+txt
+.TE
+.TS
+center; l|.
+_
+text
+.TE
+.TS
+center; |l.
+_
+txt
+.TE
+.TS
+center; |l.
+_
+text
+.TE
+.TS
+center; |l|.
+_
+txt
+.TE
+.TS
+center; |l|.
+_
+text
+.TE
+.TS
+center tab(:); |l||l|.
+_
+txt:text
+.TE
+.TS
+center tab(:); |l||l|.
+_
+text:text
+.TE
+.TS
+center box; l.
+txt
+.TE
+.PP
+normal text
+.TS
+center box; l.
+text
+.TE
--- /dev/null
+TBL-LAYOUT_CENTER(1) General Commands Manual TBL-LAYOUT_CENTER(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-layout_center - center a table as a whole
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+12345678901234567890123456789012345678901234567890123456789012345678901234567890123456
+
+1234567890123456789012345678901234567890123456789012345678901234567890123456789012345
+
+ 123456789012345678901234567890123456789012345678901234567890123456789012345678901234
+
+ 12345678901234567890123456789012345678901234567890123456789012345678901234
+
+ 1234567890123456789012345678901234567890123456789012345678901234567890123
+
+ 123456789012345678901234567890123456789012345678901234567890123456789012
+
+ 12345678901234567890123456789012345678901234567890123456789012345678901
+
+ 1234567890123456789012345678901234567890123456789012345678901234567890
+
+ 123456789012345678901234567890123456789012345678901234567890123456789
+
+ 12345678901234567890123456789012345678901234567890123456789012345678
+
+ ----+
+ txt |
+
+ -----+
+ text |
+
+ +----
+ |txt
+
+ +-----
+ |text
+
+ +----+
+ |txt |
+
+ +-----+
+ |text |
+
+ +----++-----+
+ |txt ||text |
+
+ +-----++-----+
+ |text ||text |
+
+ +----+
+ |txt |
+ +----+
+ normal text
+
+ +-----+
+ |text |
+ +-----+
+
+
+OpenBSD January 28, 2015 TBL-LAYOUT_CENTER(1)
--- /dev/null
+.TH TBL-OPT 1 "January 25, 2015" OpenBSD
+.SH NAME
+tbl-opt \- table options
+.SH DESCRIPTION
+normal text
+.TS
+tab decimalpoint (,x) %foo box;
+n n .
+10.0 0.01
+0.01 10.0
+.TE
+.PP
+normal text
+.TS
+ , box,tab(:) delim($$); l l .
+a:b
+.TE
+.PP
+normal text
--- /dev/null
+TBL-OPT(1) General Commands Manual TBL-OPT(1)
+
+
+
+N\bNA\bAM\bME\bE
+ tbl-opt - table options
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ normal text
+
+ +--------------+
+ |10.0 0.01 |
+ | 0.01 10.0 |
+ +--------------+
+ normal text
+
+ +------+
+ |a b |
+ +------+
+ normal text
+
+
+
+OpenBSD January 25, 2015 TBL-OPT(1)
--- /dev/null
+mandoc: invalid.in:7:5: ERROR: missing tbl option argument: tab
+mandoc: invalid.in:7:19: ERROR: wrong tbl option argument size: decimalpoint want 1 have 2
+mandoc: invalid.in:7:23: ERROR: non-alphabetic character in tbl options: %
+mandoc: invalid.in:7:24: ERROR: skipping unknown tbl option: foo
+mandoc: invalid.in:15:21: UNSUPP: eqn delim option in tbl: $$