POSIX doesn’t explicitly specify (or explicitly un-specify) what happens
when a backslash in the format string is followed by a character other
than those listed by POSIX with special behavior.  OpenBSD’s printf,
at least, warns about it and prints the literal character following
the backslash.  That is:

        $ printf '\(\n'
        printf: unknown escape sequence `\('
        (

Fixes: 4adc25dd2156 (“Add smoke test for HTML output.”)
---
 src/roff/groff/tests/html-device-smoke-test.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/roff/groff/tests/html-device-smoke-test.sh 
b/src/roff/groff/tests/html-device-smoke-test.sh
index 8d2aad7fd..d8fa234a8 100755
--- a/src/roff/groff/tests/html-device-smoke-test.sh
+++ b/src/roff/groff/tests/html-device-smoke-test.sh
@@ -103,7 +103,7 @@ printf '\303\241' | "$groff" -k -Thtml | grep -qx 
'<p>&aacute;</p>' \
 # We test compatibility-mode HTML output somewhat differently since
 # preconv only emits groffish \[uXXXX] escapes for non-ASCII codepoints.
 echo "checking -C -k -Thtml" >&2
-printf "\('a" | "$groff" -C -k -Thtml | grep -qx '<p>&aacute;</p>' \
+printf "\\\\('a" | "$groff" -C -k -Thtml | grep -qx '<p>&aacute;</p>' \
     || wail
 
 test -z "$fail"
-- 
2.48.1


Reply via email to