summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--regress/usr.bin/mandoc/roff/nr/predef.in4
-rw-r--r--regress/usr.bin/mandoc/roff/nr/predef.out_ascii2
-rw-r--r--regress/usr.bin/mandoc/roff/string/dotT.in6
-rw-r--r--regress/usr.bin/mandoc/roff/string/dotT.out_ascii7
-rw-r--r--regress/usr.bin/mandoc/roff/string/dotT.out_html6
-rw-r--r--regress/usr.bin/mandoc/roff/string/dotT.out_markdown4
-rw-r--r--regress/usr.bin/mandoc/roff/string/dotT.out_utf86
-rw-r--r--usr.bin/mandoc/mandoc.c25
8 files changed, 37 insertions, 23 deletions
diff --git a/regress/usr.bin/mandoc/roff/nr/predef.in b/regress/usr.bin/mandoc/roff/nr/predef.in
index 480a052ec8a..72d78f09af4 100644
--- a/regress/usr.bin/mandoc/roff/nr/predef.in
+++ b/regress/usr.bin/mandoc/roff/nr/predef.in
@@ -1,4 +1,4 @@
-.\" $OpenBSD: predef.in,v 1.3 2017/07/04 14:53:27 schwarze Exp $
+.\" $OpenBSD: predef.in,v 1.4 2020/10/24 22:52:34 schwarze Exp $
.TH NR-PREDEF 1 "August 29, 2015"
.SH NAME
nr-predef \- pre-defined read-only integer number registers
@@ -18,7 +18,7 @@ ascii mode: \n(.A
groff mode: \n(.g
horizontal resolution: \n(.H
adjustment mode: \n(.j
-output device defined: \n(.T
+output device defined: \n(.T \n[.T]
vertical resolution: \n(.V
.mym
.mym one
diff --git a/regress/usr.bin/mandoc/roff/nr/predef.out_ascii b/regress/usr.bin/mandoc/roff/nr/predef.out_ascii
index 6973d296186..8634ce339e7 100644
--- a/regress/usr.bin/mandoc/roff/nr/predef.out_ascii
+++ b/regress/usr.bin/mandoc/roff/nr/predef.out_ascii
@@ -10,7 +10,7 @@ DDEESSCCRRIIPPTTIIOONN
groff mode: 1
horizontal resolution: 24
adjustment mode: 0
- output device defined: 1
+ output device defined: 1 1
vertical resolution: 40
user defined macro with 0 arguments:
user defined macro with 1 arguments: one
diff --git a/regress/usr.bin/mandoc/roff/string/dotT.in b/regress/usr.bin/mandoc/roff/string/dotT.in
index 62b4a959303..feef0ab9ae8 100644
--- a/regress/usr.bin/mandoc/roff/string/dotT.in
+++ b/regress/usr.bin/mandoc/roff/string/dotT.in
@@ -1,5 +1,5 @@
-.\" $OpenBSD: dotT.in,v 1.2 2019/01/07 06:51:37 schwarze Exp $
-.Dd $Mdocdate: January 7 2019 $
+.\" $OpenBSD: dotT.in,v 1.3 2020/10/24 22:52:34 schwarze Exp $
+.Dd $Mdocdate: October 24 2020 $
.Dt STRING-DOTT 1
.Os
.Sh NAME
@@ -9,9 +9,11 @@
BEGINTEST
.Pp
We are using the \*(.T device.
+It can also be written as the \*[.T] device.
.Pp
.ds .T name
The device \*(.T can be overridden.
+Both escape forms work for the \*[.T].
.nf
ENDTEST
.br
diff --git a/regress/usr.bin/mandoc/roff/string/dotT.out_ascii b/regress/usr.bin/mandoc/roff/string/dotT.out_ascii
index 26f53380058..283043045b8 100644
--- a/regress/usr.bin/mandoc/roff/string/dotT.out_ascii
+++ b/regress/usr.bin/mandoc/roff/string/dotT.out_ascii
@@ -6,10 +6,11 @@ NNAAMMEE
DDEESSCCRRIIPPTTIIOONN
BEGINTEST
- We are using the ascii device.
+ We are using the ascii device. It can also be written as the ascii
+ device.
- The device name can be overridden.
+ The device name can be overridden. Both escape forms work for the name.
ENDTEST
end of file
-OpenBSD January 7, 2019 OpenBSD
+OpenBSD October 24, 2020 OpenBSD
diff --git a/regress/usr.bin/mandoc/roff/string/dotT.out_html b/regress/usr.bin/mandoc/roff/string/dotT.out_html
index 51ab1411619..a44d9cef980 100644
--- a/regress/usr.bin/mandoc/roff/string/dotT.out_html
+++ b/regress/usr.bin/mandoc/roff/string/dotT.out_html
@@ -1,2 +1,4 @@
-<p class="Pp">We are using the html device.</p>
-<p class="Pp">The device name can be overridden.</p>
+<p class="Pp">We are using the html device. It can also be written as the html
+ device.</p>
+<p class="Pp">The device name can be overridden. Both escape forms work for the
+ name.</p>
diff --git a/regress/usr.bin/mandoc/roff/string/dotT.out_markdown b/regress/usr.bin/mandoc/roff/string/dotT.out_markdown
index d7400eaaaaa..9ec52b1ac2b 100644
--- a/regress/usr.bin/mandoc/roff/string/dotT.out_markdown
+++ b/regress/usr.bin/mandoc/roff/string/dotT.out_markdown
@@ -9,9 +9,11 @@ STRING-DOTT(1) - General Commands Manual
BEGINTEST
We are using the markdown device.
+It can also be written as the markdown device.
The device name can be overridden.
+Both escape forms work for the name.
ENDTEST
end of file
-OpenBSD - January 7, 2019
+OpenBSD - October 24, 2020
diff --git a/regress/usr.bin/mandoc/roff/string/dotT.out_utf8 b/regress/usr.bin/mandoc/roff/string/dotT.out_utf8
index 63bbf5fdf95..2c89f41668e 100644
--- a/regress/usr.bin/mandoc/roff/string/dotT.out_utf8
+++ b/regress/usr.bin/mandoc/roff/string/dotT.out_utf8
@@ -6,10 +6,10 @@ NNAAMMEE
DDEESSCCRRIIPPTTIIOONN
BEGINTEST
- We are using the utf8 device.
+ We are using the utf8 device. It can also be written as the utf8 device.
- The device name can be overridden.
+ The device name can be overridden. Both escape forms work for the name.
ENDTEST
end of file
-OpenBSD January 7, 2019 OpenBSD
+OpenBSD October 24, 2020 OpenBSD
diff --git a/usr.bin/mandoc/mandoc.c b/usr.bin/mandoc/mandoc.c
index 0b2d301dba7..265393d8a18 100644
--- a/usr.bin/mandoc/mandoc.c
+++ b/usr.bin/mandoc/mandoc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mandoc.c,v 1.85 2020/01/19 16:16:32 schwarze Exp $ */
+/* $OpenBSD: mandoc.c,v 1.86 2020/10/24 22:52:34 schwarze Exp $ */
/*
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011-2015, 2017-2020 Ingo Schwarze <schwarze@openbsd.org>
@@ -201,7 +201,18 @@ mandoc_escape(const char **end, const char **start, int *sz)
case 'O':
case 'V':
case 'Y':
- gly = (*start)[-1] == 'f' ? ESCAPE_FONT : ESCAPE_IGNORE;
+ case '*':
+ switch ((*start)[-1]) {
+ case 'f':
+ gly = ESCAPE_FONT;
+ break;
+ case '*':
+ gly = ESCAPE_DEVICE;
+ break;
+ default:
+ gly = ESCAPE_IGNORE;
+ break;
+ }
switch (**start) {
case '(':
if ((*start)[-1] == 'O')
@@ -236,13 +247,6 @@ mandoc_escape(const char **end, const char **start, int *sz)
break;
}
break;
- case '*':
- if (strncmp(*start, "(.T", 3) != 0)
- abort();
- gly = ESCAPE_DEVICE;
- *start = ++*end;
- *sz = 2;
- break;
/*
* These escapes are of the form \X'Y', where 'X' is the trigger
@@ -457,6 +461,9 @@ mandoc_escape(const char **end, const char **start, int *sz)
+ 1 == *sz)
gly = ESCAPE_UNICODE;
break;
+ case ESCAPE_DEVICE:
+ assert(*sz == 2 && (*start)[0] == '.' && (*start)[1] == 'T');
+ break;
default:
break;
}