Follow-up Comment #2, bug #67375 (group groff): The answer is yes, if their unescaped forms would be valid too. They correctly degrade to ordinary characters.
$ git diff
diff --git a/src/roff/groff/tests/check-delimiter-validity.sh
b/src/roff/groff/tests/check-delimiter-validity.sh
index fc02522d3..671e339ef 100755
--- a/src/roff/groff/tests/check-delimiter-validity.sh
+++ b/src/roff/groff/tests/check-delimiter-validity.sh
@@ -81,6 +81,22 @@ do
echo "$output" | grep -Eqx '1 +2 +3' || wail
done
+# Test unparameterized and invalid escape sequences. The latter degrade
+# to ordinary characters.
+for c in E G I J K P T U W \
+ a c d e i j p q r t u y \
+ 0 1 2 3 4 5 6 7 8 9 + - / % '<' '>' = '&' : ')' . '|' \
+ "'" ',' ';' \
+ '@' ']' '^' '_' \
+ '`' '{' '}' '~'
+do
+ echo 'checking validity of backslash-"'$c'"' \
+ "as escape sequence delimiter when not in compatbility mode" >&2
+ output=$(printf '\\l%c1n+2n\\&0%c\n' "$c" "$c" \
+ | "$groff" -w delim -T ascii | sed '/^$/d')
+ echo "$output" | grep -Fqx 000 || wail
+done
+
for c in 0 1 2 3 4 5 6 7 8 9 + - '(' . '|'
do
echo "checking invalidity of '$c' as escape sequence delimiter" \
Example of output:
checking validity of backslash-"E" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"G" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"I" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"J" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"K" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"P" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"T" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"U" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"W" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"a" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"c" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"d" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"e" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"i" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"j" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"p" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"q" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"r" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"t" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"u" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"y" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"0" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '0' is not allowed as a delimiter
...FAILED
checking validity of backslash-"1" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '1' is not allowed as a delimiter
...FAILED
checking validity of backslash-"2" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '2' is not allowed as a delimiter
...FAILED
checking validity of backslash-"3" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '3' is not allowed as a delimiter
...FAILED
checking validity of backslash-"4" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '4' is not allowed as a delimiter
...FAILED
checking validity of backslash-"5" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '5' is not allowed as a delimiter
...FAILED
checking validity of backslash-"6" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '6' is not allowed as a delimiter
...FAILED
checking validity of backslash-"7" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '7' is not allowed as a delimiter
...FAILED
checking validity of backslash-"8" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '8' is not allowed as a delimiter
...FAILED
checking validity of backslash-"9" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '9' is not allowed as a delimiter
...FAILED
checking validity of backslash-"+" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '+' is not allowed as a delimiter
...FAILED
checking validity of backslash-"-" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '-' is not allowed as a delimiter
...FAILED
checking validity of backslash-"/" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"%" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"<" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-">" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"=" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"&" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-":" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-")" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"." as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '.' is not allowed as a delimiter
...FAILED
checking validity of backslash-"|" as escape sequence delimiter when not in
compatbility mode
troff:<standard input>:1: error: character '|' is not allowed as a delimiter
...FAILED
checking validity of backslash-"'" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"," as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-";" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"@" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"]" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"^" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"_" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"`" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"{" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"}" as escape sequence delimiter when not in
compatbility mode
checking validity of backslash-"~" as escape sequence delimiter when not in
compatbility mode
1. I'll be separating the invalid ones out of this specific check.
2. I plan to restore the validity of `\0`, `\|`, and `\^` as escape sequence
delimiters. See the 27th comment to bug #67372.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?67375>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
