Blame gettext-tools/tests/msgfmt-2

Packit 5b56b6
#! /bin/sh
Packit 5b56b6
. "${srcdir=.}/init.sh"; path_prepend_ . ../src
Packit 5b56b6
Packit 5b56b6
# Test basic functionality, duplicate detection, multiple domains.
Packit 5b56b6
Packit 5b56b6
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
Packit 5b56b6
  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
Packit 5b56b6
  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
Packit 5b56b6
    ac_n= ac_c='
Packit 5b56b6
' ac_t='        '
Packit 5b56b6
  else
Packit 5b56b6
    ac_n=-n ac_c= ac_t=
Packit 5b56b6
  fi
Packit 5b56b6
else
Packit 5b56b6
  ac_n= ac_c='\c' ac_t=
Packit 5b56b6
fi
Packit 5b56b6
Packit 5b56b6
test -d mf-2 || mkdir mf-2
Packit 5b56b6
test -d mf-2/LC_MESSAGES || mkdir mf-2/LC_MESSAGES
Packit 5b56b6
Packit 5b56b6
cat <<EOF > mf-2-module1.po
Packit 5b56b6
#default domain "messages.mo"
Packit 5b56b6
msgid	"SYS_(C)\n"
Packit 5b56b6
msgstr "MSGFMT(3) portable message object file compiler\n"
Packit 5b56b6
"Copyright (C) 1995 Free Software Foundation\n"
Packit 5b56b6
"Report bugs to <bug-gnu-utils@gnu.org>\n"
Packit 5b56b6
msgid	"msg 1"
Packit 5b56b6
msgstr	"msg 1 translation"
Packit 5b56b6
#
Packit 5b56b6
domain	"help_dom"
Packit 5b56b6
msgid	"help 2 %d"
Packit 5b56b6
msgstr	"help 2 translation"
Packit 5b56b6
#
Packit 5b56b6
domain	"error_dom"
Packit 5b56b6
msgid	"error 3"
Packit 5b56b6
msgstr	"error 3 translation"
Packit 5b56b6
EOF
Packit 5b56b6
Packit 5b56b6
cat <<EOF > mf-2-module2.po
Packit 5b56b6
# ---
Packit 5b56b6
#default domain "messages.mo"
Packit 5b56b6
msgid	"mesg 4"
Packit 5b56b6
msgstr	"mesg 4 translation"
Packit 5b56b6
#
Packit 5b56b6
domain	"error_dom"
Packit 5b56b6
msgid	"error 3"
Packit 5b56b6
msgstr	"alternate error 3 translation"
Packit 5b56b6
msgid	"error 5"
Packit 5b56b6
msgstr	"error 5 translation"
Packit 5b56b6
#
Packit 5b56b6
domain	"window_dom"
Packit 5b56b6
msgid	"window 6"
Packit 5b56b6
msgstr	"window 6 translation"
Packit 5b56b6
EOF
Packit 5b56b6
Packit 5b56b6
# Without use of msgcat, expect a "duplicate message definition" error.
Packit 5b56b6
: ${MSGFMT=msgfmt}
Packit 5b56b6
if ${MSGFMT} -o mf-2/LC_MESSAGES/gen.mo mf-2-module1.po mf-2-module2.po 2> /dev/null; then
Packit 5b56b6
  exit 1
Packit 5b56b6
fi
Packit 5b56b6
Packit 5b56b6
# With msgcat, it should work.
Packit 5b56b6
: ${MSGCAT=msgcat} ${MSGFMT=msgfmt}
Packit 5b56b6
${MSGCAT} --use-first -o mf-2-modules.po mf-2-module1.po mf-2-module2.po || exit 1
Packit 5b56b6
${MSGFMT} -o mf-2/LC_MESSAGES/gen.mo mf-2-modules.po || exit 1
Packit 5b56b6
Packit 5b56b6
: ${GETTEXT=gettext}
Packit 5b56b6
TEXTDOMAINDIR=. LANGUAGE=mf-2 \
Packit 5b56b6
${GETTEXT} --env LC_ALL=en gen 'error 3' > mf-test2.out
Packit 5b56b6
Packit 5b56b6
echo $ac_n "error 3 translation$ac_c" > gtmf-test2.ok
Packit 5b56b6
Packit 5b56b6
: ${DIFF=diff}
Packit 5b56b6
${DIFF} gtmf-test2.ok mf-test2.out
Packit 5b56b6
result=$?
Packit 5b56b6
Packit 5b56b6
exit $result