rm -fr intl m4 po ABOUT-NLS config.rpath
# Check for copying libintl source of an older version.
-cat <<EOF >configure.ac
+cat <<\EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
rm -fr m4 po ABOUT-NLS config.rpath
# Check for AM_GNU_GETTEXT_REQUIRE_VERSION.
-cat <<EOF >configure.ac
+cat <<\EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
# Check for the case where both AM_GNU_GETTEXT_REQUIRE_VERSION and
# AM_GNU_GETTEXT_VERSION are used. Once with libintl source.
-cat <<EOF >configure.ac
+cat <<\EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
# Check for the case where both AM_GNU_GETTEXT_REQUIRE_VERSION and
# AM_GNU_GETTEXT_VERSION are used. Once without libintl source.
-cat <<EOF >configure.ac
+cat <<\EOF >configure.ac
AC_INIT
AC_CONFIG_SRCDIR(hello.c)
${XGETTEXT} -o fc3.tmp --omit-header --no-location "$wabs_srcdir"/format-c-3-prg.c || Exit 1
LC_ALL=C tr -d '\r' < fc3.tmp > fc3.pot || Exit 1
-cat <<EOF > fc3.ok
+cat <<\EOF > fc3.ok
msgid "the president"
msgstr ""
: ${DIFF=diff}
${DIFF} fc3.ok fc3.pot || Exit 1
-cat <<EOF > fc3-de.po
+cat <<\EOF > fc3-de.po
msgid "the president"
msgstr "der Vorsitzende"
${MSGUNFMT} -o fc3-de.po.tmp fc3-dir/fr/LC_MESSAGES/fc3.mo || Exit 1
LC_ALL=C tr -d '\r' < fc3-de.po.tmp > fc3-de.po.un || Exit 1
-cat <<EOF > fc3-de.po.red
+cat <<\EOF > fc3-de.po.red
msgid "father of %d children"
msgstr "Vater von %d Kindern"
${XGETTEXT} -o fc4.tmp --omit-header --no-location "$wabs_srcdir"/format-c-4-prg.c || Exit 1
LC_ALL=C tr -d '\r' < fc4.tmp > fc4.pot || Exit 1
-cat <<EOF > fc4.ok
+cat <<\EOF > fc4.ok
msgid "the president"
msgstr ""
: ${DIFF=diff}
${DIFF} fc4.ok fc4.pot || Exit 1
-cat <<EOF > fc4-de.po
+cat <<\EOF > fc4-de.po
msgid "the president"
msgstr "der Vorsitzende"
${MSGUNFMT} -o fc4-de.po.tmp fc4-dir/fr/LC_MESSAGES/fc4.mo || Exit 1
LC_ALL=C tr -d '\r' < fc4-de.po.tmp > fc4-de.po.un || Exit 1
-cat <<EOF > fc4-de.po.red
+cat <<\EOF > fc4-de.po.red
msgid "father of %d child"
msgid_plural "father of %<PRId8> children"
msgstr[0] "Vater eines Kindes"
${XGETTEXT} -o fc5.tmp --omit-header --no-location "$wabs_srcdir"/format-c-5-prg.c || Exit 1
LC_ALL=C tr -d '\r' < fc5.tmp > fc5.pot || Exit 1
-cat <<EOF > fc5.ok
+cat <<\EOF > fc5.ok
msgid "the president"
msgstr ""
${DIFF} fc5.ok fc5.pot || Exit 1
# This should better be Farsi, not German. Can some translator help me?
-cat <<EOF > fa.po
+cat <<\EOF > fa.po
msgid "the president"
msgstr "der Vorsitzende"
${GETTEXT} --env LC_ALL=en -e test 'SYS_(C)\n' | LC_ALL=C tr -d '\r' > gt-test1.out
# Create correct file.
-cat <<EOF > gtmf-test1.ok
+cat <<\EOF > gtmf-test1.ok
MSGFMT(1) portable message object file compiler
Copyright (C) 1995 Free Software Foundation
Report bugs to <bug-gnu-utils@gnu.org>
${MSGFMT} -o in-0/C/LC_MESSAGES/tstprog.mo "$wabs_srcdir"/intl-1.po
: ${DIFF=diff}
-cat <<EOF > in-0.ok
+cat <<\EOF > in-0.ok
cheese
EOF
${MSGFMT} -o in-1/fr/LC_MESSAGES/tstprog.mo "$wabs_srcdir"/intl-1.po
: ${DIFF=diff}
-cat <<EOF > in-1.ok
+cat <<\EOF > in-1.ok
fromage
EOF
${MSGFMT} -o in-2-2/fr/LC_MESSAGES/tstprog.mo "$wabs_srcdir"/intl-2-2.po
: ${DIFF=diff}
-cat <<EOF > in-2-1.ok
+cat <<\EOF > in-2-1.ok
Käse
EOF
-cat <<EOF > in-2-2.ok
+cat <<\EOF > in-2-2.ok
Käse
EOF
${MSGFMT} -o in-3-2/fr/LC_MESSAGES/tstprog.mo "$wabs_srcdir"/intl-2-2.po
: ${DIFF=diff}
-cat <<EOF > in-3-1.ok
+cat <<\EOF > in-3-1.ok
Käse
EOF
-cat <<EOF > in-3-2.ok
+cat <<\EOF > in-3-2.ok
Käse
EOF
${MSGFMT} -o in-6/fr/LC_MESSAGES/tstprog.mo "$wabs_srcdir"/intl-1.po
: ${DIFF=diff}
-cat <<EOF > in-6.ok
+cat <<\EOF > in-6.ok
fromage
EOF
test -d in-7/fr_FR || mkdir in-7/fr_FR
test -d in-7/fr_FR/LC_MESSAGES || mkdir in-7/fr_FR/LC_MESSAGES
-cat <<EOF > in-7l.po
+cat <<\EOF > in-7l.po
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
msgstr "chien"
EOF
-cat <<EOF > in-7-1.po
+cat <<\EOF > in-7-1.po
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
msgstr "fromage"
EOF
-cat <<EOF > in-7-2.po
+cat <<\EOF > in-7-2.po
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
msgstr "camembert"
EOF
-cat <<EOF > in-7-3.po
+cat <<\EOF > in-7-3.po
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
${MSGFMT} -o in-7/fr/LC_MESSAGES/tstbar.mo in-7-3.po
: ${DIFF=diff}
-cat <<EOF > in-7.ok
+cat <<\EOF > in-7.ok
chien
confiture
camembert
${MSGFMT} -o in-sl-1/de_DE/LC_MESSAGES/tstprog.mo "$wabs_srcdir"/intl-setlocale-1-1.po
${MSGFMT} -o in-sl-1/fr_FR/LC_MESSAGES/tstprog.mo "$wabs_srcdir"/intl-setlocale-1-2.po
-cat <<EOF > in-sl-1.ok
+cat <<\EOF > in-sl-1.ok
String1 - Lang1: 1st string
String2 - Lang1: 2nd string
String1 - Lang2: 1st string
${MSGFMT} -o in-th-2/de/LC_MESSAGES/tstthread.mo "$wabs_srcdir"/intl-thread-2-2.po
: ${DIFF=diff}
-cat <<EOF > in-th-2.ok
+cat <<\EOF > in-th-2.ok
beauté
Schönheit
beauté
${XGETTEXT} -o prog.tmp --omit-header --no-location -k_ prog.c || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
#, c-format
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location -k_ prog.cc || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location -k_ prog.cc || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location prog.lisp || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location program.cs || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location prog.el || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location prog.awk || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location prog.scm || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location Program.java || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location prog.js || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location prog.jl || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location -k_ prog.m || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
#, c-format
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o pascalprog.tmp --omit-header --add-location pascalprog.${suffix} || Exit 1
LC_ALL=C tr -d '\r' < pascalprog.tmp > pascalprog.pot || Exit 1
-cat <<EOF > pascalprog.ok
+cat <<\EOF > pascalprog.ok
#: pascalprog.question
msgid "'Your command, please?', asked the waiter."
msgstr ""
-o prog.tmp --omit-header --no-location program1.pl || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
-o prog.tmp --omit-header --no-location program2.pl || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location prog.php || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location prog1.py || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location prog2.py || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --add-location prog.rst || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
#: rstconv.help
msgid ""
"rstconv [-h|--help] Displays this help\n"
: ${RSTCONV=rstconv}
if (${RSTCONV} -o prog.pot -i prog.rst) >/dev/null 2>&1; then
-cat <<EOF > prog.ok1
+cat <<\EOF > prog.ok1
#: rstconv:help
msgid "rstconv [-h|--help] Displays this help\nrstconv options Convert rst file\n\nOptions are:\n -i file Use specified file instead of stdin as input .rst (OPTIONAL)\n -o file Write output to specified file (REQUIRED)\n -f format Specifies the output format:\n po GNU gettext .po (portable) format (DEFAULT)\n"
msgstr ""
EOF
-cat <<EOF > prog.ok2
+cat <<\EOF > prog.ok2
#: rstconv:help
msgid ""
"rstconv [-h|--help] Displays this help\n"
${XGETTEXT} -o prog.tmp --omit-header --no-location prog.st || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header -k_ program.tcl || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
#: program.tcl:5
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location prog.vala || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
${XGETTEXT} -o prog.tmp --omit-header --no-location prog.ycp || Exit 1
LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1
-cat <<EOF > prog.ok
+cat <<\EOF > prog.ok
msgid "'Your command, please?', asked the waiter."
msgstr ""
# Verify that msgcat doesn't introduce alternative syntax if all translations
# have the same msgstr.
-cat <<EOF > mcat-test1.in1
+cat <<\EOF > mcat-test1.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "eins"
EOF
-cat <<EOF > mcat-test1.in2
+cat <<\EOF > mcat-test1.in2
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
# Test --add-location=file option.
-cat <<EOF > mcat-test19.in1
+cat <<\EOF > mcat-test19.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "eins"
EOF
-cat <<EOF > mcat-test19.in2
+cat <<\EOF > mcat-test19.in2
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
# Verify --sort-by-file.
-cat <<EOF > mcat-test20.in
+cat <<\EOF > mcat-test20.in
#: clients/inst_language.ycp:119
msgid "one"
msgstr "1"
# Verify 'msgcat --sort-output'
-cat <<EOF > mcat-test7.in1
+cat <<\EOF > mcat-test7.in1
#: clients/inst_language.ycp:119
msgid "two"
msgstr "2"
# Test a succeeding comparison.
-cat <<EOF > mc-test1.in1
+cat <<\EOF > mc-test1.in1
msgid "one" msgstr "first"
msgid "two" msgstr "second"
msgid "three" msgstr "third"
EOF
-cat <<EOF > mc-test1.in2
+cat <<\EOF > mc-test1.in2
msgid "three" msgstr ""
msgid "one" msgstr ""
msgid "two" msgstr ""
# Test a failing comparison.
-cat <<EOF > mc-test2.in1
+cat <<\EOF > mc-test2.in1
msgid "one" msgstr "first"
msgid "two" msgstr "second"
msgid "three" msgstr "third"
msgid "four" msgstr "fourth"
EOF
-cat <<EOF > mc-test2.in2
+cat <<\EOF > mc-test2.in2
msgid "thre" msgstr "" #i.e. pretend a typo in the program
msgid "one" msgstr ""
msgid "two" msgstr ""
LC_MESSAGES=C LC_ALL= \
${MSGCMP} mc-test2.in1 mc-test2.in2 2>&1 | grep -v '^==' | sed -e 's|[^ ]*\\msgcmp\.exe|msgcmp|' -e 's|^msgcmp\.exe|msgcmp|' -e 's|^/cygdrive/[^ ]*/msgcmp|msgcmp|' | LC_ALL=C tr -d '\r' > mc-test2.out
-cat <<EOF > mc-test2.ok
+cat <<\EOF > mc-test2.ok
mc-test2.in2:1: this message is used but not defined...
mc-test2.in1:3: ...but this definition is similar
mc-test2.in1:4: warning: this message is not used
# Test a failing comparison with Java .properties syntax.
-cat <<EOF > mc-test3.in1
+cat <<\EOF > mc-test3.in1
one=first
two=second
three=third
four=fourth
EOF
-cat <<EOF > mc-test3.in2
+cat <<\EOF > mc-test3.in2
!thre=
!one=
!two=
LC_MESSAGES=C LC_ALL= \
${MSGCMP} --properties-input mc-test3.in1 mc-test3.in2 2>&1 | grep -v '^==' | sed -e 's|[^ ]*\\msgcmp\.exe|msgcmp|' -e 's|^msgcmp\.exe|msgcmp|' -e 's|^/cygdrive/[^ ]*/msgcmp|msgcmp|' | LC_ALL=C tr -d '\r' > mc-test3.out
-cat <<EOF > mc-test3.ok
+cat <<\EOF > mc-test3.ok
mc-test3.in2:1: this message is used but not defined...
mc-test3.in1:3: ...but this definition is similar
mc-test3.in1:4: warning: this message is not used
# Test --more-than=0 option.
-cat <<EOF > mcomm-test1.in1
+cat <<\EOF > mcomm-test1.in1
#: first.c:123
msgid "1"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test1.in2
+cat <<\EOF > mcomm-test1.in2
#: hunt.c:759
msgid "2"
msgstr "2x"
# Test merge of common entries with --more-than=1 and --omit-header.
-cat <<EOF > mcomm-test10.in1
+cat <<\EOF > mcomm-test10.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test10.in2
+cat <<\EOF > mcomm-test10.in2
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
# Test that --more-than=1 drops entries which occur only once.
-cat <<EOF > mcomm-test11.in1
+cat <<\EOF > mcomm-test11.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "2x"
EOF
-cat <<EOF > mcomm-test11.in2
+cat <<\EOF > mcomm-test11.in2
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
# unique msg in in3
-cat <<EOF > mcomm-test12.in1
+cat <<\EOF > mcomm-test12.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test12.in2
+cat <<\EOF > mcomm-test12.in2
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr ""
EOF
-cat <<EOF > mcomm-test12.in3
+cat <<\EOF > mcomm-test12.in3
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
# one msg occurs 3 times (has to go away).
# An unique msg in in3 has to stay.
-cat <<EOF > mcomm-test13.in1
+cat <<\EOF > mcomm-test13.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test13.in2
+cat <<\EOF > mcomm-test13.in2
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr ""
EOF
-cat <<EOF > mcomm-test13.in3
+cat <<\EOF > mcomm-test13.in3
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
# no unique msg in input files.
# without --force-po don't create any PO file; cf. msgcomm-15
-cat <<EOF > mcomm-test14.in1
+cat <<\EOF > mcomm-test14.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test14.in2
+cat <<\EOF > mcomm-test14.in2
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr ""
EOF
-cat <<EOF > mcomm-test14.in3
+cat <<\EOF > mcomm-test14.in3
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
# no unique msg in input files.
# with --force-po create an empty PO file; cf. msgcomm-14
-cat <<EOF > mcomm-test15.in1
+cat <<\EOF > mcomm-test15.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test15.in2
+cat <<\EOF > mcomm-test15.in2
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr ""
EOF
-cat <<EOF > mcomm-test15.in3
+cat <<\EOF > mcomm-test15.in3
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
# entries only (entries occurring less than 2 times). But don't drop the
# header entry; otherwise msgcomm will fail for multibyte strings.
-cat <<EOF > mcomm-test17.in1
+cat <<\EOF > mcomm-test17.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test17.in2
+cat <<\EOF > mcomm-test17.in2
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
# Test --more-than=0; identical message are wanted once only.
-cat <<EOF > mcomm-test18.in1
+cat <<\EOF > mcomm-test18.in1
# Sure.
#: first.c:123
msgid "1"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test18.in2
+cat <<\EOF > mcomm-test18.in2
# Right.
#: hunt.c:759
msgid "1"
# Test --more-than=0; identical message are wanted once only.
# If the first occurrence is fuzzy, keep the fuzzy mark.
-cat <<EOF > mcomm-test19.in1
+cat <<\EOF > mcomm-test19.in1
# Not sure.
#: first.c:123
#, fuzzy
msgstr "1x"
EOF
-cat <<EOF > mcomm-test19.in2
+cat <<\EOF > mcomm-test19.in2
# Sure.
#: hunt.c:759
msgid "1"
# Test --no-location option.
-cat <<EOF > mcomm-test2.in1
+cat <<\EOF > mcomm-test2.in1
#: first.c:123
msgid "1"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test2.in2
+cat <<\EOF > mcomm-test2.in2
#: hunt.c:759
msgid "2"
msgstr "2x"
# Test --more-than=0; identical message are wanted once only.
# If the first occurrence is not fuzzy, don't make the result fuzzy.
-cat <<EOF > mcomm-test20.in1
+cat <<\EOF > mcomm-test20.in1
# Sure.
#: first.c:123
msgid "1"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test20.in2
+cat <<\EOF > mcomm-test20.in2
# Not sure.
#: hunt.c:759
#, fuzzy
# Test --more-than=0; identical message are wanted once only.
# If both occurrences are fuzzy, keep the fuzzy mark.
-cat <<EOF > mcomm-test21.in1
+cat <<\EOF > mcomm-test21.in1
# Not sure.
#: first.c:123
#, fuzzy
msgstr "1x"
EOF
-cat <<EOF > mcomm-test21.in2
+cat <<\EOF > mcomm-test21.in2
# Doubt.
#: hunt.c:759
#, fuzzy
# Test --more-than=0 option with Java .properties syntax.
-cat <<EOF > mcomm-test24.in1
+cat <<\EOF > mcomm-test24.in1
#: first.c:123
1=1x
EOF
-cat <<EOF > mcomm-test24.in2
+cat <<\EOF > mcomm-test24.in2
#: hunt.c:759
2=2x
EOF
# Test handling of format and 'range:' flag.
-cat <<EOF > mcomm-test27.in1
+cat <<\EOF > mcomm-test27.in1
msgid "one day"
msgid_plural "%d days"
msgstr[0] ""
msgstr[1] ""
EOF
-cat <<EOF > mcomm-test27.in2
+cat <<\EOF > mcomm-test27.in2
#, c-format, range: 1..6
msgid "one day"
msgid_plural "%d days"
# Test --add-location=file option.
-cat <<EOF > mcomm-test28.in1
+cat <<\EOF > mcomm-test28.in1
#: first.c:123
msgid "1"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test28.in2
+cat <<\EOF > mcomm-test28.in2
#: hunt.c:759
msgid "2"
msgstr "2x"
# Test --omit-header option when there is no header.
-cat <<EOF > mcomm-test3.in1
+cat <<\EOF > mcomm-test3.in1
#: first.c:123
msgid "1"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test3.in2
+cat <<\EOF > mcomm-test3.in2
#: hunt.c:759
msgid "2"
msgstr "2x"
# Test what happens with the header entry.
-cat <<EOF > mcomm-test4.in1
+cat <<\EOF > mcomm-test4.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test4.in2
+cat <<\EOF > mcomm-test4.in2
#: hunt.c:759
msgid "2"
msgstr "2x"
# Test --omit-header option when there is a header.
-cat <<EOF > mcomm-test5.in1
+cat <<\EOF > mcomm-test5.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test5.in2
+cat <<\EOF > mcomm-test5.in2
#: hunt.c:759
msgid "2"
msgstr "2x"
# Test --no-location option when there is a header.
-cat <<EOF > mcomm-test6.in1
+cat <<\EOF > mcomm-test6.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test6.in2
+cat <<\EOF > mcomm-test6.in2
#: hunt.c:759
msgid "2"
msgstr "2x"
# Test --no-location and --omit-header options together.
-cat <<EOF > mcomm-test7.in1
+cat <<\EOF > mcomm-test7.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test7.in2
+cat <<\EOF > mcomm-test7.in2
#: hunt.c:759
msgid "2"
msgstr "2x"
# Test merge of common entries with --more-than=1.
-cat <<EOF > mcomm-test8.in1
+cat <<\EOF > mcomm-test8.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test8.in2
+cat <<\EOF > mcomm-test8.in2
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
# Test merge of common entries with --more-than=1 and --no-location.
-cat <<EOF > mcomm-test9.in1
+cat <<\EOF > mcomm-test9.in1
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
msgstr "1x"
EOF
-cat <<EOF > mcomm-test9.in2
+cat <<\EOF > mcomm-test9.in2
msgid ""
msgstr ""
"Project-Id-Version: GNU one 1.2.3\n"
# Test general operation.
-cat <<EOF > men-test1.po
+cat <<\EOF > men-test1.po
# HEADER.
#
msgid ""
${MSGEN} -o men-test1.tmp men-test1.po || Exit 1
LC_ALL=C tr -d '\r' < men-test1.tmp > men-test1.out || Exit 1
-cat <<EOF > men-test1.ok
+cat <<\EOF > men-test1.ok
# HEADER.
#
msgid ""
# Test --add-location=file option.
-cat <<EOF > men-test1.po
+cat <<\EOF > men-test1.po
# HEADER.
#
msgid ""
${MSGEN} --add-location=file -o men-test1.tmp men-test1.po || Exit 1
LC_ALL=C tr -d '\r' < men-test1.tmp > men-test1.out || Exit 1
-cat <<EOF > men-test1.ok
+cat <<\EOF > men-test1.ok
# HEADER.
#
msgid ""
test -d mf-1 || mkdir mf-1
test -d mf-1/LC_MESSAGES || mkdir mf-1/LC_MESSAGES
-cat <<EOF > mf-1-module1.po
+cat <<\EOF > mf-1-module1.po
#default domain "messages.mo"
msgid "SYS_(C)\n"
msgstr "MSGFMT(3) portable message object file compiler\n"
msgstr "error 3 translation"
EOF
-cat <<EOF > mf-1-module2.po
+cat <<\EOF > mf-1-module2.po
# ---
#default domain "messages.mo"
msgid "mesg 4"
${GETTEXT} --env LC_ALL=en gen 'SYS_(C)
' | LC_ALL=C tr -d '\r' > mf-test1.out
-cat <<EOF > gtmf-test1.ok
+cat <<\EOF > gtmf-test1.ok
MSGFMT(3) portable message object file compiler
Copyright (C) 1995 Free Software Foundation
Report bugs to <bug-gnu-utils@gnu.org>
test -d mf-2 || mkdir mf-2
test -d mf-2/LC_MESSAGES || mkdir mf-2/LC_MESSAGES
-cat <<EOF > mf-2-module1.po
+cat <<\EOF > mf-2-module1.po
#default domain "messages.mo"
msgid "SYS_(C)\n"
msgstr "MSGFMT(3) portable message object file compiler\n"
msgstr "error 3 translation"
EOF
-cat <<EOF > mf-2-module2.po
+cat <<\EOF > mf-2-module2.po
# ---
#default domain "messages.mo"
msgid "mesg 4"
: ${MSGFMT=msgfmt}
${MSGFMT} -o fr/LC_MESSAGES/mf-20.mo mf-20.po || Exit 1
-cat <<EOF > mf-20.ok
+cat <<\EOF > mf-20.ok
Le soleil tape.
EOF
# Test that an empty header entry is OK.
-cat <<EOF >mf-test3.po
+cat <<\EOF >mf-test3.po
#
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Test c-format handling.
-cat <<EOF >mf-test4.po
+cat <<\EOF >mf-test4.po
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# Note: On AIX 3 with xlc, this test fails. To make it work, add "-qcheck"
# to the CFLAGS, or use gcc.
-cat <<EOF > mf-6.po
+cat <<\EOF > mf-6.po
msgid ""
msgstr ""
"Project-Id-Version: msgfmt test 4\n"
# Check for duplicates with identical translations
-cat <<EOF > mf-test7.in1
+cat <<\EOF > mf-test7.in1
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# Check for duplicates with different translations
-cat <<EOF > mf-test8.in1
+cat <<\EOF > mf-test8.in1
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# Duplicates are also fatal in obsolete marked entries.
-cat <<EOF > mf-test9.in1
+cat <<\EOF > mf-test9.in1
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
${GETTEXT} --env LC_ALL=en gen 'SYS_(C)
' | LC_ALL=C tr -d '\r' > mf-p-test1.out
-cat <<EOF > gtmf-p-test1.ok
+cat <<\EOF > gtmf-p-test1.ok
MSGFMT(3) portable message object file compiler
Copyright (C) 1995 Free Software Foundation
Report bugs to <bug-gnu-utils@gnu.org>
# Test general operation and line wrapping.
-cat <<EOF > mm-test1.in1
+cat <<\EOF > mm-test1.in1
# first
#. this should be discarded
msgid "1"
msgstr "3z"
EOF
-cat <<EOF > mm-test1.in2
+cat <<\EOF > mm-test1.in2
#. this is the first
#: snark.c:345
msgid "1"
# Test merging of a message which has plural forms in ref.pot but not
# in def.po.
-cat <<EOF > mm-test10.po
+cat <<\EOF > mm-test10.po
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
msgstr "%d erreur"
EOF
-cat <<EOF > mm-test10.pot
+cat <<\EOF > mm-test10.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
${MSGMERGE} -q -o mm-test10.tmp mm-test10.po mm-test10.pot || Exit 1
LC_ALL=C tr -d '\r' < mm-test10.tmp > mm-test10.out || Exit 1
-cat <<EOF > mm-test10.ok
+cat <<\EOF > mm-test10.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# Test merging of a message which has plural forms in ref.pot but not
# in def.po.
-cat <<EOF > mm-test11.po
+cat <<\EOF > mm-test11.po
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
msgstr "%d erreur"
EOF
-cat <<EOF > mm-test11.pot
+cat <<\EOF > mm-test11.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
${MSGMERGE} -q -o mm-test11.tmp mm-test11.po mm-test11.pot || Exit 1
LC_ALL=C tr -d '\r' < mm-test11.tmp > mm-test11.out || Exit 1
-cat <<EOF > mm-test11.ok
+cat <<\EOF > mm-test11.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# Test merging of a message which has plural forms in def.po but not
# in ref.pot.
-cat <<EOF > mm-test12.po
+cat <<\EOF > mm-test12.po
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
msgstr[1] "%d erreurs"
EOF
-cat <<EOF > mm-test12.pot
+cat <<\EOF > mm-test12.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
${MSGMERGE} -q -o mm-test12.tmp mm-test12.po mm-test12.pot || Exit 1
LC_ALL=C tr -d '\r' < mm-test12.tmp > mm-test12.out || Exit 1
-cat <<EOF > mm-test12.ok
+cat <<\EOF > mm-test12.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# Test merging of a message which has c-format specified in ref.pot but not
# in def.po.
-cat <<EOF > mm-test13.po
+cat <<\EOF > mm-test13.po
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
msgstr "%-Satz"
EOF
-cat <<EOF > mm-test13.pot
+cat <<\EOF > mm-test13.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
${MSGMERGE} -q -o mm-test13.tmp mm-test13.po mm-test13.pot || Exit 1
LC_ALL=C tr -d '\r' < mm-test13.tmp > mm-test13.out || Exit 1
-cat <<EOF > mm-test13.ok
+cat <<\EOF > mm-test13.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
msgstr "b³±d %1."
EOF
-cat <<EOF > mm-test16.pot
+cat <<\EOF > mm-test16.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Yoyodyne, Inc.
# This file is distributed under the same license as the PACKAGE package.
# Test recognition of duplicates.
-cat <<EOF > mm-test2.in1
+cat <<\EOF > mm-test2.in1
msgid "2" msgstr "2"
msgid "3" msgstr "3"
msgid "2" msgstr "ha ha"
EOF
-cat <<EOF > mm-test2.in2
+cat <<\EOF > mm-test2.in2
msgid "1" msgstr ""
msgid "2" msgstr ""
msgid "3" msgstr ""
# Test --add-location=file option.
-cat <<EOF > mm-test25.in1
+cat <<\EOF > mm-test25.in1
# first
#. this should be discarded
msgid "1"
msgstr "3z"
EOF
-cat <<EOF > mm-test25.in2
+cat <<\EOF > mm-test25.in2
#. this is the first
#: snark.c:345
msgid "1"
# Test --for-msgfmt option.
-cat <<EOF > mm-test26.in1
+cat <<\EOF > mm-test26.in1
#: fruits.c:14
msgid "cherry"
msgstr "cerise"
msgstr "pommes"
EOF
-cat <<EOF > mm-test26.in2
+cat <<\EOF > mm-test26.in2
# Fuzzy already in the PO file.
#: fruits.c:10
msgid "apple"
#~ msgstr "b"
EOF
-cat <<EOF > mm-test29.pot
+cat <<\EOF > mm-test29.pot
msgid "a"
msgstr ""
EOF
# Test handling of obsolete/untranslated messages.
-cat <<EOF > mm-test3.in1
+cat <<\EOF > mm-test3.in1
#
# def.po
#
# trailing comments should be removed
EOF
-cat <<EOF > mm-test3.in2
+cat <<\EOF > mm-test3.in2
#
# ref.po
#
# Test handling of comments.
-cat <<EOF > mm-test4.in1.po
+cat <<\EOF > mm-test4.in1.po
msgid "one"
msgstr "eins"
# This comment should be copied.
#~ msgstr "vier"
EOF
-cat <<EOF > mm-test4.in2.po
+cat <<\EOF > mm-test4.in2.po
msgid "one"
msgstr ""
# This is a comment in the POT file.
${MSGMERGE} -q -o mm-test4.tmp mm-test4.in1.po mm-test4.in2.po || Exit 1
LC_ALL=C tr -d '\r' < mm-test4.tmp > mm-test4.out || Exit 1
-cat <<EOF > mm-test4.ok
+cat <<\EOF > mm-test4.ok
msgid "one"
msgstr "eins"
# Test handling of header entry.
-cat <<EOF > mm-test5.in1.po
+cat <<\EOF > mm-test5.in1.po
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
"blah blah blah blah blah blah blah blah blah blah blah blah blah bla bla bla\n"
EOF
-cat <<EOF > mm-test5.in2.po
+cat <<\EOF > mm-test5.in2.po
msgid ""
msgstr ""
test $result = 0 || { Exit 1; }
LC_ALL=C tr -d '\r' < mm-test5.tmp > mm-test5.out || Exit 1
-cat <<EOF > mm-test5.ok
+cat <<\EOF > mm-test5.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
msgstr "weiß"
EOF
-cat <<EOF > mm-test6.in2.po
+cat <<\EOF > mm-test6.in2.po
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
msgstr "A bientôt"
EOF
-cat <<EOF > mm-test7.pot
+cat <<\EOF > mm-test7.pot
domain "foo-de"
msgid "Hello"
msgstr ""
msgstr "A bientôt"
EOF
-cat <<EOF > mm-test8.pot
+cat <<\EOF > mm-test8.pot
msgid "Hello"
msgstr ""
EOF
# Duplicates are also fatal in obsolete marked entries (cf. msgmerge-3).
-cat <<EOF > mm-test9.in1
+cat <<\EOF > mm-test9.in1
msgid "2" msgstr "2"
msgid "3" msgstr "3"
#~ msgid
#~ "ha ha"
EOF
-cat <<EOF > mm-test9.in2
+cat <<\EOF > mm-test9.in2
msgid "1" msgstr ""
msgid "2" msgstr ""
msgid "3" msgstr ""
# Test compendium option.
-cat <<EOF > mm-c-1.in1
+cat <<\EOF > mm-c-1.in1
#: file.c:123
msgid "1"
msgstr "1x"
EOF
-cat <<EOF > mm-c-1.com
+cat <<\EOF > mm-c-1.com
#: file.c:345
msgid "2"
msgstr "2x"
EOF
-cat <<EOF > mm-c-1.pot
+cat <<\EOF > mm-c-1.pot
#: file.c:123
msgid "1"
msgstr ""
# Test compendium option with fuzziness.
-cat <<EOF > mm-c-2.in1
+cat <<\EOF > mm-c-2.in1
#: file.c:123
msgid "1"
msgstr "1x"
EOF
-cat <<EOF > mm-c-2.com
+cat <<\EOF > mm-c-2.com
#: file.c:345
msgid "one, two, three"
msgstr "1, 2, 3"
EOF
-cat <<EOF > mm-c-2.pot
+cat <<\EOF > mm-c-2.pot
#: file.c:123
msgid "1"
msgstr ""
# the old translation file (mm-c-3.in1) contains the same msgid
# Why not make use of the translation from the compendium?
-cat <<EOF > mm-c-3.in1
+cat <<\EOF > mm-c-3.in1
#: file.c:123
msgid "1"
msgstr "1x"
msgstr ""
EOF
-cat <<EOF > mm-c-3.com
+cat <<\EOF > mm-c-3.com
#: file.c:345
msgid "one, two, three"
msgstr "1, 2, 3"
EOF
-cat <<EOF > mm-c-3.pot
+cat <<\EOF > mm-c-3.pot
#: file.c:123
msgid "1"
msgstr ""
msgstr "fünf"
EOF
-cat <<EOF > mm-c-4.pot
+cat <<\EOF > mm-c-4.pot
#: file.c:123
msgid "1"
msgstr ""
# Test handling of obsolete/untranslated messages with Java .properties syntax.
-cat <<EOF > mm-p-1.in1
+cat <<\EOF > mm-p-1.in1
#
# def.po
#
# trailing comments should be removed
EOF
-cat <<EOF > mm-p-1.in2
+cat <<\EOF > mm-p-1.in2
#
# ref.po
#
white=wei\u00df
EOF
-cat <<EOF > mm-p-2.pot
+cat <<\EOF > mm-p-2.pot
#. location changed
#: cogarithmetic.cc:33
!white=
"schwarz"
EOF
-cat <<EOF > mm-u-1.pot
+cat <<\EOF > mm-u-1.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
msgstr "weiß"
EOF
-cat <<EOF > mm-u-2.pot
+cat <<\EOF > mm-u-2.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
msgstr "weiß"
EOF
-cat <<EOF > mm-u-3.pot
+cat <<\EOF > mm-u-3.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#~ msgstr "grün"
EOF
-cat <<EOF > mm-u-4.pot
+cat <<\EOF > mm-u-4.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# Test of general operation.
-cat <<EOF > mu-test1.in
+cat <<\EOF > mu-test1.in
msgid "eight"
msgstr "eighth"
# system-dependent strings), yields a PO file with c-format annotation, so that
# msgfmt applied to it will again produce a .mo file of major revision 1.
-cat <<EOF > mu-2.in
+cat <<\EOF > mu-2.in
#, c-format
msgid "truncating at %<PRIuMAX> bytes in output file %s"
msgstr "schneide bei %<PRIuMAX> Bytes in Ausgabedatei %s ab"
# Test of general operation with Java .properties syntax.
-cat <<EOF > mu-p-1.in
+cat <<\EOF > mu-p-1.in
eight=eighth
five=fifth
${XGETTEXT} -o plural-1-cake.tmp --omit-header --no-location "$wabs_srcdir"/plural-1-prg.c || Exit 1
LC_ALL=C tr -d '\r' < plural-1-cake.tmp > plural-1-cake.pot || Exit 1
-cat <<EOF > plural-1-cake.ok
+cat <<\EOF > plural-1-cake.ok
#, c-format
msgid "a piece of cake"
msgid_plural "%d pieces of cake"
: ${DIFF=diff}
${DIFF} plural-1-cake.ok plural-1-cake.pot || Exit 1
-cat <<EOF > plural-1-fr.po
+cat <<\EOF > plural-1-fr.po
# Les gateaux allemands sont les meilleurs du monde.
#, c-format
msgid "a piece of cake"
test -d plural-2-dir/ll || mkdir plural-2-dir/ll
test -d plural-2-dir/ll/LC_MESSAGES || mkdir plural-2-dir/ll/LC_MESSAGES
-cat <<EOF > plural-2.data
+cat <<\EOF > plural-2.data
ja
0
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|| Exit 1
LC_ALL=C tr -d '\r' < xg-18.tmp.po > xg-18.po || Exit 1
-cat <<EOF > xg-18.ok
+cat <<\EOF > xg-18.ok
#, python-format
msgid "Found %(count)d warnings"
msgstr ""
# Even an empty string is extracted, if not overridden by xgettext's
# default-constructed header entry.
-cat <<EOF > xg-test2.in.c
+cat <<\EOF > xg-test2.in.c
This is a test of the xgettext functionality.
/* xgettext:no-c-format */
_("extract me")
${XGETTEXT} -d xg-test2.tmp -k_ --omit-header --no-location xg-test2.in.c || Exit 1
LC_ALL=C tr -d '\r' < xg-test2.tmp.po > xg-test2.po || Exit 1
-cat <<EOF > xg-test2.ok
+cat <<\EOF > xg-test2.ok
#, no-c-format
msgid "extract me"
msgstr ""
# When a header entry is provided by xgettext, it overrides any msgid ""
# present in the input.
-cat <<EOF > xg-test3.in.c
+cat <<\EOF > xg-test3.in.c
This is a test of the xgettext functionality.
/* xgettext:no-c-format */
_("extract me")
${XGETTEXT} --output xg-test3.tmp --no-location -k_ xg-test3.in.c 2>/dev/null || Exit 1
sed -e '/\"POT-Creation-Date:.*/d' < xg-test3.tmp | LC_ALL=C tr -d '\r' > xg-test3.po
-cat <<EOF > xg-test3.ok
+cat <<\EOF > xg-test3.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Test --foreign-user
-cat <<EOF > xg-test4.in.c
+cat <<\EOF > xg-test4.in.c
_("extract me")
EOF
${XGETTEXT} --output xg-test4.tmp --foreign-user --no-location -k_ xg-test4.in.c || Exit 1
sed -e '/\"POT-Creation-Date:.*/d' < xg-test4.tmp | LC_ALL=C tr -d '\r' > xg-test4.po
-cat <<EOF > xg-test4.ok
+cat <<\EOF > xg-test4.ok
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# Test extraction of non-ASCII msgids.
-cat <<EOF > xg-test5.c
+cat <<\EOF > xg-test5.c
void foo (int option)
{
printf (_("%s: neznámý pøepÃnaè -- %c\n"), option);
sed -e '/POT-Creation-Date/d' < xg-test5.po > xg-test5.pot
-cat <<EOF > xg-test5.ok
+cat <<\EOF > xg-test5.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
msgstr "ö"
EOF
-cat <<EOF > xg-test8.in.c
+cat <<\EOF > xg-test8.in.c
_("extract me")
EOF
# Test of AppData support.
-cat <<EOF > xg-gs-1-empty.appdata.xml
+cat <<\EOF > xg-gs-1-empty.appdata.xml
<?xml version="1.0"?>
<component type="desktop"/>
EOF
Exit 77
}
-cat <<EOF > xg-gs-1.appdata.xml
+cat <<\EOF > xg-gs-1.appdata.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2013 First Lastname <your@email.com> -->
<component type="desktop">
${XGETTEXT} --add-comments -o xg-gs-1.tmp xg-gs-1.appdata.xml || Exit 1
func_filter_POT_Creation_Date xg-gs-1.tmp xg-gs-1.pot
-cat <<EOF > xg-gs-1.ok
+cat <<\EOF > xg-gs-1.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Test awk support: --add-comments option.
-cat <<EOF > xg-a-1.awk
+cat <<\EOF > xg-a-1.awk
# This comment will not be extracted.
print _"help"
# TRANSLATORS: This is an extracted comment.
-d xg-a-1.tmp xg-a-1.awk || Exit 1
LC_ALL=C tr -d '\r' < xg-a-1.tmp.po > xg-a-1.po || Exit 1
-cat <<EOF > xg-a-1.ok
+cat <<\EOF > xg-a-1.ok
msgid "help"
msgstr ""
-d xg-a-2.tmp xg-a-2.awk || Exit 1
LC_ALL=C tr -d '\r' < xg-a-2.tmp.po > xg-a-2.po || Exit 1
-cat <<EOF > xg-a-2.ok
+cat <<\EOF > xg-a-2.ok
#. a
#. b
#. c
# Test awk support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-a-so-1.awk
+cat <<\EOF > xg-a-so-1.awk
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-a-so-1.tmp xg-a-so-1.awk || Exit 1
LC_ALL=C tr -d '\r' < xg-a-so-1.tmp.po > xg-a-so-1.po || Exit 1
-cat <<EOF > xg-a-so-1.ok
+cat <<\EOF > xg-a-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test awk support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-a-so-2.awk
+cat <<\EOF > xg-a-so-2.awk
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Test C support: comments meant for xgettext, whitespace, and literals.
-cat <<EOF > xg-c-2.in.c
+cat <<\EOF > xg-c-2.in.c
This is a test of the xgettext functionality.
/* xgettext:no-c-format */
_("extract me")
${XGETTEXT} -d xg-c-2.tmp -k_ --omit-header --no-location xg-c-2.in.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-2.tmp.po > xg-c-2.po || Exit 1
-cat <<EOF > xg-c-2.ok
+cat <<\EOF > xg-c-2.ok
#, no-c-format
msgid "extract me"
msgstr ""
# Test C support: recognition of #line.
-cat <<EOF > xg-c-3.in.c
+cat <<\EOF > xg-c-3.in.c
#line 42 "bozo"
main(){printf(gettext("Hello, World!\n"));}
# 6 "clown"
${XGETTEXT} --omit-header --add-location -d xg-c-3.tmp xg-c-3.in.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-3.tmp.po > xg-c-3.po || Exit 1
-cat <<EOF > xg-c-3.ok
+cat <<\EOF > xg-c-3.ok
#: bozo:42
#, c-format
msgid "Hello, World!\n"
# Test C support: --trigraphs option.
-cat <<EOF > xg-c-4.in.c
+cat <<\EOF > xg-c-4.in.c
main()??<printf(gettext("Hello, " "World!" "??/n"));return 0 ? a??(0??'1??) : 1??!??-a[0]??#1;????>
EOF
${XGETTEXT} --omit-header --no-location --trigraphs -d xg-c-4.tmp xg-c-4.in.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-4.tmp.po > xg-c-4.po || Exit 1
-cat <<EOF > xg-c-4.ok
+cat <<\EOF > xg-c-4.ok
#, c-format
msgid "Hello, World!\n"
msgstr ""
${XGETTEXT} --omit-header --no-location -d xg-c-6.tmp xg-c-6.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-6.tmp.po > xg-c-6.po || Exit 1
-cat <<EOF > xg-c-6.ok
+cat <<\EOF > xg-c-6.ok
#, c-format, range: 1..6
msgid "one week and one day"
msgid_plural "one week and %d days"
# Test C support: comments.
-cat <<EOF > xg-c-comment-1.in.cc
+cat <<\EOF > xg-c-comment-1.in.cc
main(){printf(gettext/*puke*/(/*barf*/"Hello, " "World!" "\n")); }
EOF
${XGETTEXT} --omit-header --no-location --add-comments -d xg-c-comment-1.tmp xg-c-comment-1.in.cc || Exit 1
LC_ALL=C tr -d '\r' < xg-c-comment-1.tmp.po > xg-c-comment-1.po || Exit 1
-cat <<EOF > xg-c-comment-1.ok
+cat <<\EOF > xg-c-comment-1.ok
#. puke
#. barf
#, c-format
# Test C support: comments.
-cat <<EOF > xg-c-comment-2.c
+cat <<\EOF > xg-c-comment-2.c
int
main()
{
${XGETTEXT} --omit-header --no-location -c --c++ -d xg-c-comment-2.tmp xg-c-comment-2.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-comment-2.tmp.po > xg-c-comment-2.po || Exit 1
-cat <<EOF > xg-c-comment-2.ok
+cat <<\EOF > xg-c-comment-2.ok
#. This is a comment which immediately before a keyword.
msgid "1"
msgstr ""
-d xg-c-comment-3.tmp xg-c-comment-3.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-comment-3.tmp.po > xg-c-comment-3.po || Exit 1
-cat <<EOF > xg-c-comment-3.ok
+cat <<\EOF > xg-c-comment-3.ok
#. a
#. b
#. c
# Test C support: --add-comments option.
-cat <<EOF > xg-c-comment-4.in.C
+cat <<\EOF > xg-c-comment-4.in.C
/* This comment will not be extracted. */
gettext ("help");
-d xg-c-comment-4.tmp xg-c-comment-4.in.C || Exit 1
LC_ALL=C tr -d '\r' < xg-c-comment-4.tmp.po > xg-c-comment-4.po || Exit 1
-cat <<EOF > xg-c-comment-4.ok
+cat <<\EOF > xg-c-comment-4.ok
msgid "help"
msgstr ""
# Test C support: --add-comments option.
-cat <<EOF > xg-c-comment-5.c
+cat <<\EOF > xg-c-comment-5.c
// This comment will not be extracted.
print (gettext ("help"));
// TRANSLATORS: This is an extracted comment.
-d xg-c-comment-5.tmp xg-c-comment-5.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-comment-5.tmp.po > xg-c-comment-5.po || Exit 1
-cat <<EOF > xg-c-comment-5.ok
+cat <<\EOF > xg-c-comment-5.ok
msgid "help"
msgstr ""
-d xg-c-ctxt-1.tmp xg-c-ctxt-1.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-ctxt-1.tmp.po > xg-c-ctxt-1.po || Exit 1
-cat <<EOF > xg-c-ctxt-1.ok
+cat <<\EOF > xg-c-ctxt-1.ok
msgid "help"
msgstr ""
-d xg-c-ctxt-2.tmp xg-c-ctxt-2.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-ctxt-2.tmp.po > xg-c-ctxt-2.po || Exit 1
-cat <<EOF > xg-c-ctxt-2.ok
+cat <<\EOF > xg-c-ctxt-2.ok
msgid "help"
msgstr ""
-d xg-c-ctxt-3.tmp xg-c-ctxt-3.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-ctxt-3.tmp.po > xg-c-ctxt-3.po || Exit 1
-cat <<EOF > xg-c-ctxt-3.ok
+cat <<\EOF > xg-c-ctxt-3.ok
msgctxt "Printer"
msgid "Open"
msgstr ""
${XGETTEXT} --omit-header --no-location -d xg-c-format-1.tmp xg-c-format-1.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-format-1.tmp.po > xg-c-format-1.po || Exit 1
-cat <<EOF > xg-c-format-1.ok
+cat <<\EOF > xg-c-format-1.ok
msgid "%1% on, %2% off"
msgstr ""
EOF
# Test recognition of ISO C 99 <inttypes.h> format string directives.
-cat <<EOF > xg-c-format-2.c
+cat <<\EOF > xg-c-format-2.c
void foo ()
{
printf (_("File size is: %" PRId64), size);
${XGETTEXT} --omit-header --no-location -k_ -o xg-c-format-2.tmp xg-c-format-2.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-format-2.tmp > xg-c-format-2.po || Exit 1
-cat <<EOF > xg-c-format-2.ok
+cat <<\EOF > xg-c-format-2.ok
#, c-format
msgid "File size is: %<PRId64>"
msgstr ""
xg-c-format-3.cc || Exit 1
LC_ALL=C tr -d '\r' < xg-c-format-3.tmp.po > xg-c-format-3.po || Exit 1
-cat <<EOF > xg-c-format-3.ok
+cat <<\EOF > xg-c-format-3.ok
#, qt-format
msgid "on"
msgstr ""
xg-c-format-4.cc || Exit 1
LC_ALL=C tr -d '\r' < xg-c-format-4.tmp.po > xg-c-format-4.po || Exit 1
-cat <<EOF > xg-c-format-4.ok
+cat <<\EOF > xg-c-format-4.ok
#, c-format, kde-format
msgid "used time: %1m %2s"
msgstr ""
-d xg-c-format-6.tmp xg-c-format-6.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-format-6.tmp.po > xg-c-format-6.po || Exit 1
-cat <<EOF > xg-c-format-6.ok
+cat <<\EOF > xg-c-format-6.ok
#, c-format
msgid "blablaQ %d and %s"
msgstr ""
# Test C support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-c-so-1.c
+cat <<\EOF > xg-c-so-1.c
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-c-so-1.tmp xg-c-so-1.c || Exit 1
LC_ALL=C tr -d '\r' < xg-c-so-1.tmp.po > xg-c-so-1.po || Exit 1
-cat <<EOF > xg-c-so-1.ok
+cat <<\EOF > xg-c-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test C support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-c-so-2.c
+cat <<\EOF > xg-c-so-2.c
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Test combining of POT files by merging them.
-cat <<EOF > xg-co-test1-a.c
+cat <<\EOF > xg-co-test1-a.c
void f () { gettext ("foobar"); }
EOF
-cat <<EOF > xg-co-test1-b.py
+cat <<\EOF > xg-co-test1-b.py
print gettext.gettext("sumsum");
EOF
sed -e '/POT-Creation-Date/d' < xg-co-test1-all.tmp2 > xg-co-test1-all.pot
-cat <<EOF > xg-co-test1.ok
+cat <<\EOF > xg-co-test1.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Test combining of POT files by using the -j option on a file with
# suffix ".pot".
-cat <<EOF > xg-co-test2-a.c
+cat <<\EOF > xg-co-test2-a.c
void f () { gettext ("foobar"); }
EOF
-cat <<EOF > xg-co-test2-b.py
+cat <<\EOF > xg-co-test2-b.py
print gettext.gettext("sumsum");
EOF
sed -e '/POT-Creation-Date/d' < xg-co-test2-all.tmp2 > xg-co-test2-all.pot
-cat <<EOF > xg-co-test2.ok
+cat <<\EOF > xg-co-test2.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# suffix, e.g. with suffix ".po" (as generated by the --default-domain option).
# <https://savannah.gnu.org/bugs/?64490>
-cat <<EOF > xg-co-test3-a.c
+cat <<\EOF > xg-co-test3-a.c
void f () { gettext ("foobar"); }
EOF
-cat <<EOF > xg-co-test3-b.py
+cat <<\EOF > xg-co-test3-b.py
print gettext.gettext("sumsum");
EOF
sed -e '/POT-Creation-Date/d' < xg-co-test3-all.tmp2 > xg-co-test3-all.pot
-cat <<EOF > xg-co-test3.ok
+cat <<\EOF > xg-co-test3.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Some tests for C# support
-cat <<EOF > xg-cs-1.cs
+cat <<\EOF > xg-cs-1.cs
using GNU.Gettext;
class TestCase {
public TestCase() {
${XGETTEXT} --omit-header --no-location -c -d xg-cs-1.tmp xg-cs-1.cs || Exit 1
LC_ALL=C tr -d '\r' < xg-cs-1.tmp.po > xg-cs-1.po || Exit 1
-cat <<EOF > xg-cs-1.ok
+cat <<\EOF > xg-cs-1.ok
#. standard usage
msgid "Test String 1"
msgstr ""
# Tests for C# plural keyword support
-cat <<EOF > xg-cs-4.cs
+cat <<\EOF > xg-cs-4.cs
class TestCase {
public static void Main (String[] args) {
GetPluralString("test 1", "plural test");
-d xg-cs-4.tmp xg-cs-4.cs || Exit 1
LC_ALL=C tr -d '\r' < xg-cs-4.tmp.po > xg-cs-4.po || Exit 1
-cat <<EOF > xg-cs-4.ok
+cat <<\EOF > xg-cs-4.ok
msgid "test 1"
msgid_plural "plural test"
msgstr[0] ""
# Test C# support: --add-comments option.
-cat <<EOF > xg-cs-5.cs
+cat <<\EOF > xg-cs-5.cs
// This comment will not be extracted.
Console.WriteLine(GetString("help"));
// TRANSLATORS: This is an extracted comment.
-d xg-cs-5.tmp xg-cs-5.cs || Exit 1
LC_ALL=C tr -d '\r' < xg-cs-5.tmp.po > xg-cs-5.po || Exit 1
-cat <<EOF > xg-cs-5.ok
+cat <<\EOF > xg-cs-5.ok
msgid "help"
msgstr ""
-d xg-cs-6.tmp xg-cs-6.cs || Exit 1
LC_ALL=C tr -d '\r' < xg-cs-6.tmp.po > xg-cs-6.po || Exit 1
-cat <<EOF > xg-cs-6.ok
+cat <<\EOF > xg-cs-6.ok
#. a
#. b
#. c
${XGETTEXT} --omit-header --no-location -d xg-cs-7.tmp xg-cs-7.cs || Exit 1
LC_ALL=C tr -d '\r' < xg-cs-7.tmp.po > xg-cs-7.po || Exit 1
-cat <<EOF > xg-cs-7.ok
+cat <<\EOF > xg-cs-7.ok
msgid "help"
msgstr ""
# Test C# support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-cs-so-1.cs
+cat <<\EOF > xg-cs-so-1.cs
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-cs-so-1.tmp xg-cs-so-1.cs || Exit 1
LC_ALL=C tr -d '\r' < xg-cs-so-1.tmp.po > xg-cs-so-1.po || Exit 1
-cat <<EOF > xg-cs-so-1.ok
+cat <<\EOF > xg-cs-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test C# support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-cs-so-2.cs
+cat <<\EOF > xg-cs-so-2.cs
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Test C# support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-cs-so-3.cs
+cat <<\EOF > xg-cs-so-3.cs
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
${XGETTEXT} --omit-header --no-location -d xg-cs-so-3.tmp xg-cs-so-3.cs || Exit 1
LC_ALL=C tr -d '\r' < xg-cs-so-3.tmp.po > xg-cs-so-3.po || Exit 1
-cat <<EOF > xg-cs-so-3.ok
+cat <<\EOF > xg-cs-so-3.ok
msgid "Hello!"
msgstr ""
EOF
# Test C# support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-cs-so-4.cs
+cat <<\EOF > xg-cs-so-4.cs
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
# Test EmacsLisp support: --add-comments option.
-cat <<EOF > xg-el-1.el
+cat <<\EOF > xg-el-1.el
; This comment will not be extracted.
(princ (_ "help"))
;; TRANSLATORS: This is an extracted comment.
-d xg-el-1.tmp xg-el-1.el || Exit 1
LC_ALL=C tr -d '\r' < xg-el-1.tmp.po > xg-el-1.po || Exit 1
-cat <<EOF > xg-el-1.ok
+cat <<\EOF > xg-el-1.ok
msgid "help"
msgstr ""
-d xg-el-2.tmp xg-el-2.el || Exit 1
LC_ALL=C tr -d '\r' < xg-el-2.tmp.po > xg-el-2.po || Exit 1
-cat <<EOF > xg-el-2.ok
+cat <<\EOF > xg-el-2.ok
#. a
#. b
#. c
# Test EmacsLisp support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-el-so-1.el
+cat <<\EOF > xg-el-so-1.el
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-el-so-1.tmp xg-el-so-1.el || Exit 1
LC_ALL=C tr -d '\r' < xg-el-so-1.tmp.po > xg-el-so-1.po || Exit 1
-cat <<EOF > xg-el-so-1.ok
+cat <<\EOF > xg-el-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test EmacsLisp support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-el-so-2.el
+cat <<\EOF > xg-el-so-2.el
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Test of Glade support.
-cat <<EOF > xg-gl-1-empty.glade
+cat <<\EOF > xg-gl-1-empty.glade
<?xml version="1.0"?>
<GTK-Interface/>
EOF
Exit 77
}
-cat <<EOF > xg-gl-1-widgets.glade
+cat <<\EOF > xg-gl-1-widgets.glade
<?xml version="1.0"?>
<GTK-Interface>
${XGETTEXT} --add-comments -o xg-gl-1.tmp xg-gl-1-widgets.glade || Exit 1
func_filter_POT_Creation_Date xg-gl-1.tmp xg-gl-1.pot
-cat <<EOF > xg-gl-1.ok
+cat <<\EOF > xg-gl-1.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Test of Glade support, in particular ISO-8859-1 to UTF-8 conversion
# and ASCII entities (< > ").
-cat <<EOF > xg-gl-2-empty.glade
+cat <<\EOF > xg-gl-2-empty.glade
<?xml version="1.0"?>
<GTK-Interface/>
EOF
# Test of Glade 2 support.
-cat <<EOF > xg-gl-3-empty.glade
+cat <<\EOF > xg-gl-3-empty.glade
<?xml version="1.0"?>
<GTK-Interface/>
EOF
Exit 77
}
-cat <<EOF > xg-gl-3-asciitable.glade2
+cat <<\EOF > xg-gl-3-asciitable.glade2
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd" >
# Test of Glade 2 support.
-cat <<EOF > xg-gl-4-empty.glade
+cat <<\EOF > xg-gl-4-empty.glade
<?xml version="1.0"?>
<GTK-Interface/>
EOF
Exit 77
}
-cat <<EOF > xg-gl-4.glade
+cat <<\EOF > xg-gl-4.glade
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<!--Generated with glade3 3.4.3 on Sat May 16 19:53:48 2009 -->
rm -fr $tempfiles; exit $result
}
-cat <<EOF > xg-gl-4a.glade
+cat <<\EOF > xg-gl-4a.glade
<?xml version="1.0"?>
<glade-interface>
<!-- interface-requires gtk+ 2.6 -->
# Test of Glade 2 support for msgctxt.
-cat <<EOF > xg-gl-5-empty.glade
+cat <<\EOF > xg-gl-5-empty.glade
<?xml version="1.0"?>
<GTK-Interface/>
EOF
Exit 77
}
-cat <<EOF > xg-gl-5.glade
+cat <<\EOF > xg-gl-5.glade
<?xml version="1.0"?>
<glade-interface>
<!-- interface-requires gtk+ 2.8 -->
exit $result
}
-cat <<EOF > xg-gl-5b.glade
+cat <<\EOF > xg-gl-5b.glade
<?xml version="1.0"?>
<glade-interface>
<!-- interface-requires gtk+ 2.8 -->
# Checks that the extracted pot contains the right translatable
# content, comments and context.
-cat <<EOF > xg-gl-6-empty.glade
+cat <<\EOF > xg-gl-6-empty.glade
<?xml version="1.0"?>
<GTK-Interface/>
EOF
Exit 77
}
-cat <<EOF > xg-gl-6.ui
+cat <<\EOF > xg-gl-6.ui
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
${XGETTEXT} -o xg-gl-6.tmp xg-gl-6.ui || Exit 1
func_filter_POT_Creation_Date xg-gl-6.tmp xg-gl-6.pot
-cat <<EOF > xg-gl-6.ok
+cat <<\EOF > xg-gl-6.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Checks the extraction of a medium size GtkBuilder file, with
# comments, context and translatable and not translatable content.
-cat <<EOF > xg-gl-7-empty.glade
+cat <<\EOF > xg-gl-7-empty.glade
<?xml version="1.0"?>
<GTK-Interface/>
EOF
Exit 77
}
-cat <<EOF > xg-gl-7.ui
+cat <<\EOF > xg-gl-7.ui
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
# Test of GSettings support.
-cat <<EOF > xg-gs-1-empty.gschema.xml
+cat <<\EOF > xg-gs-1-empty.gschema.xml
<?xml version="1.0"?>
<schemalist/>
EOF
Exit 77
}
-cat <<EOF > xg-gs-1.gschema.xml
+cat <<\EOF > xg-gs-1.gschema.xml
<?xml version="1.0"?>
<schemalist>
<schema id="org.gnome.example" path="/org/gnome/example/">
${XGETTEXT} --add-comments -o xg-gs-1.tmp xg-gs-1.gschema.xml || Exit 1
func_filter_POT_Creation_Date xg-gs-1.tmp xg-gs-1.pot
-cat <<EOF > xg-gs-1.ok
+cat <<\EOF > xg-gs-1.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Some tests for java support
#
-cat <<EOF > xg-j-1.java
+cat <<\EOF > xg-j-1.java
class TestCase {
public TestCase() {
ResourceBundle b = ResourceBundle.getBundle("test");
${XGETTEXT} --omit-header --no-location -c -d xg-j-1.tmp xg-j-1.java || Exit 1
LC_ALL=C tr -d '\r' < xg-j-1.tmp.po > xg-j-1.po || Exit 1
-cat <<EOF > xg-j-1.ok
+cat <<\EOF > xg-j-1.ok
#. standard usage
msgid "Test String 1"
msgstr ""
# Some tests for java plural keyword support
#
-cat <<EOF > xg-j-3.java
+cat <<\EOF > xg-j-3.java
class TestCase {
public TestCase() {
Bundle test = Bundle.getBundle();
${XGETTEXT} --omit-header --no-location -d xg-j-3.tmp xg-j-3.java || Exit 1
LC_ALL=C tr -d '\r' < xg-j-3.tmp.po > xg-j-3.po || Exit 1
-cat <<EOF > xg-j-3.ok
+cat <<\EOF > xg-j-3.ok
msgid "test 1"
msgid_plural "plural test"
msgstr[0] ""
# Some tests for java plural keyword support
#
-cat <<EOF > xg-j-4.java
+cat <<\EOF > xg-j-4.java
class TestCase {
public TestCase() {
Bundle test = Bundle.getBundle();
-d xg-j-4.tmp xg-j-4.java || Exit 1
LC_ALL=C tr -d '\r' < xg-j-4.tmp.po > xg-j-4.po || Exit 1
-cat <<EOF > xg-j-4.ok
+cat <<\EOF > xg-j-4.ok
msgid "test 1"
msgid_plural "plural test"
msgstr[0] ""
# Test Java support: --add-comments option.
-cat <<EOF > xg-j-5.java
+cat <<\EOF > xg-j-5.java
// This comment will not be extracted.
System.out.println(gettext("help"));
// TRANSLATORS: This is an extracted comment.
-d xg-j-5.tmp xg-j-5.java || Exit 1
LC_ALL=C tr -d '\r' < xg-j-5.tmp.po > xg-j-5.po || Exit 1
-cat <<EOF > xg-j-5.ok
+cat <<\EOF > xg-j-5.ok
msgid "help"
msgstr ""
-d xg-j-6.tmp xg-j-6.java || Exit 1
LC_ALL=C tr -d '\r' < xg-j-6.tmp.po > xg-j-6.po || Exit 1
-cat <<EOF > xg-j-6.ok
+cat <<\EOF > xg-j-6.ok
#. a
#. b
#. c
${XGETTEXT} --omit-header --no-location -d xg-j-7.tmp xg-j-7.java || Exit 1
LC_ALL=C tr -d '\r' < xg-j-7.tmp.po > xg-j-7.po || Exit 1
-cat <<EOF > xg-j-7.ok
+cat <<\EOF > xg-j-7.ok
msgid "help"
msgstr ""
# Test Java support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-j-so-1.java
+cat <<\EOF > xg-j-so-1.java
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-j-so-1.tmp xg-j-so-1.java || Exit 1
LC_ALL=C tr -d '\r' < xg-j-so-1.tmp.po > xg-j-so-1.po || Exit 1
-cat <<EOF > xg-j-so-1.ok
+cat <<\EOF > xg-j-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test Java support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-j-so-2.java
+cat <<\EOF > xg-j-so-2.java
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Test Java support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-j-so-3.java
+cat <<\EOF > xg-j-so-3.java
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
${XGETTEXT} --omit-header --no-location -d xg-j-so-3.tmp xg-j-so-3.java || Exit 1
LC_ALL=C tr -d '\r' < xg-j-so-3.tmp.po > xg-j-so-3.po || Exit 1
-cat <<EOF > xg-j-so-3.ok
+cat <<\EOF > xg-j-so-3.ok
msgid "Hello!"
msgstr ""
EOF
# Test Java support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-j-so-4.java
+cat <<\EOF > xg-j-so-4.java
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
# Test JavaScript support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-js-so-1.js
+cat <<\EOF > xg-js-so-1.js
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-js-so-1.tmp xg-js-so-1.js || Exit 1
LC_ALL=C tr -d '\r' < xg-js-so-1.tmp.po > xg-js-so-1.po || Exit 1
-cat <<EOF > xg-js-so-1.ok
+cat <<\EOF > xg-js-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test JavaScript support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-js-so-2.js
+cat <<\EOF > xg-js-so-2.js
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Test JavaScript support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-js-so-3.js
+cat <<\EOF > xg-js-so-3.js
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
${XGETTEXT} --omit-header --no-location -d xg-js-so-3.tmp xg-js-so-3.js || Exit 1
LC_ALL=C tr -d '\r' < xg-js-so-3.tmp.po > xg-js-so-3.po || Exit 1
-cat <<EOF > xg-js-so-3.ok
+cat <<\EOF > xg-js-so-3.ok
msgid "Hello!"
msgstr ""
EOF
# Test JavaScript support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-js-so-4.js
+cat <<\EOF > xg-js-so-4.js
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
# Test JavaScript support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-js-so-5.js
+cat <<\EOF > xg-js-so-5.js
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
${XGETTEXT} --omit-header --no-location -d xg-js-so-5.tmp xg-js-so-5.js || Exit 1
LC_ALL=C tr -d '\r' < xg-js-so-5.tmp.po > xg-js-so-5.po || Exit 1
-cat <<EOF > xg-js-so-5.ok
+cat <<\EOF > xg-js-so-5.ok
msgid "Hello!"
msgstr ""
EOF
# Test JavaScript support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-js-so-6.js
+cat <<\EOF > xg-js-so-6.js
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
# Test JavaScript support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-js-so-7.js
+cat <<\EOF > xg-js-so-7.js
<x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x>
<x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x>
<x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x>
${XGETTEXT} --omit-header --no-location -d xg-js-so-7.tmp xg-js-so-7.js || Exit 1
LC_ALL=C tr -d '\r' < xg-js-so-7.tmp.po > xg-js-so-7.po || Exit 1
-cat <<EOF > xg-js-so-7.ok
+cat <<\EOF > xg-js-so-7.ok
msgid "Hello!"
msgstr ""
EOF
# Test JavaScript support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-js-so-8.js
+cat <<\EOF > xg-js-so-8.js
<x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x>
<x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x>
<x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x><x>
# Test librep support: --add-comments option.
-cat <<EOF > xg-lr-1.jl
+cat <<\EOF > xg-lr-1.jl
; This comment will not be extracted.
(princ (_ "help"))
;; TRANSLATORS: This is an extracted comment.
-d xg-lr-1.tmp xg-lr-1.jl || Exit 1
LC_ALL=C tr -d '\r' < xg-lr-1.tmp.po > xg-lr-1.po || Exit 1
-cat <<EOF > xg-lr-1.ok
+cat <<\EOF > xg-lr-1.ok
msgid "help"
msgstr ""
-d xg-lr-2.tmp xg-lr-2.jl || Exit 1
LC_ALL=C tr -d '\r' < xg-lr-2.tmp.po > xg-lr-2.po || Exit 1
-cat <<EOF > xg-lr-2.ok
+cat <<\EOF > xg-lr-2.ok
#. a
#. b
#. c
# Test librep support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-lr-so-1.jl
+cat <<\EOF > xg-lr-so-1.jl
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-lr-so-1.tmp xg-lr-so-1.jl || Exit 1
LC_ALL=C tr -d '\r' < xg-lr-so-1.tmp.po > xg-lr-so-1.po || Exit 1
-cat <<EOF > xg-lr-so-1.ok
+cat <<\EOF > xg-lr-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test librep support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-lr-so-2.jl
+cat <<\EOF > xg-lr-so-2.jl
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Test Lisp support: --add-comments option.
-cat <<EOF > xg-ls-1.lisp
+cat <<\EOF > xg-ls-1.lisp
; This comment will not be extracted.
(write-line (gettext "help"))
;; TRANSLATORS: This is an extracted comment.
-d xg-ls-1.tmp xg-ls-1.lisp || Exit 1
LC_ALL=C tr -d '\r' < xg-ls-1.tmp.po > xg-ls-1.po || Exit 1
-cat <<EOF > xg-ls-1.ok
+cat <<\EOF > xg-ls-1.ok
msgid "help"
msgstr ""
-d xg-ls-2.tmp xg-ls-2.lisp || Exit 1
LC_ALL=C tr -d '\r' < xg-ls-2.tmp.po > xg-ls-2.po || Exit 1
-cat <<EOF > xg-ls-2.ok
+cat <<\EOF > xg-ls-2.ok
#. a
#. b
#. c
# Test Lisp support: lisp-format string with a loop.
-cat <<EOF > xg-ls-3.lisp
+cat <<\EOF > xg-ls-3.lisp
(gettext "~{~*~}")
EOF
${XGETTEXT} --omit-header --no-location -d xg-ls-3.tmp xg-ls-3.lisp || Exit 1
LC_ALL=C tr -d '\r' < xg-ls-3.tmp.po > xg-ls-3.po || Exit 1
-cat <<EOF > xg-ls-3.ok
+cat <<\EOF > xg-ls-3.ok
#, lisp-format
msgid "~{~*~}"
msgstr ""
# Test Lisp support: lisp-format string with a complex nested loop.
-cat <<EOF > xg-ls-4.lisp
+cat <<\EOF > xg-ls-4.lisp
(gettext "A~0{B~0b~,v*C~:*D~,v*E~,v*F~0{G~0{H~}I~}J~^~}K")
EOF
${XGETTEXT} --omit-header --no-location -d xg-ls-4.tmp xg-ls-4.lisp || Exit 1
LC_ALL=C tr -d '\r' < xg-ls-4.tmp.po > xg-ls-4.po || Exit 1
-cat <<EOF > xg-ls-4.ok
+cat <<\EOF > xg-ls-4.ok
#, lisp-format
msgid "A~0{B~0b~,v*C~:*D~,v*E~,v*F~0{G~0{H~}I~}J~^~}K"
msgstr ""
# Test Lisp support: lisp-format string with a ~V at an unknown position.
-cat <<EOF > xg-ls-5.lisp
+cat <<\EOF > xg-ls-5.lisp
(gettext "~@?~v!")
EOF
${XGETTEXT} --omit-header --no-location -d xg-ls-5.tmp xg-ls-5.lisp || Exit 1
LC_ALL=C tr -d '\r' < xg-ls-5.tmp.po > xg-ls-5.po || Exit 1
-cat <<EOF > xg-ls-5.ok
+cat <<\EOF > xg-ls-5.ok
#, lisp-format
msgid "~@?~v!"
msgstr ""
# Test Lisp support: lisp-format string with initial arguments and a loop.
-cat <<EOF > xg-ls-6.lisp
+cat <<\EOF > xg-ls-6.lisp
(gettext "~{~}~^~:*~@{~,v*~w~}")
EOF
${XGETTEXT} --omit-header --no-location -d xg-ls-6.tmp xg-ls-6.lisp || Exit 1
LC_ALL=C tr -d '\r' < xg-ls-6.tmp.po > xg-ls-6.po || Exit 1
-cat <<EOF > xg-ls-6.ok
+cat <<\EOF > xg-ls-6.ok
#, lisp-format
msgid "~{~}~^~:*~@{~,v*~w~}"
msgstr ""
# Test Lisp support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-ls-so-1.lisp
+cat <<\EOF > xg-ls-so-1.lisp
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-ls-so-1.tmp xg-ls-so-1.lisp || Exit 1
LC_ALL=C tr -d '\r' < xg-ls-so-1.tmp.po > xg-ls-so-1.po || Exit 1
-cat <<EOF > xg-ls-so-1.ok
+cat <<\EOF > xg-ls-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test Lisp support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-ls-so-2.lisp
+cat <<\EOF > xg-ls-so-2.lisp
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
-d xg-lu-1.tmp xg-lu-1.lua || Exit 1
LC_ALL=C tr -d '\r' < xg-lu-1.tmp.po > xg-lu-1.po || Exit 1
-cat <<EOF > xg-lu-1.ok
+cat <<\EOF > xg-lu-1.ok
msgid "This is a test string."
msgstr ""
-d xg-lu-2.tmp xg-lu-2.lua || Exit 1
LC_ALL=C tr -d '\r' < xg-lu-2.tmp.po > xg-lu-2.po || Exit 1
-cat <<EOF > xg-lu-2.ok
+cat <<\EOF > xg-lu-2.ok
msgid "Hmm."
msgstr ""
# Test Lua support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-lu-so-1.lua
+cat <<\EOF > xg-lu-so-1.lua
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-lu-so-1.tmp xg-lu-so-1.lua || Exit 1
LC_ALL=C tr -d '\r' < xg-lu-so-1.tmp.po > xg-lu-so-1.po || Exit 1
-cat <<EOF > xg-lu-so-1.ok
+cat <<\EOF > xg-lu-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test Lua support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-lu-so-2.lua
+cat <<\EOF > xg-lu-so-2.lua
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Test Lua support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-lu-so-3.lua
+cat <<\EOF > xg-lu-so-3.lua
[ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [
[ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [
[ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [
${XGETTEXT} --omit-header --no-location -d xg-lu-so-3.tmp xg-lu-so-3.lua || Exit 1
LC_ALL=C tr -d '\r' < xg-lu-so-3.tmp.po > xg-lu-so-3.po || Exit 1
-cat <<EOF > xg-lu-so-3.ok
+cat <<\EOF > xg-lu-so-3.ok
msgid "Hello!"
msgstr ""
EOF
# Test Lua support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-lu-so-4.lua
+cat <<\EOF > xg-lu-so-4.lua
[ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [
[ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [
[ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [
# Test ObjectiveC support: --add-comments option.
-cat <<EOF > xg-ob-2.m
+cat <<\EOF > xg-ob-2.m
// This comment will not be extracted.
print (NSLocalizedString (@
"help"));
-d xg-ob-2.tmp xg-ob-2.m || Exit 1
LC_ALL=C tr -d '\r' < xg-ob-2.tmp.po > xg-ob-2.po || Exit 1
-cat <<EOF > xg-ob-2.ok
+cat <<\EOF > xg-ob-2.ok
msgid "help"
msgstr ""
# Test Perl support: --add-comments option.
-cat <<EOF > xg-pl-5.pl
+cat <<\EOF > xg-pl-5.pl
# This comment will not be extracted.
print gettext "help";
# TRANSLATORS: This is an extracted comment.
-d xg-pl-5.tmp xg-pl-5.pl || Exit 1
LC_ALL=C tr -d '\r' < xg-pl-5.tmp.po > xg-pl-5.po || Exit 1
-cat <<EOF > xg-pl-5.ok
+cat <<\EOF > xg-pl-5.ok
msgid "help"
msgstr ""
-d xg-pl-7.tmp xg-pl-7.pl || Exit 1
LC_ALL=C tr -d '\r' < xg-pl-7.tmp.po > xg-pl-7.po || Exit 1
-cat <<EOF > xg-pl-7.ok
+cat <<\EOF > xg-pl-7.ok
#. a
#. b
#. c
# Test Perl support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-pl-so-1.pl
+cat <<\EOF > xg-pl-so-1.pl
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
${XGETTEXT} --omit-header --no-location -d xg-pl-so-1.tmp xg-pl-so-1.pl || Exit 1
LC_ALL=C tr -d '\r' < xg-pl-so-1.tmp.po > xg-pl-so-1.po || Exit 1
-cat <<EOF > xg-pl-so-1.ok
+cat <<\EOF > xg-pl-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test Perl support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-pl-so-2.pl
+cat <<\EOF > xg-pl-so-2.pl
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
# Test Perl support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-pl-so-3.pl
+cat <<\EOF > xg-pl-so-3.pl
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
${XGETTEXT} --omit-header --no-location -d xg-pl-so-3.tmp xg-pl-so-3.pl || Exit 1
LC_ALL=C tr -d '\r' < xg-pl-so-3.tmp.po > xg-pl-so-3.po || Exit 1
-cat <<EOF > xg-pl-so-3.ok
+cat <<\EOF > xg-pl-so-3.ok
msgid "Hello!"
msgstr ""
EOF
# Test Perl support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-pl-so-4.pl
+cat <<\EOF > xg-pl-so-4.pl
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
# Test PHP support: --add-comments option.
-cat <<EOF > xg-ph-1.php
+cat <<\EOF > xg-ph-1.php
<?
// This comment will not be extracted.
echo _("help");
-d xg-ph-1.tmp xg-ph-1.php || Exit 1
LC_ALL=C tr -d '\r' < xg-ph-1.tmp.po > xg-ph-1.po || Exit 1
-cat <<EOF > xg-ph-1.ok
+cat <<\EOF > xg-ph-1.ok
msgid "help"
msgstr ""
# Test PHP support: here documents.
-cat <<EOF > xg-ph-2.php
+cat <<\EOF > xg-ph-2.php
<?
echo _("Egyptians");
echo <<<EOTMARKER
${XGETTEXT} --omit-header --no-location -d xg-ph-2s.tmp xg-ph-2s.php || Exit 1
LC_ALL=C tr -d '\r' < xg-ph-2s.tmp.po > xg-ph-2s.po || Exit 1
-cat <<EOF > xg-ph-2.ok
+cat <<\EOF > xg-ph-2.ok
msgid "Egyptians"
msgstr ""
-d xg-ph-3.tmp xg-ph-3.php || Exit 1
LC_ALL=C tr -d '\r' < xg-ph-3.tmp.po > xg-ph-3.po || Exit 1
-cat <<EOF > xg-ph-3.ok
+cat <<\EOF > xg-ph-3.ok
#. a
#. b
#. c
# Test PHP support: string concatenation.
-cat <<EOF > xg-ph-4.php
+cat <<\EOF > xg-ph-4.php
<?
echo _("foo"."bar");
echo _("hello " .
-d xg-ph-4.tmp xg-ph-4.php || Exit 1
LC_ALL=C tr -d '\r' < xg-ph-4.tmp.po > xg-ph-4.po || Exit 1
-cat <<EOF > xg-ph-4.ok
+cat <<\EOF > xg-ph-4.ok
msgid "foobar"
msgstr ""
# Test PHP support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-ph-so-1.php
+cat <<\EOF > xg-ph-so-1.php
<?
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-ph-so-1.tmp xg-ph-so-1.php || Exit 1
LC_ALL=C tr -d '\r' < xg-ph-so-1.tmp.po > xg-ph-so-1.po || Exit 1
-cat <<EOF > xg-ph-so-1.ok
+cat <<\EOF > xg-ph-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test PHP support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-ph-so-2.php
+cat <<\EOF > xg-ph-so-2.php
<?
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Test PHP support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-ph-so-3.php
+cat <<\EOF > xg-ph-so-3.php
<?
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
${XGETTEXT} --omit-header --no-location -d xg-ph-so-3.tmp xg-ph-so-3.php || Exit 1
LC_ALL=C tr -d '\r' < xg-ph-so-3.tmp.po > xg-ph-so-3.po || Exit 1
-cat <<EOF > xg-ph-so-3.ok
+cat <<\EOF > xg-ph-so-3.ok
msgid "Hello!"
msgstr ""
EOF
# Test PHP support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-ph-so-4.php
+cat <<\EOF > xg-ph-so-4.php
<?
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
# Test C, C++, PO extractors.
-cat <<EOF > xg-po-1.in.po
+cat <<\EOF > xg-po-1.in.po
#: file1.c:199
#, fuzzy
msgid "extract me"
msgstr "Again some text for fuzzy"
EOF
-cat <<EOF > xg-po-1.c
+cat <<\EOF > xg-po-1.c
#include <libintl.h>
#include <stdio.h>
int
}
EOF
-cat <<EOF > xg-po-1.cc
+cat <<\EOF > xg-po-1.cc
#include <iostream.h>
#include <libintl.h>
#include <locale.h>
-d xg-po-1.tmp xg-po-1.in.po xg-po-1.c xg-po-1.cc || Exit 1
LC_ALL=C tr -d '\r' < xg-po-1.tmp.po > xg-po-1.po || Exit 1
-cat <<EOF > xg-po-1.ok
+cat <<\EOF > xg-po-1.ok
#: file1.c:199
#, fuzzy
msgid "extract me"
# Test PO extractors with multiple input files.
-cat <<EOF > xg-po-2-1.po
+cat <<\EOF > xg-po-2-1.po
msgid "first msgid"
msgid_plural "first msgid (plural)"
msgstr[0] ""
msgstr[1] ""
EOF
-cat <<EOF > xg-po-2-2.po
+cat <<\EOF > xg-po-2-2.po
msgid "third msgid"
msgid_plural "third msgid (plural)"
msgstr[0] ""
${XGETTEXT} --omit-header xg-po-2-1.po xg-po-2-2.po -o xg-po-2.tmp.po || Exit 1
LC_ALL=C tr -d '\r' < xg-po-2.tmp.po > xg-po-2.po || Exit 1
-cat <<EOF > xg-po-2.ok
+cat <<\EOF > xg-po-2.ok
msgid "first msgid"
msgid_plural "first msgid (plural)"
msgstr[0] ""
# Test C, C++, JavaProperties extractors.
-cat <<EOF > xg-pr-1.in.properties
+cat <<\EOF > xg-pr-1.in.properties
#: file1.c:199
#, fuzzy
!extract\ me=some text to get fuzzy copied to result
!hello=Again some text for fuzzy
EOF
-cat <<EOF > xg-pr-1.c
+cat <<\EOF > xg-pr-1.c
#include <libintl.h>
#include <stdio.h>
int
}
EOF
-cat <<EOF > xg-pr-1.cc
+cat <<\EOF > xg-pr-1.cc
#include <iostream.h>
#include <libintl.h>
#include <locale.h>
-d xg-pr-1.tmp xg-pr-1.in.properties xg-pr-1.c xg-pr-1.cc || Exit 1
LC_ALL=C tr -d '\r' < xg-pr-1.tmp.po > xg-pr-1.po || Exit 1
-cat <<EOF > xg-pr-1.ok
+cat <<\EOF > xg-pr-1.ok
#: file1.c:199
#, fuzzy
msgid "extract me"
# Test Python support: --add-comments option.
-cat <<EOF > xg-py-2.py
+cat <<\EOF > xg-py-2.py
# This comment will not be extracted.
print gettext.gettext("help")
# TRANSLATORS: This is an extracted comment.
-d xg-py-2.tmp xg-py-2.py || Exit 1
LC_ALL=C tr -d '\r' < xg-py-2.tmp.po > xg-py-2.po || Exit 1
-cat <<EOF > xg-py-2.ok
+cat <<\EOF > xg-py-2.ok
msgid "help"
msgstr ""
-d xg-py-4.tmp xg-py-4.py || Exit 1
LC_ALL=C tr -d '\r' < xg-py-4.tmp.po > xg-py-4.po || Exit 1
-cat <<EOF > xg-py-4.ok
+cat <<\EOF > xg-py-4.ok
#. a
#. b
#. c
${XGETTEXT} --omit-header --no-location -d xg-py-6.tmp xg-py-6.py || Exit 1
LC_ALL=C tr -d '\r' < xg-py-6.tmp.po > xg-py-6.po || Exit 1
-cat <<EOF > xg-py-6.ok
+cat <<\EOF > xg-py-6.ok
msgid "{0:"
msgstr ""
EOF
--omit-header --no-location -d xg-py-7.tmp xg-py-7.py || Exit 1
LC_ALL=C tr -d '\r' < xg-py-7.tmp.po > xg-py-7.po || Exit 1
-cat <<EOF > xg-py-7.ok
+cat <<\EOF > xg-py-7.ok
#, python-format
msgid "blaold %d and %s"
msgstr ""
# Test Python support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-py-so-1.py
+cat <<\EOF > xg-py-so-1.py
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-py-so-1.tmp xg-py-so-1.py || Exit 1
LC_ALL=C tr -d '\r' < xg-py-so-1.tmp.po > xg-py-so-1.po || Exit 1
-cat <<EOF > xg-py-so-1.ok
+cat <<\EOF > xg-py-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test Python support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-py-so-2.py
+cat <<\EOF > xg-py-so-2.py
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Test Python support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-py-so-3.py
+cat <<\EOF > xg-py-so-3.py
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
${XGETTEXT} --omit-header --no-location -d xg-py-so-3.tmp xg-py-so-3.py || Exit 1
LC_ALL=C tr -d '\r' < xg-py-so-3.tmp.po > xg-py-so-3.po || Exit 1
-cat <<EOF > xg-py-so-3.ok
+cat <<\EOF > xg-py-so-3.ok
msgid "Hello!"
msgstr ""
EOF
# Test Python support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-py-so-4.py
+cat <<\EOF > xg-py-so-4.py
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
# Test Scheme support: --add-comments option.
-cat <<EOF > xg-sc-1.scm
+cat <<\EOF > xg-sc-1.scm
; This comment will not be extracted.
(display (_ "help"))
;; TRANSLATORS: This is an extracted comment.
-d xg-sc-1.tmp xg-sc-1.scm || Exit 1
LC_ALL=C tr -d '\r' < xg-sc-1.tmp.po > xg-sc-1.po || Exit 1
-cat <<EOF > xg-sc-1.ok
+cat <<\EOF > xg-sc-1.ok
msgid "help"
msgstr ""
# Test Scheme support: strings outside any function call.
-cat <<EOF > xg-sc-2.scm
+cat <<\EOF > xg-sc-2.scm
(define foo '("bar" "quux"))
EOF
: ${XGETTEXT=xgettext}
${XGETTEXT} -k_ --omit-header --no-location --force-po -d xg-sc-2 xg-sc-2.scm || Exit 1
-cat <<EOF > xg-sc-2.ok
+cat <<\EOF > xg-sc-2.ok
EOF
: ${DIFF=diff}
-d xg-sc-3.tmp xg-sc-3.scm || Exit 1
LC_ALL=C tr -d '\r' < xg-sc-3.tmp.po > xg-sc-3.po || Exit 1
-cat <<EOF > xg-sc-3.ok
+cat <<\EOF > xg-sc-3.ok
#. a
#. b
#. c
# Test Scheme support: GIMP script-fu extension _"..."
-cat <<EOF > xg-sc-4.scm
+cat <<\EOF > xg-sc-4.scm
(script-fu-register "script-fu-paste-as-brush"
_"New _Brush..."
_"Paste the clipboard contents into a new brush"
-d xg-sc-4.tmp xg-sc-4.scm || Exit 1
LC_ALL=C tr -d '\r' < xg-sc-4.tmp.po > xg-sc-4.po || Exit 1
-cat <<EOF > xg-sc-4.ok
+cat <<\EOF > xg-sc-4.ok
msgid "New _Brush..."
msgstr ""
# Test Scheme support: scheme-format string with a loop.
-cat <<EOF > xg-sc-5.scm
+cat <<\EOF > xg-sc-5.scm
(_ "~{~*~}")
EOF
${XGETTEXT} -k_ --omit-header --no-location -d xg-sc-5.tmp xg-sc-5.scm || Exit 1
LC_ALL=C tr -d '\r' < xg-sc-5.tmp.po > xg-sc-5.po || Exit 1
-cat <<EOF > xg-sc-5.ok
+cat <<\EOF > xg-sc-5.ok
#, scheme-format
msgid "~{~*~}"
msgstr ""
# Test Scheme support: scheme-format string with a complex nested loop.
-cat <<EOF > xg-sc-6.scm
+cat <<\EOF > xg-sc-6.scm
(_ "A~0{B~0b~,v*C~:*D~,v*E~,v*F~0{G~0{H~}I~}J~^~}K")
EOF
${XGETTEXT} -k_ --omit-header --no-location -d xg-sc-6.tmp xg-sc-6.scm || Exit 1
LC_ALL=C tr -d '\r' < xg-sc-6.tmp.po > xg-sc-6.po || Exit 1
-cat <<EOF > xg-sc-6.ok
+cat <<\EOF > xg-sc-6.ok
#, scheme-format
msgid "A~0{B~0b~,v*C~:*D~,v*E~,v*F~0{G~0{H~}I~}J~^~}K"
msgstr ""
# Test Scheme support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-sc-so-1.scm
+cat <<\EOF > xg-sc-so-1.scm
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} -k_ --omit-header --no-location -d xg-sc-so-1.tmp xg-sc-so-1.scm || Exit 1
LC_ALL=C tr -d '\r' < xg-sc-so-1.tmp.po > xg-sc-so-1.po || Exit 1
-cat <<EOF > xg-sc-so-1.ok
+cat <<\EOF > xg-sc-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test Scheme support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-sc-so-2.scm
+cat <<\EOF > xg-sc-so-2.scm
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Test Shell support: --add-comments option.
-cat <<EOF > xg-sh-2.sh
+cat <<\EOF > xg-sh-2.sh
# This comment will not be extracted.
gettext "help"
# TRANSLATORS: This is an extracted comment.
-d xg-sh-2.tmp xg-sh-2.sh || Exit 1
LC_ALL=C tr -d '\r' < xg-sh-2.tmp.po > xg-sh-2.po || Exit 1
-cat <<EOF > xg-sh-2.ok
+cat <<\EOF > xg-sh-2.ok
msgid "help"
msgstr ""
-d xg-sh-6.tmp xg-sh-6.sh || Exit 1
LC_ALL=C tr -d '\r' < xg-sh-6.tmp.po > xg-sh-6.po || Exit 1
-cat <<EOF > xg-sh-6.ok
+cat <<\EOF > xg-sh-6.ok
#. a
msgid "hello world"
msgstr ""
${XGETTEXT} --omit-header --no-location -d xg-sh-so-1.tmp xg-sh-so-1.sh || Exit 1
LC_ALL=C tr -d '\r' < xg-sh-so-1.tmp.po > xg-sh-so-1.po || Exit 1
-cat <<EOF > xg-sh-so-1.ok
+cat <<\EOF > xg-sh-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test Shell support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-sh-so-3.sh
+cat <<\EOF > xg-sh-so-3.sh
x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(
x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(
x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(x<(
# Test Shell support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-sh-so-4.sh
+cat <<\EOF > xg-sh-so-4.sh
x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(
x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(
x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(x>(
${XGETTEXT} --omit-header --no-location -d xg-sh-so-5.tmp xg-sh-so-5.sh || Exit 1
LC_ALL=C tr -d '\r' < xg-sh-so-5.tmp.po > xg-sh-so-5.po || Exit 1
-cat <<EOF > xg-sh-so-5.ok
+cat <<\EOF > xg-sh-so-5.ok
msgid "Hello!"
msgstr ""
EOF
# Test Smalltalk support: --add-comments option.
-cat <<EOF > xg-st-1.st
+cat <<\EOF > xg-st-1.st
"This comment will not be extracted."
Transcript showCr: (NLS ? 'help').
" TRANSLATORS: This is an extracted comment."
-d xg-st-1.tmp xg-st-1.st || Exit 1
LC_ALL=C tr -d '\r' < xg-st-1.tmp.po > xg-st-1.po || Exit 1
-cat <<EOF > xg-st-1.ok
+cat <<\EOF > xg-st-1.ok
msgid "help"
msgstr ""
-d xg-st-2.tmp xg-st-2.st || Exit 1
LC_ALL=C tr -d '\r' < xg-st-2.tmp.po > xg-st-2.po || Exit 1
-cat <<EOF > xg-st-2.ok
+cat <<\EOF > xg-st-2.ok
#. a
#. b
#. c
# Test Tcl support: --add-comments option.
-cat <<EOF > xg-t-2.tcl
+cat <<\EOF > xg-t-2.tcl
# This comment will not be extracted.
puts [_ "help"]
# TRANSLATORS: This is an extracted comment.
-d xg-t-2.tmp xg-t-2.tcl || Exit 1
LC_ALL=C tr -d '\r' < xg-t-2.tmp.po > xg-t-2.po || Exit 1
-cat <<EOF > xg-t-2.ok
+cat <<\EOF > xg-t-2.ok
msgid "help"
msgstr ""
-d xg-t-3.tmp xg-t-3.tcl || Exit 1
LC_ALL=C tr -d '\r' < xg-t-3.tmp.po > xg-t-3.po || Exit 1
-cat <<EOF > xg-t-3.ok
+cat <<\EOF > xg-t-3.ok
#. a
msgid "hello world"
msgstr ""
# Test Tcl support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-t-so-1.tcl
+cat <<\EOF > xg-t-so-1.tcl
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
${XGETTEXT} -k_ --omit-header --no-location -d xg-t-so-1.tmp xg-t-so-1.tcl || Exit 1
LC_ALL=C tr -d '\r' < xg-t-so-1.tmp.po > xg-t-so-1.po || Exit 1
-cat <<EOF > xg-t-so-1.ok
+cat <<\EOF > xg-t-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test Tcl support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-t-so-2.tcl
+cat <<\EOF > xg-t-so-2.tcl
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
# Test Tcl support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-t-so-3.tcl
+cat <<\EOF > xg-t-so-3.tcl
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
${XGETTEXT} -k_ --omit-header --no-location -d xg-t-so-3.tmp xg-t-so-3.tcl || Exit 1
LC_ALL=C tr -d '\r' < xg-t-so-3.tmp.po > xg-t-so-3.po || Exit 1
-cat <<EOF > xg-t-so-3.ok
+cat <<\EOF > xg-t-so-3.ok
msgid "Hello!"
msgstr ""
EOF
# Test Tcl support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-t-so-4.tcl
+cat <<\EOF > xg-t-so-4.tcl
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
# Test Vala support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-vala-so-1.vala
+cat <<\EOF > xg-vala-so-1.vala
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-vala-so-1.tmp xg-vala-so-1.vala || Exit 1
LC_ALL=C tr -d '\r' < xg-vala-so-1.tmp.po > xg-vala-so-1.po || Exit 1
-cat <<EOF > xg-vala-so-1.ok
+cat <<\EOF > xg-vala-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test Vala support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-vala-so-2.vala
+cat <<\EOF > xg-vala-so-2.vala
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Plural test for YCP
#
-cat <<EOF > xg-y-1.ycp
+cat <<\EOF > xg-y-1.ycp
title = sformat (_("%1 package", "%1 packages", num), num);
EOF
${XGETTEXT} --omit-header --no-location -k:1,2 -d xg-y-1.tmp xg-y-1.ycp || Exit 1
LC_ALL=C tr -d '\r' < xg-y-1.tmp.po > xg-y-1.po || Exit 1
-cat <<EOF > xg-y-1.ok
+cat <<\EOF > xg-y-1.ok
#, ycp-format
msgid "%1 package"
msgid_plural "%1 packages"
# Test YCP support: --add-comments option.
-cat <<EOF > xg-y-2.ycp
+cat <<\EOF > xg-y-2.ycp
// This comment will not be extracted.
print (_("help"));
// TRANSLATORS: This is an extracted comment.
-d xg-y-2.tmp xg-y-2.ycp || Exit 1
LC_ALL=C tr -d '\r' < xg-y-2.tmp.po > xg-y-2.po || Exit 1
-cat <<EOF > xg-y-2.ok
+cat <<\EOF > xg-y-2.ok
msgid "help"
msgstr ""
-d xg-y-4.tmp xg-y-4.ycp || Exit 1
LC_ALL=C tr -d '\r' < xg-y-4.tmp.po > xg-y-4.po || Exit 1
-cat <<EOF > xg-y-4.ok
+cat <<\EOF > xg-y-4.ok
#. a
#. b
#. c
# Test YCP support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-y-so-1.ycp
+cat <<\EOF > xg-y-so-1.ycp
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
${XGETTEXT} --omit-header --no-location -d xg-y-so-1.tmp xg-y-so-1.ycp || Exit 1
LC_ALL=C tr -d '\r' < xg-y-so-1.tmp.po > xg-y-so-1.po || Exit 1
-cat <<EOF > xg-y-so-1.ok
+cat <<\EOF > xg-y-so-1.ok
msgid "Hello!"
msgstr ""
EOF
# Test YCP support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-y-so-2.ycp
+cat <<\EOF > xg-y-so-2.ycp
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
# Test YCP support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-y-so-3.ycp
+cat <<\EOF > xg-y-so-3.ycp
_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(
_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(
_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(
${XGETTEXT} --omit-header --no-location -d xg-y-so-3.tmp xg-y-so-3.ycp || Exit 1
LC_ALL=C tr -d '\r' < xg-y-so-3.tmp.po > xg-y-so-3.po || Exit 1
-cat <<EOF > xg-y-so-3.ok
+cat <<\EOF > xg-y-so-3.ok
msgid "Hello!"
msgstr ""
EOF
# Test YCP support: stack overflow prevented by nesting depth check.
-cat <<EOF > xg-y-so-4.ycp
+cat <<\EOF > xg-y-so-4.ycp
_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(
_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(
_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(_(