aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/regress/tbl
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-02-08 03:02:13 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-02-08 03:02:13 +0000
commitd9f0f81c846a8405c29870e4a8379e5e79d1cad3 (patch)
treec07efd74ac58650949dc67576001a720e688319f /regress/tbl
parentcdbb1fca07752eb230e5219c22e9e65075c85b82 (diff)
downloadmandoc-d9f0f81c846a8405c29870e4a8379e5e79d1cad3.tar.gz
mandoc-d9f0f81c846a8405c29870e4a8379e5e79d1cad3.tar.zst
mandoc-d9f0f81c846a8405c29870e4a8379e5e79d1cad3.zip
Finally port the OpenBSD regression suite.
Both kristaps@ and wiz@ repeated asked for this, literally for years.
Diffstat (limited to 'regress/tbl')
-rw-r--r--regress/tbl/Makefile6
-rw-r--r--regress/tbl/Makefile.inc15
-rw-r--r--regress/tbl/data/Makefile12
-rw-r--r--regress/tbl/data/blankline.in14
-rw-r--r--regress/tbl/data/blankline.out_ascii18
-rw-r--r--regress/tbl/data/block_unclosed.in33
-rw-r--r--regress/tbl/data/block_unclosed.out_ascii27
-rw-r--r--regress/tbl/data/block_unclosed.out_lint2
-rw-r--r--regress/tbl/data/empty.in9
-rw-r--r--regress/tbl/data/empty.out_ascii15
-rw-r--r--regress/tbl/data/empty.out_lint1
-rw-r--r--regress/tbl/layout/Makefile12
-rw-r--r--regress/tbl/layout/center.in22
-rw-r--r--regress/tbl/layout/center.out_ascii22
-rw-r--r--regress/tbl/layout/complex.in37
-rw-r--r--regress/tbl/layout/complex.out_ascii35
-rw-r--r--regress/tbl/layout/complex.out_lint5
-rw-r--r--regress/tbl/layout/empty.in15
-rw-r--r--regress/tbl/layout/empty.out_ascii19
-rw-r--r--regress/tbl/layout/empty.out_lint2
-rw-r--r--regress/tbl/layout/emptyline.in24
-rw-r--r--regress/tbl/layout/emptyline.out_ascii24
-rw-r--r--regress/tbl/layout/numbers.in12
-rw-r--r--regress/tbl/layout/numbers.out_ascii18
-rw-r--r--regress/tbl/layout/span.in40
-rw-r--r--regress/tbl/layout/span.out_ascii33
-rw-r--r--regress/tbl/macro/Makefile12
-rw-r--r--regress/tbl/macro/column.in16
-rw-r--r--regress/tbl/macro/column.out_ascii13
-rw-r--r--regress/tbl/macro/man.in16
-rw-r--r--regress/tbl/macro/man.out_ascii20
-rw-r--r--regress/tbl/macro/man.out_lint2
-rw-r--r--regress/tbl/macro/nested.in16
-rw-r--r--regress/tbl/macro/nested.out_ascii21
-rw-r--r--regress/tbl/macro/nested.out_lint1
-rw-r--r--regress/tbl/mod/Makefile15
-rw-r--r--regress/tbl/mod/badfont.in14
-rw-r--r--regress/tbl/mod/badfont.out_ascii18
-rw-r--r--regress/tbl/mod/badfont.out_lint2
-rw-r--r--regress/tbl/mod/expand.in225
-rw-r--r--regress/tbl/mod/expand.out_ascii101
-rw-r--r--regress/tbl/mod/font.in14
-rw-r--r--regress/tbl/mod/font.out_ascii19
-rw-r--r--regress/tbl/mod/font.out_lint1
-rw-r--r--regress/tbl/mod/misalign.in16
-rw-r--r--regress/tbl/mod/misalign.out_ascii22
-rw-r--r--regress/tbl/opt/Makefile6
-rw-r--r--regress/tbl/opt/box.in39
-rw-r--r--regress/tbl/opt/box.out_ascii37
-rw-r--r--regress/tbl/opt/center.in98
-rw-r--r--regress/tbl/opt/center.out_ascii65
-rw-r--r--regress/tbl/opt/invalid.in19
-rw-r--r--regress/tbl/opt/invalid.out_ascii24
-rw-r--r--regress/tbl/opt/invalid.out_lint5
54 files changed, 1329 insertions, 0 deletions
diff --git a/regress/tbl/Makefile b/regress/tbl/Makefile
new file mode 100644
index 00000000..05743c8d
--- /dev/null
+++ b/regress/tbl/Makefile
@@ -0,0 +1,6 @@
+# $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>
diff --git a/regress/tbl/Makefile.inc b/regress/tbl/Makefile.inc
new file mode 100644
index 00000000..3d862dd4
--- /dev/null
+++ b/regress/tbl/Makefile.inc
@@ -0,0 +1,15 @@
+# $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"
diff --git a/regress/tbl/data/Makefile b/regress/tbl/data/Makefile
new file mode 100644
index 00000000..cdb97f36
--- /dev/null
+++ b/regress/tbl/data/Makefile
@@ -0,0 +1,12 @@
+# $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>
diff --git a/regress/tbl/data/blankline.in b/regress/tbl/data/blankline.in
new file mode 100644
index 00000000..dd11433a
--- /dev/null
+++ b/regress/tbl/data/blankline.in
@@ -0,0 +1,14 @@
+.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
diff --git a/regress/tbl/data/blankline.out_ascii b/regress/tbl/data/blankline.out_ascii
new file mode 100644
index 00000000..2cfd35a1
--- /dev/null
+++ b/regress/tbl/data/blankline.out_ascii
@@ -0,0 +1,18 @@
+TBL-DATA-BLANKLINE(1) General Commands Manual TBL-DATA-BLANKLINE(1)
+
+
+
+NNAAMMEE
+ tbl-data-blankline - blank line in a table
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ ffiirrsstt
+
+ llaasstt
+ normal text
+
+
+
+OpenBSD January 21, 2015 TBL-DATA-BLANKLINE(1)
diff --git a/regress/tbl/data/block_unclosed.in b/regress/tbl/data/block_unclosed.in
new file mode 100644
index 00000000..5e3526c4
--- /dev/null
+++ b/regress/tbl/data/block_unclosed.in
@@ -0,0 +1,33 @@
+.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
diff --git a/regress/tbl/data/block_unclosed.out_ascii b/regress/tbl/data/block_unclosed.out_ascii
new file mode 100644
index 00000000..bf0338ce
--- /dev/null
+++ b/regress/tbl/data/block_unclosed.out_ascii
@@ -0,0 +1,27 @@
+TBL-DATA-BLOCK_UNCLOSED(1) General Commands Manual TBL-DATA-BLOCK_UNCLOSED(1)
+
+
+
+NNAAMMEE
+ tbl-data-block_unclosed - unclosed text block
+
+DDEESSCCRRIIPPTTIIOONN
+ 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)
diff --git a/regress/tbl/data/block_unclosed.out_lint b/regress/tbl/data/block_unclosed.out_lint
new file mode 100644
index 00000000..452cde4d
--- /dev/null
+++ b/regress/tbl/data/block_unclosed.out_lint
@@ -0,0 +1,2 @@
+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&
diff --git a/regress/tbl/data/empty.in b/regress/tbl/data/empty.in
new file mode 100644
index 00000000..2107dcf5
--- /dev/null
+++ b/regress/tbl/data/empty.in
@@ -0,0 +1,9 @@
+.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
diff --git a/regress/tbl/data/empty.out_ascii b/regress/tbl/data/empty.out_ascii
new file mode 100644
index 00000000..6aaafe7f
--- /dev/null
+++ b/regress/tbl/data/empty.out_ascii
@@ -0,0 +1,15 @@
+TBL-DATA-EMPTY(1) General Commands Manual TBL-DATA-EMPTY(1)
+
+
+
+NNAAMMEE
+ tbl-data-empty - empty table
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ normal text
+
+
+
+OpenBSD January 28, 2015 TBL-DATA-EMPTY(1)
diff --git a/regress/tbl/data/empty.out_lint b/regress/tbl/data/empty.out_lint
new file mode 100644
index 00000000..153902d0
--- /dev/null
+++ b/regress/tbl/data/empty.out_lint
@@ -0,0 +1 @@
+mandoc: empty.in:6:1: ERROR: tbl without any data cells
diff --git a/regress/tbl/layout/Makefile b/regress/tbl/layout/Makefile
new file mode 100644
index 00000000..9ad5d7f9
--- /dev/null
+++ b/regress/tbl/layout/Makefile
@@ -0,0 +1,12 @@
+# $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>
diff --git a/regress/tbl/layout/center.in b/regress/tbl/layout/center.in
new file mode 100644
index 00000000..d4ca166e
--- /dev/null
+++ b/regress/tbl/layout/center.in
@@ -0,0 +1,22 @@
+.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
diff --git a/regress/tbl/layout/center.out_ascii b/regress/tbl/layout/center.out_ascii
new file mode 100644
index 00000000..27e03c99
--- /dev/null
+++ b/regress/tbl/layout/center.out_ascii
@@ -0,0 +1,22 @@
+TBL-LAYOUT-CENTER(1) General Commands Manual TBL-LAYOUT-CENTER(1)
+
+
+
+NNAAMMEE
+ tbl-layout-center - centering of table cells
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ * * *
+ ** ** **
+ *** *** ***
+ *** ***
+ *** ***
+ *** *** ***
+ **** **** ****
+ ***** ***** *****
+
+
+
+ TBL-LAYOUT-CENTER(1)
diff --git a/regress/tbl/layout/complex.in b/regress/tbl/layout/complex.in
new file mode 100644
index 00000000..185c5af2
--- /dev/null
+++ b/regress/tbl/layout/complex.in
@@ -0,0 +1,37 @@
+.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
diff --git a/regress/tbl/layout/complex.out_ascii b/regress/tbl/layout/complex.out_ascii
new file mode 100644
index 00000000..8581f202
--- /dev/null
+++ b/regress/tbl/layout/complex.out_ascii
@@ -0,0 +1,35 @@
+TBL-LAYOUT-COMPLEX(1) General Commands Manual TBL-LAYOUT-COMPLEX(1)
+
+
+
+NNAAMMEE
+ tbl-layout-complex - complex table layout
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ +--+-----------++--+
+ |a | bb c ||d |
+ |e | _f gg ||i |
+ +--+-----------++--+
+ normal text
+
+ +------+
+ |a |
+ |c d |
+ +------+
+ normal text
+
+ +--++--+
+ |a ||b |
+ +--++--+
+ |c | d |
+ +--+---+
+ e f
+ --------
+
+ normal text
+
+
+
+OpenBSD January 26, 2015 TBL-LAYOUT-COMPLEX(1)
diff --git a/regress/tbl/layout/complex.out_lint b/regress/tbl/layout/complex.out_lint
new file mode 100644
index 00000000..a72604fb
--- /dev/null
+++ b/regress/tbl/layout/complex.out_lint
@@ -0,0 +1,5 @@
+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
diff --git a/regress/tbl/layout/empty.in b/regress/tbl/layout/empty.in
new file mode 100644
index 00000000..3afff955
--- /dev/null
+++ b/regress/tbl/layout/empty.in
@@ -0,0 +1,15 @@
+.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
diff --git a/regress/tbl/layout/empty.out_ascii b/regress/tbl/layout/empty.out_ascii
new file mode 100644
index 00000000..96d224fa
--- /dev/null
+++ b/regress/tbl/layout/empty.out_ascii
@@ -0,0 +1,19 @@
+TBL-LAYOUT-EMPTY(1) General Commands Manual TBL-LAYOUT-EMPTY(1)
+
+
+
+NNAAMMEE
+ tbl-layout-empty - empty table layout
+
+DDEESSCCRRIIPPTTIIOONN
+ completely empty layout:
+
+ table text
+ layout only contains a bar:
+
+ |table text
+ normal text
+
+
+
+OpenBSD January 29, 2015 TBL-LAYOUT-EMPTY(1)
diff --git a/regress/tbl/layout/empty.out_lint b/regress/tbl/layout/empty.out_lint
new file mode 100644
index 00000000..20ae24a5
--- /dev/null
+++ b/regress/tbl/layout/empty.out_lint
@@ -0,0 +1,2 @@
+mandoc: empty.in:7:2: ERROR: empty tbl layout
+mandoc: empty.in:12:3: ERROR: empty tbl layout
diff --git a/regress/tbl/layout/emptyline.in b/regress/tbl/layout/emptyline.in
new file mode 100644
index 00000000..647b70db
--- /dev/null
+++ b/regress/tbl/layout/emptyline.in
@@ -0,0 +1,24 @@
+.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
diff --git a/regress/tbl/layout/emptyline.out_ascii b/regress/tbl/layout/emptyline.out_ascii
new file mode 100644
index 00000000..230cc597
--- /dev/null
+++ b/regress/tbl/layout/emptyline.out_ascii
@@ -0,0 +1,24 @@
+TBL-LAYOUT-EMPTYLINE(1) General Commands Manual TBL-LAYOUT-EMPTYLINE(1)
+
+
+
+NNAAMMEE
+ tbl-layout-emptyline - empty lines in table layouts
+
+DDEESSCCRRIIPPTTIIOONN
+ 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)
diff --git a/regress/tbl/layout/numbers.in b/regress/tbl/layout/numbers.in
new file mode 100644
index 00000000..24f1cada
--- /dev/null
+++ b/regress/tbl/layout/numbers.in
@@ -0,0 +1,12 @@
+.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
diff --git a/regress/tbl/layout/numbers.out_ascii b/regress/tbl/layout/numbers.out_ascii
new file mode 100644
index 00000000..c93d12b0
--- /dev/null
+++ b/regress/tbl/layout/numbers.out_ascii
@@ -0,0 +1,18 @@
+TBL-LAYOUT-NUMBERS(1) General Commands Manual TBL-LAYOUT-NUMBERS(1)
+
+
+
+NNAAMMEE
+ tbl-layout-numbers - alignment of numbers in tables
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ +---++-------+--------+
+ | 1 || 1.00 | +42.0 |
+ +---++-------+--------+
+ |10 ||-10.0 | 3.14 |
+ +---++-------+--------+
+
+
+ TBL-LAYOUT-NUMBERS(1)
diff --git a/regress/tbl/layout/span.in b/regress/tbl/layout/span.in
new file mode 100644
index 00000000..dc172dcd
--- /dev/null
+++ b/regress/tbl/layout/span.in
@@ -0,0 +1,40 @@
+.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
diff --git a/regress/tbl/layout/span.out_ascii b/regress/tbl/layout/span.out_ascii
new file mode 100644
index 00000000..0ffb9899
--- /dev/null
+++ b/regress/tbl/layout/span.out_ascii
@@ -0,0 +1,33 @@
+TBL-LAYOUT-SPAN(1) General Commands Manual TBL-LAYOUT-SPAN(1)
+
+
+
+NNAAMMEE
+ tbl-layout-span - alignment of spanned cells
+
+DDEESSCCRRIIPPTTIIOONN
+ 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)
diff --git a/regress/tbl/macro/Makefile b/regress/tbl/macro/Makefile
new file mode 100644
index 00000000..70ec1b33
--- /dev/null
+++ b/regress/tbl/macro/Makefile
@@ -0,0 +1,12 @@
+# $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>
diff --git a/regress/tbl/macro/column.in b/regress/tbl/macro/column.in
new file mode 100644
index 00000000..511025ea
--- /dev/null
+++ b/regress/tbl/macro/column.in
@@ -0,0 +1,16 @@
+.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
diff --git a/regress/tbl/macro/column.out_ascii b/regress/tbl/macro/column.out_ascii
new file mode 100644
index 00000000..b4428aa6
--- /dev/null
+++ b/regress/tbl/macro/column.out_ascii
@@ -0,0 +1,13 @@
+TBL-COLUMN(1) General Commands Manual TBL-COLUMN(1)
+
+NNAAMMEE
+ TTBBLL--ccoolluummnn - tables inside column lists
+
+DDEESSCCRRIIPPTTIIOONN
+ aa b
+ 1 2 3
+ 4 5 6
+
+ _c d
+
+OpenBSD August 20, 2016 OpenBSD
diff --git a/regress/tbl/macro/man.in b/regress/tbl/macro/man.in
new file mode 100644
index 00000000..36e39569
--- /dev/null
+++ b/regress/tbl/macro/man.in
@@ -0,0 +1,16 @@
+.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
diff --git a/regress/tbl/macro/man.out_ascii b/regress/tbl/macro/man.out_ascii
new file mode 100644
index 00000000..2a96f0b7
--- /dev/null
+++ b/regress/tbl/macro/man.out_ascii
@@ -0,0 +1,20 @@
+TBL-MACRO-MAN(1) General Commands Manual TBL-MACRO-MAN(1)
+
+
+
+NNAAMMEE
+ tbl-macro-man - man macro in a table
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ +--+---+
+ |a | b |
+ +--+---+
+ |c | d |
+ +--+---+
+ normal text
+
+
+
+ December 16, 2014 TBL-MACRO-MAN(1)
diff --git a/regress/tbl/macro/man.out_lint b/regress/tbl/macro/man.out_lint
new file mode 100644
index 00000000..292af268
--- /dev/null
+++ b/regress/tbl/macro/man.out_lint
@@ -0,0 +1,2 @@
+mandoc: man.in:9:5: ERROR: ignoring extra tbl data cells: stray
+mandoc: man.in:12:2: UNSUPP: ignoring macro in table: SM d
diff --git a/regress/tbl/macro/nested.in b/regress/tbl/macro/nested.in
new file mode 100644
index 00000000..35844eb5
--- /dev/null
+++ b/regress/tbl/macro/nested.in
@@ -0,0 +1,16 @@
+.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
diff --git a/regress/tbl/macro/nested.out_ascii b/regress/tbl/macro/nested.out_ascii
new file mode 100644
index 00000000..24a5c17a
--- /dev/null
+++ b/regress/tbl/macro/nested.out_ascii
@@ -0,0 +1,21 @@
+TBL-MACRO-NESTED(1) General Commands Manual TBL-MACRO-NESTED(1)
+
+
+
+NNAAMMEE
+ tbl-macro-nested - nested table
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ +--+---+
+ |a | b |
+ +--+---+
+ |c | d |
+ |e | f |
+ +--+---+
+ normal text
+
+
+
+ December 16, 2014 TBL-MACRO-NESTED(1)
diff --git a/regress/tbl/macro/nested.out_lint b/regress/tbl/macro/nested.out_lint
new file mode 100644
index 00000000..0f650c85
--- /dev/null
+++ b/regress/tbl/macro/nested.out_lint
@@ -0,0 +1 @@
+mandoc: nested.in:12:4: UNSUPP: ignoring macro in table: TS
diff --git a/regress/tbl/mod/Makefile b/regress/tbl/mod/Makefile
new file mode 100644
index 00000000..c5bebb0f
--- /dev/null
+++ b/regress/tbl/mod/Makefile
@@ -0,0 +1,15 @@
+# $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>
diff --git a/regress/tbl/mod/badfont.in b/regress/tbl/mod/badfont.in
new file mode 100644
index 00000000..4b765aef
--- /dev/null
+++ b/regress/tbl/mod/badfont.in
@@ -0,0 +1,14 @@
+.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
diff --git a/regress/tbl/mod/badfont.out_ascii b/regress/tbl/mod/badfont.out_ascii
new file mode 100644
index 00000000..b0788c50
--- /dev/null
+++ b/regress/tbl/mod/badfont.out_ascii
@@ -0,0 +1,18 @@
+TBL-MOD-BADFONT(1) General Commands Manual TBL-MOD-BADFONT(1)
+
+
+
+NNAAMMEE
+ tbl-mod-badfont - invalid font modifiers in table layouts
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ +----------------+
+ |bboolldd none |
+ |_i_t_a_l_i_c none |
+ |bboolldd _i_t_a_l_i_c |
+ +----------------+
+
+
+OpenBSD February 10, 2015 TBL-MOD-BADFONT(1)
diff --git a/regress/tbl/mod/badfont.out_lint b/regress/tbl/mod/badfont.out_lint
new file mode 100644
index 00000000..0882648c
--- /dev/null
+++ b/regress/tbl/mod/badfont.out_lint
@@ -0,0 +1,2 @@
+mandoc: badfont.in:8:7: WARNING: unknown font, skipping request: TS f
+mandoc: badfont.in:9:7: WARNING: unknown font, skipping request: TS f.
diff --git a/regress/tbl/mod/expand.in b/regress/tbl/mod/expand.in
new file mode 100644
index 00000000..dbb490f5
--- /dev/null
+++ b/regress/tbl/mod/expand.in
@@ -0,0 +1,225 @@
+.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
diff --git a/regress/tbl/mod/expand.out_ascii b/regress/tbl/mod/expand.out_ascii
new file mode 100644
index 00000000..2b4d193a
--- /dev/null
+++ b/regress/tbl/mod/expand.out_ascii
@@ -0,0 +1,101 @@
+TBL-MOD-EXPAND(1) General Commands Manual TBL-MOD-EXPAND(1)
+
+
+
+NNAAMMEE
+ tbl-mod-expand - expand modifier in table layout
+
+DDEESSCCRRIIPPTTIIOONN
+ 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)
diff --git a/regress/tbl/mod/font.in b/regress/tbl/mod/font.in
new file mode 100644
index 00000000..b371bfcb
--- /dev/null
+++ b/regress/tbl/mod/font.in
@@ -0,0 +1,14 @@
+.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
diff --git a/regress/tbl/mod/font.out_ascii b/regress/tbl/mod/font.out_ascii
new file mode 100644
index 00000000..70438643
--- /dev/null
+++ b/regress/tbl/mod/font.out_ascii
@@ -0,0 +1,19 @@
+TBL-MOD-FONT(1) General Commands Manual TBL-MOD-FONT(1)
+
+
+
+NNAAMMEE
+ tbl-mod-font - font modifiers in table layouts
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ +-------+-------+--------+
+ | bboolldd | roman | _i_t_a_l_i_c |
+ +-------+-------+--------+
+ |_i_t_a_l_i_c | roman | bboolldd |
+ | _a_n_d | so | oonn |
+ +-------+-------+--------+
+
+
+OpenBSD February 10, 2015 TBL-MOD-FONT(1)
diff --git a/regress/tbl/mod/font.out_lint b/regress/tbl/mod/font.out_lint
new file mode 100644
index 00000000..14506a51
--- /dev/null
+++ b/regress/tbl/mod/font.out_lint
@@ -0,0 +1 @@
+mandoc: font.in:8:6: WARNING: unknown font, skipping request: TS fCW|ci
diff --git a/regress/tbl/mod/misalign.in b/regress/tbl/mod/misalign.in
new file mode 100644
index 00000000..1f6bde49
--- /dev/null
+++ b/regress/tbl/mod/misalign.in
@@ -0,0 +1,16 @@
+.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
diff --git a/regress/tbl/mod/misalign.out_ascii b/regress/tbl/mod/misalign.out_ascii
new file mode 100644
index 00000000..03e9b36c
--- /dev/null
+++ b/regress/tbl/mod/misalign.out_ascii
@@ -0,0 +1,22 @@
+TBL-MOD-MISALIGN(1) General Commands Manual TBL-MOD-MISALIGN(1)
+
+
+
+NNAAMMEE
+ tbl-mod-misalign - failing alignment in tables
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ +------+
+ |12.34 |
+ +------+
+ |100.0 |
+ |0.001 |
+ +------+
+ |1000.0 |
+ |0.0001 |
+ +------+
+
+
+OpenBSD December 24, 2014 TBL-MOD-MISALIGN(1)
diff --git a/regress/tbl/opt/Makefile b/regress/tbl/opt/Makefile
new file mode 100644
index 00000000..ed9676b5
--- /dev/null
+++ b/regress/tbl/opt/Makefile
@@ -0,0 +1,6 @@
+# $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>
diff --git a/regress/tbl/opt/box.in b/regress/tbl/opt/box.in
new file mode 100644
index 00000000..c892401c
--- /dev/null
+++ b/regress/tbl/opt/box.in
@@ -0,0 +1,39 @@
+.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
diff --git a/regress/tbl/opt/box.out_ascii b/regress/tbl/opt/box.out_ascii
new file mode 100644
index 00000000..87ff5cf8
--- /dev/null
+++ b/regress/tbl/opt/box.out_ascii
@@ -0,0 +1,37 @@
+TBL-VERT(1) General Commands Manual TBL-VERT(1)
+
+
+
+NNAAMMEE
+ tbl-vert - vertical lines
+
+DDEESSCCRRIIPPTTIIOONN
+ 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)
diff --git a/regress/tbl/opt/center.in b/regress/tbl/opt/center.in
new file mode 100644
index 00000000..7c05202c
--- /dev/null
+++ b/regress/tbl/opt/center.in
@@ -0,0 +1,98 @@
+.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
diff --git a/regress/tbl/opt/center.out_ascii b/regress/tbl/opt/center.out_ascii
new file mode 100644
index 00000000..8df45eec
--- /dev/null
+++ b/regress/tbl/opt/center.out_ascii
@@ -0,0 +1,65 @@
+TBL-LAYOUT_CENTER(1) General Commands Manual TBL-LAYOUT_CENTER(1)
+
+
+
+NNAAMMEE
+ tbl-layout_center - center a table as a whole
+
+DDEESSCCRRIIPPTTIIOONN
+ 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)
diff --git a/regress/tbl/opt/invalid.in b/regress/tbl/opt/invalid.in
new file mode 100644
index 00000000..24b2fdfd
--- /dev/null
+++ b/regress/tbl/opt/invalid.in
@@ -0,0 +1,19 @@
+.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
diff --git a/regress/tbl/opt/invalid.out_ascii b/regress/tbl/opt/invalid.out_ascii
new file mode 100644
index 00000000..320b8023
--- /dev/null
+++ b/regress/tbl/opt/invalid.out_ascii
@@ -0,0 +1,24 @@
+TBL-OPT(1) General Commands Manual TBL-OPT(1)
+
+
+
+NNAAMMEE
+ tbl-opt - table options
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ +--------------+
+ |10.0 0.01 |
+ | 0.01 10.0 |
+ +--------------+
+ normal text
+
+ +------+
+ |a b |
+ +------+
+ normal text
+
+
+
+OpenBSD January 25, 2015 TBL-OPT(1)
diff --git a/regress/tbl/opt/invalid.out_lint b/regress/tbl/opt/invalid.out_lint
new file mode 100644
index 00000000..56c65e47
--- /dev/null
+++ b/regress/tbl/opt/invalid.out_lint
@@ -0,0 +1,5 @@
+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: $$