Hi Branden, > > Heirloom sh is happy with it if I replace $() with ``. > > Oy vey. That's a cure worse than the disease!
I was just using that as an another data point; a Bourne shell doesn't require the single quote to be escaped. Returning to the original, http://git.savannah.gnu.org/cgit/groff.git/tree/src/roff/groff/tests/on-latin1-device-oq-is-0x27.sh expected="' = '" actual=$("$groff" -Tlatin1 <<EOF .pl 1v \[oq] = ' EOF ) diff -u <(echo "$expected") <(echo "$actual") It looks like the test harness needs a common shell script that provides convenience functions. Then the test script can read more like # All run under `set -eu' with a trap on EXIT. title 'Check -Tlatin1's \(oq' in=$(tmp) want=$(tmp) # Values won't need quoting. cat >$in <<\E .pl 1 \e(oq = \(oq E echo '\(oq = `' >$want got=$(tmp) err=$(tmp) run "$groff" -Tlatin <$in >$got 2>$err # Allows inserting valgrind(1). empty $err equal $got $want # If different, shows start of diff output. cleanup # Removes tmp files if tests successful. with the functions evolving over time to suit groff's needs, and presumably fitting in with Automake's parallel-test harness, if that's what's being used. -- Cheers, Ralph.