aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/regress/tbl/macro
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2022-04-30 18:51:36 +0000
committerIngo Schwarze <schwarze@openbsd.org>2022-04-30 18:51:36 +0000
commitb592e2d9ee8dd845f058dac8ae07a679a4bd10e2 (patch)
tree4274441e268d6735a9caea1b2483186918ca4f8d /regress/tbl/macro
parent42aa282973a44f08e87cdc71db77df5ac502a1bc (diff)
downloadmandoc-b592e2d9ee8dd845f058dac8ae07a679a4bd10e2.tar.gz
mandoc-b592e2d9ee8dd845f058dac8ae07a679a4bd10e2.tar.zst
mandoc-b592e2d9ee8dd845f058dac8ae07a679a4bd10e2.zip
Provide a new function roff_req_or_macro() to parse and handle a request
or macro, including context-dependent error handling inside tbl(7) code and inside .ce/.rj blocks. Use it both in the top level roff(7) parser and inside conditional blocks. This fixes an assertion failure triggered by ".if 1 .ce" inside tbl(7) code, found by tb@ using afl(1). As a side benefit for readability, only one place remains in the code that calls the main handler functions for the various roff(7) requests. This patch also improves column numbers in some error messages and various comments.
Diffstat (limited to 'regress/tbl/macro')
-rw-r--r--regress/tbl/macro/Makefile13
-rw-r--r--regress/tbl/macro/nested.out_lint2
-rw-r--r--regress/tbl/macro/req.in30
-rw-r--r--regress/tbl/macro/req.out_ascii18
-rw-r--r--regress/tbl/macro/req.out_lint5
5 files changed, 62 insertions, 6 deletions
diff --git a/regress/tbl/macro/Makefile b/regress/tbl/macro/Makefile
index 70ec1b33..8ea4a0d6 100644
--- a/regress/tbl/macro/Makefile
+++ b/regress/tbl/macro/Makefile
@@ -1,12 +1,15 @@
-# $OpenBSD: Makefile,v 1.2 2016/08/20 14:43:40 schwarze Exp $
+# $OpenBSD: Makefile,v 1.3 2022/04/30 18:46:16 schwarze Exp $
-REGRESS_TARGETS = man nested column
-LINT_TARGETS = man nested
+REGRESS_TARGETS = column man nested req
+LINT_TARGETS = man nested req
-# trivial differences to groff-1.22.3:
+# mandoc defect:
+# mandoc(1) ignores .br inside tbl(7) code.
+
+# trivial differences to groff-1.23.0:
# .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
+SKIP_GROFF = column nested req
.include <bsd.regress.mk>
diff --git a/regress/tbl/macro/nested.out_lint b/regress/tbl/macro/nested.out_lint
index dd044ba7..9bffbb0c 100644
--- a/regress/tbl/macro/nested.out_lint
+++ b/regress/tbl/macro/nested.out_lint
@@ -1 +1 @@
-mandoc: nested.in:13:4: UNSUPP: ignoring macro in table: TS
+mandoc: nested.in:13:2: UNSUPP: ignoring macro in table: TS
diff --git a/regress/tbl/macro/req.in b/regress/tbl/macro/req.in
new file mode 100644
index 00000000..30e1fe98
--- /dev/null
+++ b/regress/tbl/macro/req.in
@@ -0,0 +1,30 @@
+.\" $OpenBSD: req.in,v 1.1 2022/04/30 18:46:16 schwarze Exp $
+.TH TBL-MACRO-REQ 1 "April 30, 2022"
+.SH NAME
+tbl-macro-req \- requests generating nodes in a table
+.SH DESCRIPTION
+initial text
+.TS
+box tab(:);
+l | l .
+a:b:stray
+_
+c:T{
+d
+e
+T}
+.ce
+f:T{
+g
+.br
+h
+T}
+.if 1 .ce
+i:T{
+j
+.if 1 .br
+k
+T}
+.TE
+.PP
+final text
diff --git a/regress/tbl/macro/req.out_ascii b/regress/tbl/macro/req.out_ascii
new file mode 100644
index 00000000..168b1ea1
--- /dev/null
+++ b/regress/tbl/macro/req.out_ascii
@@ -0,0 +1,18 @@
+TBL-MACRO-REQ(1) General Commands Manual TBL-MACRO-REQ(1)
+
+NNAAMMEE
+ tbl-macro-req - requests generating nodes in a table
+
+DDEESSCCRRIIPPTTIIOONN
+ initial text
+
+ +--+-----+
+ |a | b |
+ +--+-----+
+ |c | d e |
+ |f | g h |
+ |i | j k |
+ +--+-----+
+ final text
+
+OpenBSD April 30, 2022 TBL-MACRO-REQ(1)
diff --git a/regress/tbl/macro/req.out_lint b/regress/tbl/macro/req.out_lint
new file mode 100644
index 00000000..26af8f71
--- /dev/null
+++ b/regress/tbl/macro/req.out_lint
@@ -0,0 +1,5 @@
+mandoc: req.in:10:5: ERROR: ignoring extra tbl data cells: stray
+mandoc: req.in:16:2: UNSUPP: ignoring macro in table: ce
+mandoc: req.in:19:2: UNSUPP: ignoring macro in table: br
+mandoc: req.in:22:8: UNSUPP: ignoring macro in table: ce
+mandoc: req.in:25:8: UNSUPP: ignoring macro in table: br