summaryrefslogtreecommitdiff
path: root/regress/usr.bin
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@cvs.openbsd.org>2014-10-29 03:39:27 +0000
committerIngo Schwarze <schwarze@cvs.openbsd.org>2014-10-29 03:39:27 +0000
commit615704f96e3b9730f3f32a1cff8b47da5aba560b (patch)
tree1097400b4c13d32abd2ab7ed4dcb2d26b8f134c5 /regress/usr.bin
parentebadb9c92c89b52bf8b8b56be915cfca9a8e20f5 (diff)
test various recent improvements of special character rendering
Diffstat (limited to 'regress/usr.bin')
-rw-r--r--regress/usr.bin/mandoc/char/unicode/Makefile13
-rw-r--r--regress/usr.bin/mandoc/char/unicode/ascii.in1
-rw-r--r--regress/usr.bin/mandoc/char/unicode/ascii.out_ascii1
-rw-r--r--regress/usr.bin/mandoc/char/unicode/ascii.out_utf81
-rw-r--r--regress/usr.bin/mandoc/char/unicode/invalid.in17
-rw-r--r--regress/usr.bin/mandoc/char/unicode/invalid.out_ascii16
-rw-r--r--regress/usr.bin/mandoc/char/unicode/invalid.out_html8
-rw-r--r--regress/usr.bin/mandoc/char/unicode/invalid.out_lint9
-rw-r--r--regress/usr.bin/mandoc/char/unicode/invalid.out_utf816
-rw-r--r--regress/usr.bin/mandoc/char/unicode/named.in79
-rw-r--r--regress/usr.bin/mandoc/char/unicode/named.out_ascii79
-rw-r--r--regress/usr.bin/mandoc/char/unicode/named.out_html79
-rw-r--r--regress/usr.bin/mandoc/char/unicode/named.out_utf879
-rw-r--r--regress/usr.bin/mandoc/char/unicode/namediff.in21
-rw-r--r--regress/usr.bin/mandoc/char/unicode/namediff.out_ascii21
-rw-r--r--regress/usr.bin/mandoc/char/unicode/namediff.out_html21
-rw-r--r--regress/usr.bin/mandoc/char/unicode/namediff.out_utf821
-rw-r--r--regress/usr.bin/mandoc/char/unicode/nogroff.in57
-rw-r--r--regress/usr.bin/mandoc/char/unicode/nogroff.out_ascii63
-rw-r--r--regress/usr.bin/mandoc/char/unicode/nogroff.out_html51
-rw-r--r--regress/usr.bin/mandoc/char/unicode/nogroff.out_utf863
21 files changed, 708 insertions, 8 deletions
diff --git a/regress/usr.bin/mandoc/char/unicode/Makefile b/regress/usr.bin/mandoc/char/unicode/Makefile
index e0121ac2271..5fd17875c22 100644
--- a/regress/usr.bin/mandoc/char/unicode/Makefile
+++ b/regress/usr.bin/mandoc/char/unicode/Makefile
@@ -1,10 +1,13 @@
-# $OpenBSD: Makefile,v 1.2 2014/10/28 02:49:48 schwarze Exp $
+# $OpenBSD: Makefile,v 1.3 2014/10/29 03:39:26 schwarze Exp $
-REGRESS_TARGETS = ascii latin1 latin1diff man mdoc named namediff
-SKIP_ASCII = man mdoc
-UTF8_TARGETS = ascii latin1 latin1diff man mdoc named namediff
-HTML_TARGETS = ascii latin1 latin1diff named namediff
+REGRESS_TARGETS = ascii 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 = invalid
+SKIP_GROFF = nogroff
SKIP_GROFF_ASCII = latin1diff namediff
.include <bsd.regress.mk>
diff --git a/regress/usr.bin/mandoc/char/unicode/ascii.in b/regress/usr.bin/mandoc/char/unicode/ascii.in
index 7f88efb6486..c75da2c05da 100644
--- a/regress/usr.bin/mandoc/char/unicode/ascii.in
+++ b/regress/usr.bin/mandoc/char/unicode/ascii.in
@@ -26,4 +26,3 @@ BEGINTEST
\[u007E]\N'126'\(a~\(ti TILDE
ENDTEST
.fi
-Note that groff does not handle \eC'u00XX' in the ASCII range.
diff --git a/regress/usr.bin/mandoc/char/unicode/ascii.out_ascii b/regress/usr.bin/mandoc/char/unicode/ascii.out_ascii
index e18f387d3be..74b5d2861d1 100644
--- a/regress/usr.bin/mandoc/char/unicode/ascii.out_ascii
+++ b/regress/usr.bin/mandoc/char/unicode/ascii.out_ascii
@@ -28,7 +28,6 @@ DDEESSCCRRIIPPTTIIOONN
}}} RIGHT CURLY BRACKET
~~~~ TILDE
ENDTEST
- Note that groff does not handle \C'u00XX' in the ASCII range.
diff --git a/regress/usr.bin/mandoc/char/unicode/ascii.out_utf8 b/regress/usr.bin/mandoc/char/unicode/ascii.out_utf8
index e18f387d3be..74b5d2861d1 100644
--- a/regress/usr.bin/mandoc/char/unicode/ascii.out_utf8
+++ b/regress/usr.bin/mandoc/char/unicode/ascii.out_utf8
@@ -28,7 +28,6 @@ DDEESSCCRRIIPPTTIIOONN
}}} RIGHT CURLY BRACKET
~~~~ TILDE
ENDTEST
- Note that groff does not handle \C'u00XX' in the ASCII range.
diff --git a/regress/usr.bin/mandoc/char/unicode/invalid.in b/regress/usr.bin/mandoc/char/unicode/invalid.in
new file mode 100644
index 00000000000..4c0432bc7e1
--- /dev/null
+++ b/regress/usr.bin/mandoc/char/unicode/invalid.in
@@ -0,0 +1,17 @@
+.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
diff --git a/regress/usr.bin/mandoc/char/unicode/invalid.out_ascii b/regress/usr.bin/mandoc/char/unicode/invalid.out_ascii
new file mode 100644
index 00000000000..c30a76178e0
--- /dev/null
+++ b/regress/usr.bin/mandoc/char/unicode/invalid.out_ascii
@@ -0,0 +1,16 @@
+CHAR-UNICODE-INVALID(1) General Commands Manual CHAR-UNICODE-INVALID(1)
+
+NNAAMMEE
+ cchhaarr--uunniiccooddee--iinnvvaalliidd - invalid unicode characters
+
+DDEESSCCRRIIPPTTIIOONN
+ BEGINTEST
+ too short: >.<
+ just right: >+<
+ too long: >..<
+ too large: >..<
+ trailing garbage: ><
+ not unicode: >_.|^.=^<
+ ENDTEST
+
+OpenBSD October 28, 2014 OpenBSD
diff --git a/regress/usr.bin/mandoc/char/unicode/invalid.out_html b/regress/usr.bin/mandoc/char/unicode/invalid.out_html
new file mode 100644
index 00000000000..e7e1cf956c6
--- /dev/null
+++ b/regress/usr.bin/mandoc/char/unicode/invalid.out_html
@@ -0,0 +1,8 @@
+BEGINTEST
+too short: &gt;.&lt;
+just right: &gt;+&lt;
+too long: &gt;..&lt;
+too large: &gt;..&lt;
+trailing garbage: &gt;&lt;
+not unicode: &gt;_.&#8593;.&#8657;&lt;
+ENDTEST</pre>
diff --git a/regress/usr.bin/mandoc/char/unicode/invalid.out_lint b/regress/usr.bin/mandoc/char/unicode/invalid.out_lint
new file mode 100644
index 00000000000..c200a620225
--- /dev/null
+++ b/regress/usr.bin/mandoc/char/unicode/invalid.out_lint
@@ -0,0 +1,9 @@
+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]
diff --git a/regress/usr.bin/mandoc/char/unicode/invalid.out_utf8 b/regress/usr.bin/mandoc/char/unicode/invalid.out_utf8
new file mode 100644
index 00000000000..ed91d82aee9
--- /dev/null
+++ b/regress/usr.bin/mandoc/char/unicode/invalid.out_utf8
@@ -0,0 +1,16 @@
+CHAR-UNICODE-INVALID(1) General Commands Manual CHAR-UNICODE-INVALID(1)
+
+NNAAMMEE
+ cchhaarr--uunniiccooddee--iinnvvaalliidd – invalid unicode characters
+
+DDEESSCCRRIIPPTTIIOONN
+ BEGINTEST
+ too short: >.<
+ just right: >+<
+ too long: >..<
+ too large: >..<
+ trailing garbage: ><
+ not unicode: >_.↑.⇑<
+ ENDTEST
+
+OpenBSD October 28, 2014 OpenBSD
diff --git a/regress/usr.bin/mandoc/char/unicode/named.in b/regress/usr.bin/mandoc/char/unicode/named.in
index f6b40b8da32..4459a2f3436 100644
--- a/regress/usr.bin/mandoc/char/unicode/named.in
+++ b/regress/usr.bin/mandoc/char/unicode/named.in
@@ -68,5 +68,84 @@ BEGINTEST
\[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
+\[u201E]\(Bq DOUBLE LOW-9 QUOTATION MARK
+\[u2020]\(dg DAGGER
+\[u2021]\(dd DOUBLE DAGGER
+\[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
+\[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
diff --git a/regress/usr.bin/mandoc/char/unicode/named.out_ascii b/regress/usr.bin/mandoc/char/unicode/named.out_ascii
index 89ee48644b4..5888e41ed40 100644
--- a/regress/usr.bin/mandoc/char/unicode/named.out_ascii
+++ b/regress/usr.bin/mandoc/char/unicode/named.out_ascii
@@ -71,6 +71,85 @@ DDEESSCCRRIIPPTTIIOONN
|o|o GREEK PHI SYMBOL
-w-w 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
+ ,,,, DOUBLE LOW-9 QUOTATION MARK
+ |-|- DAGGER
+ |=|= DOUBLE DAGGER
+ %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
+ |^|^ UPWARDS ARROW
+ ->-> RIGHTWARDS ARROW
+ |v|v DOWNWARDS ARROW
+ <-><-> LEFT RIGHT ARROW
+ _|_| DOWNWARDS ARROW WITH CORNER LEFTWARDS
+ <=<= LEFTWARDS DOUBLE ARROW
+ =^=^ UPWARDS DOUBLE ARROW
+ =>=> RIGHTWARDS DOUBLE ARROW
+ =v=v DOWNWARDS DOUBLE ARROW
+ <=><=> LEFT RIGHT DOUBLE ARROW
+ -V-V 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
+ _/_/ ANGLE
+ ^^ LOGICAL AND
+ vv LOGICAL OR
+ (^)(^) INTERSECTION
+ UU UNION
+ ',I',I INTEGRAL
+ .:..:..:. THEREFORE
+ ~~ TILDE OPERATOR
+ =~=~ 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
+ O+O+ CIRCLED PLUS
+ OxOx CIRCLED TIMES
+ _|_| 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
diff --git a/regress/usr.bin/mandoc/char/unicode/named.out_html b/regress/usr.bin/mandoc/char/unicode/named.out_html
index 324ed0e5c51..0141c5797c8 100644
--- a/regress/usr.bin/mandoc/char/unicode/named.out_html
+++ b/regress/usr.bin/mandoc/char/unicode/named.out_html
@@ -63,4 +63,83 @@ BEGINTEST<br/>
&#981;&#981; GREEK PHI SYMBOL<br/>
&#982;&#982; GREEK PI SYMBOL<br/>
&#1013;&#1013; GREEK LUNATE EPSILON SYMBOL<br/>
+&#8208;&#8208; HYPHEN<br/>
+&#8211;&#8211; EN DASH<br/>
+&#8212;&#8212; EM DASH<br/>
+&#8216;&#8216; LEFT SINGLE QUOTATION MARK<br/>
+&#8217;&#8217; RIGHT SINGLE QUOTATION MARK<br/>
+&#8218;&#8218; SINGLE LOW-9 QUOTATION MARK<br/>
+&#8222;&#8222; DOUBLE LOW-9 QUOTATION MARK<br/>
+&#8224;&#8224; DAGGER<br/>
+&#8225;&#8225; DOUBLE DAGGER<br/>
+&#8240;&#8240; PER MILLE SIGN<br/>
+&#8242;&#8242; PRIME<br/>
+&#8243;&#8243; DOUBLE PRIME<br/>
+&#8249;&#8249; SINGLE LEFT-POINTING ANGLE QUOTATION MARK<br/>
+&#8250;&#8250; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK<br/>
+&#8260;&#8260; FRACTION SLASH<br/>
+&#8364;&#8364;&#8364; EURO SIGN<br/>
+&#8465;&#8465; BLACK-LETTER CAPITAL I<br/>
+&#8476;&#8476; BLACK-LETTER CAPITAL R<br/>
+&#8482;&#8482; TRADE MARK SIGN<br/>
+&#8501;&#8501; ALEF SYMBOL<br/>
+&#8592;&#8592; LEFTWARDS ARROW<br/>
+&#8593;&#8593; UPWARDS ARROW<br/>
+&#8594;&#8594; RIGHTWARDS ARROW<br/>
+&#8595;&#8595; DOWNWARDS ARROW<br/>
+&#8596;&#8596; LEFT RIGHT ARROW<br/>
+&#8629;&#8629; DOWNWARDS ARROW WITH CORNER LEFTWARDS<br/>
+&#8656;&#8656; LEFTWARDS DOUBLE ARROW<br/>
+&#8657;&#8657; UPWARDS DOUBLE ARROW<br/>
+&#8658;&#8658; RIGHTWARDS DOUBLE ARROW<br/>
+&#8659;&#8659; DOWNWARDS DOUBLE ARROW<br/>
+&#8660;&#8660; LEFT RIGHT DOUBLE ARROW<br/>
+&#8704;&#8704; FOR ALL<br/>
+&#8706;&#8706; PARTIAL DIFFERENTIAL<br/>
+&#8707;&#8707; THERE EXISTS<br/>
+&#8709;&#8709; EMPTY SET<br/>
+&#8712;&#8712; ELEMENT OF<br/>
+&#8715;&#8715; CONTAINS AS MEMBER<br/>
+&#8722;&#8722; MINUS SIGN<br/>
+&#8723;&#8723; MINUS-OR-PLUS SIGN<br/>
+&#8727;&#8727; ASTERISK OPERATOR<br/>
+&#8730;&#8730; SQUARE ROOT<br/>
+&#8733;&#8733; PROPORTIONAL TO<br/>
+&#8734;&#8734; INFINITY<br/>
+&#8736;&#8736; ANGLE<br/>
+&#8743;&#8743; LOGICAL AND<br/>
+&#8744;&#8744; LOGICAL OR<br/>
+&#8745;&#8745; INTERSECTION<br/>
+&#8746;&#8746; UNION<br/>
+&#8747;&#8747; INTEGRAL<br/>
+&#8756;&#8756;&#8756; THEREFORE<br/>
+&#8764;&#8764; TILDE OPERATOR<br/>
+&#8773;&#8773; APPROXIMATELY EQUAL TO<br/>
+&#8776;&#8776; ALMOST EQUAL TO<br/>
+&#8800;&#8800; NOT EQUAL TO<br/>
+&#8801;&#8801; IDENTICAL TO<br/>
+&#8802;&#8802; NOT IDENTICAL TO<br/>
+&#8804;&#8804; LESS-THAN OR EQUAL TO<br/>
+&#8805;&#8805; GREATER-THAN OR EQUAL TO<br/>
+&#8834;&#8834; SUBSET OF<br/>
+&#8835;&#8835; SUPERSET OF<br/>
+&#8838;&#8838; SUBSET OF OR EQUAL TO<br/>
+&#8839;&#8839; SUPERSET OF OR EQUAL TO<br/>
+&#8853;&#8853; CIRCLED PLUS<br/>
+&#8855;&#8855; CIRCLED TIMES<br/>
+&#8869;&#8869; UP TACK<br/>
+&#8901;&#8901; DOT OPERATOR<br/>
+&#8968;&#8968; LEFT CEILING<br/>
+&#8969;&#8969; RIGHT CEILING<br/>
+&#8970;&#8970; LEFT FLOOR<br/>
+&#8971;&#8971; RIGHT FLOOR<br/>
+&#9130;&#9130; CURLY BRACKET EXTENSION<br/>
+&#9474;&#9474; BOX DRAWINGS LIGHT VERTICAL<br/>
+&#9633;&#9633; WHITE SQUARE<br/>
+&#9674;&#9674; LOZENGE<br/>
+&#9675;&#9675; WHITE CIRCLE<br/>
+&#9756;&#9756; WHITE LEFT POINTING INDEX<br/>
+&#9758;&#9758; WHITE RIGHT POINTING INDEX<br/>
+&#10216;&#10216; MATHEMATICAL LEFT ANGLE BRACKET<br/>
+&#10217;&#10217; MATHEMATICAL RIGHT ANGLE BRACKET<br/>
ENDTEST<br/>
diff --git a/regress/usr.bin/mandoc/char/unicode/named.out_utf8 b/regress/usr.bin/mandoc/char/unicode/named.out_utf8
index 4ee6b29239e..2fcc7a7e31c 100644
--- a/regress/usr.bin/mandoc/char/unicode/named.out_utf8
+++ b/regress/usr.bin/mandoc/char/unicode/named.out_utf8
@@ -71,6 +71,85 @@ DDEESSCCRRIIPPTTIIOONN
ϕϕ 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
+ „„ DOUBLE LOW-9 QUOTATION MARK
+ †† DAGGER
+ ‡‡ DOUBLE DAGGER
+ ‰‰ 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
+ ≅≅ 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
diff --git a/regress/usr.bin/mandoc/char/unicode/namediff.in b/regress/usr.bin/mandoc/char/unicode/namediff.in
index e4b7ba1a0a3..83daa1324d1 100644
--- a/regress/usr.bin/mandoc/char/unicode/namediff.in
+++ b/regress/usr.bin/mandoc/char/unicode/namediff.in
@@ -8,5 +8,26 @@ BEGINTEST
\[u02D9]\(a. DOT ABOVE
\[u0393]\(*G GREEK CAPITAL LETTER GAMMA
\[u03A3]\(*S GREEK CAPITAL LETTER SIGMA
+\[u201C]\(lq LEFT DOUBLE QUOTATION MARK
+\[u201D]\(rq RIGHT DOUBLE QUOTATION MARK
+\[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
+\[u239E]\[parenrighttp] RIGHT PARENTHESIS UPPER HOOK
+\[u239F]\[parenrightex] RIGHT PARENTHESIS EXTENSION
+\[u23A1]\[bracketlefttp] LEFT SQUARE BRACKET UPPER CORNER
+\[u23A2]\[bracketleftex] LEFT SQUARE BRACKET EXTENSION
+\[u23A4]\[bracketrighttp] RIGHT SQUARE BRACKET UPPER CORNER
+\[u23A5]\[bracketrightex] RIGHT SQUARE BRACKET EXTENSION
+\[u2713]\(OK CHECK MARK
ENDTEST
.fi
diff --git a/regress/usr.bin/mandoc/char/unicode/namediff.out_ascii b/regress/usr.bin/mandoc/char/unicode/namediff.out_ascii
index 4891f58cde3..0d8a8252b7c 100644
--- a/regress/usr.bin/mandoc/char/unicode/namediff.out_ascii
+++ b/regress/usr.bin/mandoc/char/unicode/namediff.out_ascii
@@ -11,6 +11,27 @@ DDEESSCCRRIIPPTTIIOONN
.. DOT ABOVE
GG GREEK CAPITAL LETTER GAMMA
SS GREEK CAPITAL LETTER SIGMA
+ ```` LEFT DOUBLE QUOTATION MARK
+ '''' RIGHT DOUBLE QUOTATION MARK
+ /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
+ \\ RIGHT PARENTHESIS UPPER HOOK
+ || RIGHT PARENTHESIS EXTENSION
+ || LEFT SQUARE BRACKET UPPER CORNER
+ || LEFT SQUARE BRACKET EXTENSION
+ || RIGHT SQUARE BRACKET UPPER CORNER
+ || RIGHT SQUARE BRACKET EXTENSION
+ \/\/ CHECK MARK
ENDTEST
diff --git a/regress/usr.bin/mandoc/char/unicode/namediff.out_html b/regress/usr.bin/mandoc/char/unicode/namediff.out_html
index 58ea4edbfb1..aab99d5d294 100644
--- a/regress/usr.bin/mandoc/char/unicode/namediff.out_html
+++ b/regress/usr.bin/mandoc/char/unicode/namediff.out_html
@@ -3,4 +3,25 @@ BEGINTEST<br/>
&#729;&#729; DOT ABOVE<br/>
&#915;&#915; GREEK CAPITAL LETTER GAMMA<br/>
&#931;&#931; GREEK CAPITAL LETTER SIGMA<br/>
+&#8220;&#8220; LEFT DOUBLE QUOTATION MARK<br/>
+&#8221;&#8221; RIGHT DOUBLE QUOTATION MARK<br/>
+&#8463;&#8463; PLANCK CONSTANT OVER TWO PI<br/>
+&#8597;&#8597; UP DOWN ARROW<br/>
+&#8661;&#8661; UP DOWN DOUBLE ARROW<br/>
+&#8711;&#8711; NABLA<br/>
+&#8713;&#8713; NOT AN ELEMENT OF<br/>
+&#8719;&#8719; N-ARY PRODUCT<br/>
+&#8720;&#8720; N-ARY COPRODUCT<br/>
+&#8721;&#8721; N-ARY SUMMATION<br/>
+&#8836;&#8836; NOT A SUBSET OF<br/>
+&#8837;&#8837; NOT A SUPERSET OF<br/>
+&#9115;&#9115; LEFT PARENTHESIS UPPER HOOK<br/>
+&#9116;&#9116; LEFT PARENTHESIS EXTENSION<br/>
+&#9118;&#9118; RIGHT PARENTHESIS UPPER HOOK<br/>
+&#9119;&#9119; RIGHT PARENTHESIS EXTENSION<br/>
+&#9121;&#9121; LEFT SQUARE BRACKET UPPER CORNER<br/>
+&#9122;&#9122; LEFT SQUARE BRACKET EXTENSION<br/>
+&#9124;&#9124; RIGHT SQUARE BRACKET UPPER CORNER<br/>
+&#9125;&#9125; RIGHT SQUARE BRACKET EXTENSION<br/>
+&#10003;&#10003; CHECK MARK<br/>
ENDTEST<br/>
diff --git a/regress/usr.bin/mandoc/char/unicode/namediff.out_utf8 b/regress/usr.bin/mandoc/char/unicode/namediff.out_utf8
index 35d18e7346f..e20837a2752 100644
--- a/regress/usr.bin/mandoc/char/unicode/namediff.out_utf8
+++ b/regress/usr.bin/mandoc/char/unicode/namediff.out_utf8
@@ -11,6 +11,27 @@ DDEESSCCRRIIPPTTIIOONN
˙˙ DOT ABOVE
ΓΓ GREEK CAPITAL LETTER GAMMA
ΣΣ GREEK CAPITAL LETTER SIGMA
+ ““ LEFT DOUBLE QUOTATION MARK
+ ”” RIGHT DOUBLE QUOTATION MARK
+ ℏℏ 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
+ ⎞⎞ RIGHT PARENTHESIS UPPER HOOK
+ ⎟⎟ RIGHT PARENTHESIS EXTENSION
+ ⎡⎡ LEFT SQUARE BRACKET UPPER CORNER
+ ⎢⎢ LEFT SQUARE BRACKET EXTENSION
+ ⎤⎤ RIGHT SQUARE BRACKET UPPER CORNER
+ ⎥⎥ RIGHT SQUARE BRACKET EXTENSION
+ ✓✓ CHECK MARK
ENDTEST
diff --git a/regress/usr.bin/mandoc/char/unicode/nogroff.in b/regress/usr.bin/mandoc/char/unicode/nogroff.in
new file mode 100644
index 00000000000..3d530040746
--- /dev/null
+++ b/regress/usr.bin/mandoc/char/unicode/nogroff.in
@@ -0,0 +1,57 @@
+.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
+\[u2022]\(bu BULLET
+\[u203E]\(rl OVERLINE
+\[u2243]\(-~ ASYMPTOTICALLY EQUAL TO
+\[u224C]\(~= ALL EQUAL TO
+\[u226A]\(<< MUCH LESS-THAN
+\[u226B]\(>> MUCH GREATER-THAN
+\[u239D]\[parenleftbp] LEFT PARENTHESIS LOWER HOOK
+\[u23A0]\[parenrightbp] RIGHT PARENTHESIS LOWER HOOK
+\[u23A3]\[bracketleftbp] LEFT SQUARE BRACKET LOWER CORNER
+\[u23A6]\[bracketrightbp] RIGHT SQUARE BRACKET LOWER CORNER
+\[u23A7]\(lt LEFT CURLY BRACKET UPPER HOOK
+\[u23A8]\(lk LEFT CURLY BRACKET MIDDLE PIECE
+\[u23A9]\(lb LEFT CURLY BRACKET LOWER HOOK
+\[u23AB]\(rt RIGHT CURLY BRACKET UPPER HOOK
+\[u23AC]\(rk RIGHT CURLY BRACKET MIDDLE PIECE
+\[u23AD]\(rb RIGHT CURLY BRACKET LOWER HOOK
+\[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
diff --git a/regress/usr.bin/mandoc/char/unicode/nogroff.out_ascii b/regress/usr.bin/mandoc/char/unicode/nogroff.out_ascii
new file mode 100644
index 00000000000..9284f2afa9c
--- /dev/null
+++ b/regress/usr.bin/mandoc/char/unicode/nogroff.out_ascii
@@ -0,0 +1,63 @@
+CHAR-UNICODE-NOGROFF(1) General Commands Manual CHAR-UNICODE-NOGROFF(1)
+
+
+
+NNAAMMEE
+ char-unicode-nogroff - characters handled differently by groff
+
+DDEESSCCRRIIPPTTIIOONN
+ 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
+ oo BULLET
+ -- OVERLINE
+ -~-~ ASYMPTOTICALLY EQUAL TO
+ ~=~= ALL EQUAL TO
+ <<<< MUCH LESS-THAN
+ >>>> MUCH GREATER-THAN
+ \\ LEFT PARENTHESIS LOWER HOOK
+ // RIGHT PARENTHESIS LOWER HOOK
+ || LEFT SQUARE BRACKET LOWER CORNER
+ || RIGHT SQUARE BRACKET LOWER CORNER
+ ,-,- LEFT CURLY BRACKET UPPER HOOK
+ {{ LEFT CURLY BRACKET MIDDLE PIECE
+ `-`- LEFT CURLY BRACKET LOWER HOOK
+ -.-. RIGHT CURLY BRACKET UPPER HOOK
+ }} RIGHT CURLY BRACKET MIDDLE PIECE
+ -'-' RIGHT CURLY BRACKET LOWER HOOK
+ 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)
diff --git a/regress/usr.bin/mandoc/char/unicode/nogroff.out_html b/regress/usr.bin/mandoc/char/unicode/nogroff.out_html
new file mode 100644
index 00000000000..04a397ef494
--- /dev/null
+++ b/regress/usr.bin/mandoc/char/unicode/nogroff.out_html
@@ -0,0 +1,51 @@
+BEGINTEST<br/>
+&#65533;&#65533; &lt;control&gt; NULL<br/>
+&#65533;&#65533; &lt;control&gt; START OF HEADING<br/>
+&#65533;&#65533; &lt;control&gt; BELL<br/>
+&#65533;&#65533; &lt;control&gt; BACKSPACE<br/>
+ &lt;control&gt; CHARACTER TABULATION<br/>
+&#65533;&#65533; &lt;control&gt; LINE FEED<br/>
+&#65533;&#65533; &lt;control&gt; LINE TABULATION<br/>
+&#65533;&#65533; &lt;control&gt; FORM FEED<br/>
+&#65533;&#65533; &lt;control&gt; CARRIAGE RETURN<br/>
+&#65533;&#65533; &lt;control&gt; ESCAPE<br/>
+&#65533;&#65533; &lt;control&gt; DELETE<br/>
+&#65533;&#65533; &lt;control&gt; 0x80<br/>
+&#65533;&#65533; &lt;control&gt; 0x81<br/>
+&#65533;&#65533; &lt;control&gt; BREAK PERMITTED HERE<br/>
+&#65533;&#65533; &lt;control&gt; NO BREAK HERE<br/>
+&#65533;&#65533; &lt;control&gt; PRIVACY MESSAGE<br/>
+&#65533;&#65533; &lt;control&gt; APPLICATION PROGRAM COMMAND<br/>
+&#8226;&#8226; BULLET<br/>
+&#8254;&#8254; OVERLINE<br/>
+&#8771;&#8771; ASYMPTOTICALLY EQUAL TO<br/>
+&#8780;&#8780; ALL EQUAL TO<br/>
+&#8810;&#8810; MUCH LESS-THAN<br/>
+&#8811;&#8811; MUCH GREATER-THAN<br/>
+&#9117;&#9117; LEFT PARENTHESIS LOWER HOOK<br/>
+&#9120;&#9120; RIGHT PARENTHESIS LOWER HOOK<br/>
+&#9123;&#9123; LEFT SQUARE BRACKET LOWER CORNER<br/>
+&#9126;&#9126; RIGHT SQUARE BRACKET LOWER CORNER<br/>
+&#9127;&#9127; LEFT CURLY BRACKET UPPER HOOK<br/>
+&#9128;&#9128; LEFT CURLY BRACKET MIDDLE PIECE<br/>
+&#9129;&#9129; LEFT CURLY BRACKET LOWER HOOK<br/>
+&#9131;&#9131; RIGHT CURLY BRACKET UPPER HOOK<br/>
+&#9132;&#9132; RIGHT CURLY BRACKET MIDDLE PIECE<br/>
+&#9133;&#9133; RIGHT CURLY BRACKET LOWER HOOK<br/>
+&#64256;&#64256; LATIN SMALL LIGATURE FF<br/>
+&#64257;&#64257; LATIN SMALL LIGATURE FI<br/>
+&#64258;&#64258; LATIN SMALL LIGATURE FL<br/>
+&#64259;&#64259; LATIN SMALL LIGATURE FFI<br/>
+&#64260;&#64260; LATIN SMALL LIGATURE FFL<br/>
+&#65533; REPLACEMENT CHARACTER<br/>
+&#65534; &lt;undefined&gt;<br/>
+&#65535; &lt;undefined&gt;<br/>
+&#65536; LINEAR B SYLLABLE B008 A<br/>
+&#1048573; &lt;Plane 15 Private Use, Last&gt;<br/>
+&#1048574; &lt;undefined&gt;<br/>
+&#1048575; &lt;undefined&gt;<br/>
+&#1048576; &lt;Plane 16 Private Use, First&gt;<br/>
+&#1114109; &lt;Plane 16 Private Use, Last&gt;<br/>
+&#1114110; &lt;undefined&gt;<br/>
+&#1114111; &lt;undefined&gt;<br/>
+ENDTEST<br/>
diff --git a/regress/usr.bin/mandoc/char/unicode/nogroff.out_utf8 b/regress/usr.bin/mandoc/char/unicode/nogroff.out_utf8
new file mode 100644
index 00000000000..ed7cf99bc23
--- /dev/null
+++ b/regress/usr.bin/mandoc/char/unicode/nogroff.out_utf8
@@ -0,0 +1,63 @@
+CHAR-UNICODE-NOGROFF(1) General Commands Manual CHAR-UNICODE-NOGROFF(1)
+
+
+
+NNAAMMEE
+ char-unicode-nogroff - characters handled differently by groff
+
+DDEESSCCRRIIPPTTIIOONN
+ 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
+ •• BULLET
+ ‾‾ OVERLINE
+ ≃≃ ASYMPTOTICALLY EQUAL TO
+ ≌≌ ALL EQUAL TO
+ ≪≪ MUCH LESS-THAN
+ ≫≫ MUCH GREATER-THAN
+ ⎝⎝ LEFT PARENTHESIS LOWER HOOK
+ ⎠⎠ RIGHT PARENTHESIS LOWER HOOK
+ ⎣⎣ LEFT SQUARE BRACKET LOWER CORNER
+ ⎦⎦ RIGHT SQUARE BRACKET LOWER CORNER
+ ⎧⎧ LEFT CURLY BRACKET UPPER HOOK
+ ⎨⎨ LEFT CURLY BRACKET MIDDLE PIECE
+ ⎩⎩ LEFT CURLY BRACKET LOWER HOOK
+ ⎫⎫ RIGHT CURLY BRACKET UPPER HOOK
+ ⎬⎬ RIGHT CURLY BRACKET MIDDLE PIECE
+ ⎭⎭ RIGHT CURLY BRACKET LOWER HOOK
+ 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)