#! /bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

# Test basic functionality, duplicate detection, multiple domains.

if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
    ac_n= ac_c='
' ac_t='        '
  else
    ac_n=-n ac_c= ac_t=
  fi
else
  ac_n= ac_c='\c' ac_t=
fi

test -d mf-2 || mkdir mf-2
test -d mf-2/LC_MESSAGES || mkdir mf-2/LC_MESSAGES

cat <<EOF > mf-2-module1.po
#default domain "messages.mo"
msgid	"SYS_(C)\n"
msgstr "MSGFMT(3) portable message object file compiler\n"
"Copyright (C) 1995 Free Software Foundation\n"
"Report bugs to <bug-gnu-utils@gnu.org>\n"
msgid	"msg 1"
msgstr	"msg 1 translation"
#
domain	"help_dom"
msgid	"help 2 %d"
msgstr	"help 2 translation"
#
domain	"error_dom"
msgid	"error 3"
msgstr	"error 3 translation"
EOF

cat <<EOF > mf-2-module2.po
# ---
#default domain "messages.mo"
msgid	"mesg 4"
msgstr	"mesg 4 translation"
#
domain	"error_dom"
msgid	"error 3"
msgstr	"alternate error 3 translation"
msgid	"error 5"
msgstr	"error 5 translation"
#
domain	"window_dom"
msgid	"window 6"
msgstr	"window 6 translation"
EOF

# Without use of msgcat, expect a "duplicate message definition" error.
: ${MSGFMT=msgfmt}
if ${MSGFMT} -o mf-2/LC_MESSAGES/gen.mo mf-2-module1.po mf-2-module2.po 2> /dev/null; then
  Exit 1
fi

# With msgcat, it should work.
: ${MSGCAT=msgcat} ${MSGFMT=msgfmt}
${MSGCAT} --use-first -o mf-2-modules.po mf-2-module1.po mf-2-module2.po || Exit 1
${MSGFMT} -o mf-2/LC_MESSAGES/gen.mo mf-2-modules.po || Exit 1

: ${GETTEXT=gettext}
TEXTDOMAINDIR=. LANGUAGE=mf-2 \
${GETTEXT} --env LC_ALL=en gen 'error 3' > mf-test2.out

echo $ac_n "error 3 translation$ac_c" > gtmf-test2.ok

: ${DIFF=diff}
${DIFF} gtmf-test2.ok mf-test2.out
result=$?

exit $result
