aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/regress/roff/esc
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/roff/esc
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/roff/esc')
-rw-r--r--regress/roff/esc/B.in36
-rw-r--r--regress/roff/esc/B.out_ascii23
-rw-r--r--regress/roff/esc/B.out_lint1
-rw-r--r--regress/roff/esc/Makefile6
-rw-r--r--regress/roff/esc/c.in17
-rw-r--r--regress/roff/esc/c.out_ascii11
-rw-r--r--regress/roff/esc/c_man.in12
-rw-r--r--regress/roff/esc/c_man.out_ascii15
-rw-r--r--regress/roff/esc/e.in19
-rw-r--r--regress/roff/esc/e.out_ascii13
-rw-r--r--regress/roff/esc/f.in12
-rw-r--r--regress/roff/esc/f.out_ascii11
-rw-r--r--regress/roff/esc/h.in18
-rw-r--r--regress/roff/esc/h.out_ascii14
-rw-r--r--regress/roff/esc/h.out_lint1
-rw-r--r--regress/roff/esc/ignore.in14
-rw-r--r--regress/roff/esc/ignore.out_ascii12
-rw-r--r--regress/roff/esc/ignore.out_lint1
-rw-r--r--regress/roff/esc/multi.in10
-rw-r--r--regress/roff/esc/multi.out_ascii10
-rw-r--r--regress/roff/esc/o.in18
-rw-r--r--regress/roff/esc/o.out_ascii14
-rw-r--r--regress/roff/esc/one.in16
-rw-r--r--regress/roff/esc/one.out_ascii13
-rw-r--r--regress/roff/esc/two.in75
-rw-r--r--regress/roff/esc/two.out_ascii26
-rw-r--r--regress/roff/esc/w.in16
-rw-r--r--regress/roff/esc/w.out_ascii13
-rw-r--r--regress/roff/esc/w.out_lint1
-rw-r--r--regress/roff/esc/z.in24
-rw-r--r--regress/roff/esc/z.out_ascii16
31 files changed, 488 insertions, 0 deletions
diff --git a/regress/roff/esc/B.in b/regress/roff/esc/B.in
new file mode 100644
index 00000000..97ac39c5
--- /dev/null
+++ b/regress/roff/esc/B.in
@@ -0,0 +1,36 @@
+.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
diff --git a/regress/roff/esc/B.out_ascii b/regress/roff/esc/B.out_ascii
new file mode 100644
index 00000000..c84490a2
--- /dev/null
+++ b/regress/roff/esc/B.out_ascii
@@ -0,0 +1,23 @@
+ESC-B(1) General Commands Manual ESC-B(1)
+
+NNAAMMEE
+ eesscc--BB - the roff escape B sequence: validate numerical expression
+
+DDEESSCCRRIIPPTTIIOONN
+ 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
diff --git a/regress/roff/esc/B.out_lint b/regress/roff/esc/B.out_lint
new file mode 100644
index 00000000..6159b1c5
--- /dev/null
+++ b/regress/roff/esc/B.out_lint
@@ -0,0 +1 @@
+mandoc: B.in:36:23: WARNING: invalid escape sequence: \B'1+1
diff --git a/regress/roff/esc/Makefile b/regress/roff/esc/Makefile
new file mode 100644
index 00000000..f0860368
--- /dev/null
+++ b/regress/roff/esc/Makefile
@@ -0,0 +1,6 @@
+# $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>
diff --git a/regress/roff/esc/c.in b/regress/roff/esc/c.in
new file mode 100644
index 00000000..c3b7a912
--- /dev/null
+++ b/regress/roff/esc/c.in
@@ -0,0 +1,17 @@
+.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
diff --git a/regress/roff/esc/c.out_ascii b/regress/roff/esc/c.out_ascii
new file mode 100644
index 00000000..5ddc8443
--- /dev/null
+++ b/regress/roff/esc/c.out_ascii
@@ -0,0 +1,11 @@
+ESC-C(1) General Commands Manual ESC-C(1)
+
+NNAAMMEE
+ eesscc--cc - the roff escape c sequence: remove trailing space
+
+DDEESSCCRRIIPPTTIIOONN
+ No space between ``one'' and ``word'': oneword
+
+ oneword
+
+OpenBSD December 2, 2014 OpenBSD
diff --git a/regress/roff/esc/c_man.in b/regress/roff/esc/c_man.in
new file mode 100644
index 00000000..c18fad10
--- /dev/null
+++ b/regress/roff/esc/c_man.in
@@ -0,0 +1,12 @@
+.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
diff --git a/regress/roff/esc/c_man.out_ascii b/regress/roff/esc/c_man.out_ascii
new file mode 100644
index 00000000..d00b1b48
--- /dev/null
+++ b/regress/roff/esc/c_man.out_ascii
@@ -0,0 +1,15 @@
+ESC-C_MAN(1) General Commands Manual ESC-C_MAN(1)
+
+
+
+NNAAMMEE
+ esc-c_man - the roff escape c sequence: remove trailing space
+
+DDEESSCCRRIIPPTTIIOONN
+ No space between "one" and "word": oneword
+ oneword
+ final text
+
+
+
+OpenBSD December 2, 2014 ESC-C_MAN(1)
diff --git a/regress/roff/esc/e.in b/regress/roff/esc/e.in
new file mode 100644
index 00000000..c0f87692
--- /dev/null
+++ b/regress/roff/esc/e.in
@@ -0,0 +1,19 @@
+.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
diff --git a/regress/roff/esc/e.out_ascii b/regress/roff/esc/e.out_ascii
new file mode 100644
index 00000000..75665168
--- /dev/null
+++ b/regress/roff/esc/e.out_ascii
@@ -0,0 +1,13 @@
+ESC-E(1) General Commands Manual ESC-E(1)
+
+NNAAMMEE
+ eesscc--ee - escaping backslashes
+
+DDEESSCCRRIIPPTTIIOONN
+ In plain text: "\" and "\"
+
+ On macro lines: "\(at" and "@"
+
+ In a macro definition: "\$1" and "two"
+
+OpenBSD December 3, 2014 OpenBSD
diff --git a/regress/roff/esc/f.in b/regress/roff/esc/f.in
new file mode 100644
index 00000000..a909ac8a
--- /dev/null
+++ b/regress/roff/esc/f.in
@@ -0,0 +1,12 @@
+.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
diff --git a/regress/roff/esc/f.out_ascii b/regress/roff/esc/f.out_ascii
new file mode 100644
index 00000000..5ecd6993
--- /dev/null
+++ b/regress/roff/esc/f.out_ascii
@@ -0,0 +1,11 @@
+ESC-F(1) General Commands Manual ESC-F(1)
+
+NNAAMMEE
+ eesscc--ff - the roff escape f sequence: font changes
+
+DDEESSCCRRIIPPTTIIOONN
+ numbers: bboolldd_i_t_a_l_i_croman
+ letters: bboolldd_i_t_a_l_i_cbbaacckk_bb_oo_ll_dd_ii_tt_aa_ll_ii_ccroman
+ multiletter: bboolldd_i_t_a_l_i_cbbaacckk_bb_oo_ll_dd_ii_tt_aa_ll_ii_ccroman
+
+OpenBSD August 7, 2013 OpenBSD
diff --git a/regress/roff/esc/h.in b/regress/roff/esc/h.in
new file mode 100644
index 00000000..31fbb4e2
--- /dev/null
+++ b/regress/roff/esc/h.in
@@ -0,0 +1,18 @@
+.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-<
diff --git a/regress/roff/esc/h.out_ascii b/regress/roff/esc/h.out_ascii
new file mode 100644
index 00000000..858dcf32
--- /dev/null
+++ b/regress/roff/esc/h.out_ascii
@@ -0,0 +1,14 @@
+ESC-H(1) General Commands Manual ESC-H(1)
+
+NNAAMMEE
+ eesscc--hh - the roff escape h sequence: horizontal movement
+
+DDEESSCCRRIIPPTTIIOONN
+ simple: ><
+ escape only: ><
+ escape at the end: ><
+ escape at the beginning: ><
+ escape in the middle: ><
+ invalid delimiter: ><
+
+OpenBSD May 28, 2012 OpenBSD
diff --git a/regress/roff/esc/h.out_lint b/regress/roff/esc/h.out_lint
new file mode 100644
index 00000000..6d591e38
--- /dev/null
+++ b/regress/roff/esc/h.out_lint
@@ -0,0 +1 @@
+mandoc: h.in:18:21: WARNING: invalid escape sequence: \h-
diff --git a/regress/roff/esc/ignore.in b/regress/roff/esc/ignore.in
new file mode 100644
index 00000000..4be7fb6c
--- /dev/null
+++ b/regress/roff/esc/ignore.in
@@ -0,0 +1,14 @@
+.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-
diff --git a/regress/roff/esc/ignore.out_ascii b/regress/roff/esc/ignore.out_ascii
new file mode 100644
index 00000000..5e41d49a
--- /dev/null
+++ b/regress/roff/esc/ignore.out_ascii
@@ -0,0 +1,12 @@
+ESC-IGNORE(1) General Commands Manual ESC-IGNORE(1)
+
+NNAAMMEE
+ eesscc--iiggnnoorree - ignored roff escape sequences
+
+DDEESSCCRRIIPPTTIIOONN
+ multiform: abcd
+ quoted: abc
+ sizes: abcdef
+ signed sizes: abcdef
+
+OpenBSD January 1, 2015 OpenBSD
diff --git a/regress/roff/esc/ignore.out_lint b/regress/roff/esc/ignore.out_lint
new file mode 100644
index 00000000..c163d60d
--- /dev/null
+++ b/regress/roff/esc/ignore.out_lint
@@ -0,0 +1 @@
+mandoc: ignore.in:14:60: WARNING: invalid escape sequence: \s-
diff --git a/regress/roff/esc/multi.in b/regress/roff/esc/multi.in
new file mode 100644
index 00000000..a2a76db1
--- /dev/null
+++ b/regress/roff/esc/multi.in
@@ -0,0 +1,10 @@
+.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'
diff --git a/regress/roff/esc/multi.out_ascii b/regress/roff/esc/multi.out_ascii
new file mode 100644
index 00000000..a7b64602
--- /dev/null
+++ b/regress/roff/esc/multi.out_ascii
@@ -0,0 +1,10 @@
+ESC-MULTI(1) General Commands Manual ESC-MULTI(1)
+
+NNAAMMEE
+ eesscc--mmuullttii - roff multi-character escape sequences
+
+DDEESSCCRRIIPPTTIIOONN
+ ~ +- x -:- 1/2 1/4 3/4
+ ~ +- x -:- 1/2 1/4 3/4
+
+OpenBSD May 28, 2012 OpenBSD
diff --git a/regress/roff/esc/o.in b/regress/roff/esc/o.in
new file mode 100644
index 00000000..2976a9d8
--- /dev/null
+++ b/regress/roff/esc/o.in
@@ -0,0 +1,18 @@
+.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
diff --git a/regress/roff/esc/o.out_ascii b/regress/roff/esc/o.out_ascii
new file mode 100644
index 00000000..39dc1b1c
--- /dev/null
+++ b/regress/roff/esc/o.out_ascii
@@ -0,0 +1,14 @@
+ESC-O(1) General Commands Manual ESC-O(1)
+
+NNAAMMEE
+ eesscc--oo - the roff escape o sequence: overstrike
+
+DDEESSCCRRIIPPTTIIOONN
+ empty: xx
+ one character: x|x
+ wide/narrow: xO|x
+ narrow/wide: x|Ox
+ wide/narrow/narrow: xO-|x
+ narrow/narrow/wide: x|-Ox
+
+OpenBSD January 21, 2015 OpenBSD
diff --git a/regress/roff/esc/one.in b/regress/roff/esc/one.in
new file mode 100644
index 00000000..4d416d2a
--- /dev/null
+++ b/regress/roff/esc/one.in
@@ -0,0 +1,16 @@
+.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<
diff --git a/regress/roff/esc/one.out_ascii b/regress/roff/esc/one.out_ascii
new file mode 100644
index 00000000..1324e038
--- /dev/null
+++ b/regress/roff/esc/one.out_ascii
@@ -0,0 +1,13 @@
+ESC-ONE(1) General Commands Manual ESC-ONE(1)
+
+NNAAMMEE
+ eesscc--oonnee - roff one-character escape sequences
+
+DDEESSCCRRIIPPTTIIOONN
+ backslash: >\<
+ minus: >-<
+ acute: >'<
+ grave: >`<
+ normal character: >q<
+
+OpenBSD October 27, 2014 OpenBSD
diff --git a/regress/roff/esc/two.in b/regress/roff/esc/two.in
new file mode 100644
index 00000000..c6ac3eee
--- /dev/null
+++ b/regress/roff/esc/two.in
@@ -0,0 +1,75 @@
+.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
diff --git a/regress/roff/esc/two.out_ascii b/regress/roff/esc/two.out_ascii
new file mode 100644
index 00000000..238adffa
--- /dev/null
+++ b/regress/roff/esc/two.out_ascii
@@ -0,0 +1,26 @@
+ESC-TWO(1) General Commands Manual ESC-TWO(1)
+
+NNAAMMEE
+ eesscc--ttwwoo - roff two-character escape sequences
+
+DDEESSCCRRIIPPTTIIOONN
+ lines: | | _ | / \
+ markers: +o <> [] <= => @ # _|
+ 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: " ^ ' ` '` , " v o ~ , ^ ~
+ 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
+ currency: $ /c EUR EUR =Y <<
+ units: ' ,u
+ greek letters: A B E Z H I K /\ M N O TT P T Y X IY _O a B y d e ,C n -0
+ i k >\ ,u v ,E o -n p -o ~t u |o x |u w -0 |o +p e s
+
+OpenBSD October 28, 2014 OpenBSD
diff --git a/regress/roff/esc/w.in b/regress/roff/esc/w.in
new file mode 100644
index 00000000..4a9e79f8
--- /dev/null
+++ b/regress/roff/esc/w.in
@@ -0,0 +1,16 @@
+.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
diff --git a/regress/roff/esc/w.out_ascii b/regress/roff/esc/w.out_ascii
new file mode 100644
index 00000000..1d44a2e0
--- /dev/null
+++ b/regress/roff/esc/w.out_ascii
@@ -0,0 +1,13 @@
+ESC-W(1) General Commands Manual ESC-W(1)
+
+NNAAMMEE
+ eesscc--ww - the roff escape w sequence: text width
+
+DDEESSCCRRIIPPTTIIOONN
+ empty: 0
+ character: 24
+ blank: 24
+ text: 96
+ unterminated: 72
+
+OpenBSD April 8, 2014 OpenBSD
diff --git a/regress/roff/esc/w.out_lint b/regress/roff/esc/w.out_lint
new file mode 100644
index 00000000..a1b91722
--- /dev/null
+++ b/regress/roff/esc/w.out_lint
@@ -0,0 +1 @@
+mandoc: w.in:16:15: WARNING: invalid escape sequence: \w'foo
diff --git a/regress/roff/esc/z.in b/regress/roff/esc/z.in
new file mode 100644
index 00000000..9d3ad1d5
--- /dev/null
+++ b/regress/roff/esc/z.in
@@ -0,0 +1,24 @@
+.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<
diff --git a/regress/roff/esc/z.out_ascii b/regress/roff/esc/z.out_ascii
new file mode 100644
index 00000000..233a4aa5
--- /dev/null
+++ b/regress/roff/esc/z.out_ascii
@@ -0,0 +1,16 @@
+ESC-Z(1) General Commands Manual ESC-Z(1)
+
+NNAAMMEE
+ eesscc--zz - the roff escape z sequence
+
+DDEESSCCRRIIPPTTIIOONN
+ single z with ASCII char: >x<
+ single z with escape char: >O<
+ single z with defined string (mytext): >mytext<
+ single z with font escape: >xxbboolldd<
+ single z with nospace escape: > new line<
+ single z with overstrike: >abc<
+ single z near the end of the line: ><
+ double z: >x<
+
+OpenBSD April 29, 2015 OpenBSD