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

# Test various msginit options.

# This test fails on mingw, because it relies on the 'project-id' script,
# which is a shell script (for maintainability) and there is no simple way
# to execute shell scripts in a native Windows environment.
# People who need this functionality should use a Cygwin environment, not
# a native Windows environment.

# This test may fail on Cygwin before 'make install', because the PATH set in
# msginit.c considers the installation directory, not the build directory.

cat <<\EOF > mi-test3.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#, c-format
msgid "'Your command, please?', asked the waiter."
msgstr ""

#, c-format
msgid "a piece of cake"
msgid_plural "%d pieces of cake"
msgstr[0] ""
msgstr[1] ""

#, c-format
msgid "%s is replaced by %s."
msgstr ""
EOF

: ${MSGINIT=msginit}
GETTEXTLIBDIR_SRCDIR="$wabs_top_srcdir"/src \
${MSGINIT} -l ga_IE --no-translator -o mi-test3.tmp 2>mi-test3.err
test $? = 0 || { cat mi-test3.err 1>&2; Exit 1; }

grep "Project-Id-Version: gt-msginit " mi-test3.tmp 2>&1 >/dev/null || Exit 1

# The charset stored in the header entry is the locale encoding of the gl_IE
# locale, which is system dependent, or ASCII if the locale does not exist.
#
# Project-Id-Version contains version constructed from a temporary
# directory name
sed -e '1,10d' -e 's/ISO-8859-1/ASCII/g' -e 's/CP1252/ASCII/g' -e 's/UTF-8/ASCII/g' < mi-test3.tmp | grep -v Project-Id-Version | LC_ALL=C tr -d '\r' > mi-test3.out || Exit 1
cat <<\EOF > mi-test3.ok
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ga\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"

#, c-format
msgid "'Your command, please?', asked the waiter."
msgstr ""

#, c-format
msgid "a piece of cake"
msgid_plural "%d pieces of cake"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""

#, c-format
msgid "%s is replaced by %s."
msgstr ""
EOF

: ${DIFF=diff}
${DIFF} mi-test3.ok mi-test3.out
result=$?

exit $result
