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/

Attachment: signature.asc
Description: PGP signature

Reply via email to