Rationale: Not interpreting $ and \ in the here documents is a better default
than interpreting them.
* gettext-tools/tests/xgettext-*: Write 'cat <<\EOF' instead of 'cat <<EOF',
when no shell dollar-substitution and backslash-interpretation is needed.
# Test Rust support: Simple things.
-cat <<EOF > xg-rs-1.rs
+cat <<\EOF > xg-rs-1.rs
use gettext_rs::gettext;
pub trait TestCase {
${XGETTEXT} --omit-header --no-location -k'gettext!' -c -d xg-rs-1.tmp xg-rs-1.rs || Exit 1
LC_ALL=C tr -d '\r' < xg-rs-1.tmp.po > xg-rs-1.po || Exit 1
-cat <<EOF > xg-rs-1.ok
+cat <<\EOF > xg-rs-1.ok
#. standard usage
msgid "Test String 1"
msgstr ""
# Test Rust support: plurals.
-cat <<EOF > xg-rs-4.rs
+cat <<\EOF > xg-rs-4.rs
pub trait TestCase {
fn main () {
ngettext("test 1", "plural test");
-d xg-rs-4.tmp xg-rs-4.rs || Exit 1
LC_ALL=C tr -d '\r' < xg-rs-4.tmp.po > xg-rs-4.po || Exit 1
-cat <<EOF > xg-rs-4.ok
+cat <<\EOF > xg-rs-4.ok
msgid "test 1"
msgid_plural "plural test"
msgstr[0] ""
${XGETTEXT} --omit-header --no-location -d xg-rs-5.tmp xg-rs-5.rs || Exit 1
LC_ALL=C tr -d '\r' < xg-rs-5.tmp.po > xg-rs-5.po || Exit 1
-cat <<EOF > xg-rs-5.ok
+cat <<\EOF > xg-rs-5.ok
msgid "help"
msgstr ""
${XGETTEXT} --omit-header --no-location -d xg-rs-6a.tmp xg-rs-6.rs || Exit 1
LC_ALL=C tr -d '\r' < xg-rs-6a.tmp.po > xg-rs-6a.po || Exit 1
-cat <<EOF > xg-rs-6a.ok
+cat <<\EOF > xg-rs-6a.ok
msgid "Hello1"
msgstr ""
${XGETTEXT} --omit-header --no-location -k'tr!' -d xg-rs-6b.tmp xg-rs-6.rs || Exit 1
LC_ALL=C tr -d '\r' < xg-rs-6b.tmp.po > xg-rs-6b.po || Exit 1
-cat <<EOF > xg-rs-6b.ok
+cat <<\EOF > xg-rs-6b.ok
#, rust-format
msgid "Hello {}"
msgstr ""
${XGETTEXT} --omit-header --no-location --flag=format:1:rust-format -d xg-rs-7.tmp xg-rs-7.rs || Exit 1
LC_ALL=C tr -d '\r' < xg-rs-7.tmp.po > xg-rs-7.po || Exit 1
-cat <<EOF > xg-rs-7.ok
+cat <<\EOF > xg-rs-7.ok
msgid "Hello10"
msgstr ""