summaryrefslogtreecommitdiffstats
path: root/regress/roff/nr
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2022-06-03 12:15:55 +0000
committerIngo Schwarze <schwarze@openbsd.org>2022-06-03 12:15:55 +0000
commitf1a1415f2ac83d7454ab33bab918fe77f90664bd (patch)
treecca4619f0ecb728de9a8697ed509838d8c4186bd /regress/roff/nr
parent4de2134e6e8bcf00651ea443b38238baef53467e (diff)
downloadmandoc-f1a1415f2ac83d7454ab33bab918fe77f90664bd.tar.gz
During identifier parsing, handle undefined escape sequences
in the same way as groff: * \\ is always reduced to \ * \. is always reduced to . * other undefined escape sequences are usually reduced to the escape name, for example \G to G, except during the expansion of expanding escape sequences having the standard argument form (in particular \* and \n), in which case the backslash is preserved literally. Yes, this is confusing indeed. For example, the following have the same meaning: * .ds \. and .ds . which is not the same as .ds \\. * \*[\.] and \*[.] which is not the same as \*[\\.] * .ds \G and .ds G which is not the same as .ds \\G * \*[\G] and \*[\\G] which is not the same as \*[G] <- sic! To feel less dirty, have a leaning toothpick, if you are so inclined. This patch also slightly improves the string shown by the "escaped character not allowed in a name" error message.
Diffstat (limited to 'regress/roff/nr')
-rw-r--r--regress/roff/nr/escname.in8
-rw-r--r--regress/roff/nr/escname.out_ascii4
-rw-r--r--regress/roff/nr/escname.out_lint7
3 files changed, 11 insertions, 8 deletions
diff --git a/regress/roff/nr/escname.in b/regress/roff/nr/escname.in
index f81627e1..d4625552 100644
--- a/regress/roff/nr/escname.in
+++ b/regress/roff/nr/escname.in
@@ -1,5 +1,5 @@
-.\" $OpenBSD: escname.in,v 1.3 2017/07/04 14:53:27 schwarze Exp $
-.TH NR-ESCNAME 1 "June 29, 2014"
+.\" $OpenBSD: escname.in,v 1.4 2022/06/03 11:50:25 schwarze Exp $
+.TH NR-ESCNAME 1 "June 3, 2022"
.SH NAME
nr-escname \- escape sequences in register names
.SH DESCRIPTION
@@ -7,7 +7,9 @@ nr-escname \- escape sequences in register names
.nr second 2
.nr first\\second 3
.nr first\esecond 4
-\n[first] \n[second] \n[first\\second]
+.nr first\.second 5
+.nr first\Gsecond 6
+\n[first] \n[second] \n[first\\second] \n[first.second] \n[firstGsecond]
.PP
.rr first\esecond
\n[first] \n[second] \n[first\\second]
diff --git a/regress/roff/nr/escname.out_ascii b/regress/roff/nr/escname.out_ascii
index ca2d50f5..d0301af9 100644
--- a/regress/roff/nr/escname.out_ascii
+++ b/regress/roff/nr/escname.out_ascii
@@ -4,7 +4,7 @@ NNAAMMEE
nr-escname - escape sequences in register names
DDEESSCCRRIIPPTTIIOONN
- 1 2 3
+ 1 2 3 5 6
0 2 3
@@ -12,4 +12,4 @@ DDEESSCCRRIIPPTTIIOONN
incomplete:
-OpenBSD June 29, 2014 NR-ESCNAME(1)
+OpenBSD June 3, 2022 NR-ESCNAME(1)
diff --git a/regress/roff/nr/escname.out_lint b/regress/roff/nr/escname.out_lint
index a2dabebe..edec17fa 100644
--- a/regress/roff/nr/escname.out_lint
+++ b/regress/roff/nr/escname.out_lint
@@ -1,4 +1,5 @@
mandoc: escname.in:9:5: ERROR: escaped character not allowed in a name: first\e
-mandoc: escname.in:12:5: ERROR: escaped character not allowed in a name: first\e
-mandoc: escname.in:18:13: WARNING: invalid escape sequence: \n[second
-mandoc: escname.in:18:12: STYLE: whitespace at end of input line
+mandoc: escname.in:11:10: WARNING: undefined escape, printing literally: \G
+mandoc: escname.in:14:5: ERROR: escaped character not allowed in a name: first\e
+mandoc: escname.in:20:13: WARNING: invalid escape sequence: \n[second
+mandoc: escname.in:20:12: STYLE: whitespace at end of input line