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

# Test comparison with PO files with previous msgids.
# Test --use-fuzzy option.

cat <<\EOF > mc-test4.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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. TRANSLATORS: An error message.
#: src/args.c:242
#, c-format
msgid "Too many arguments."
msgstr ""

#. TRANSLATORS: An error message.
#: src/args.c:247
#, c-format
msgid "Too few arguments."
msgstr ""

# Oder besser "fehlende Argumente"?
#. TRANSLATORS: An error message.
#: src/args.c:273
#, c-format
msgid "Missing arguments."
msgstr ""
EOF

cat <<\EOF > mc-test4.po1
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. TRANSLATORS: An error message.
#: src/args.c:242
#, fuzzy, c-format
#| msgid "too many arguments"
msgid "Too many arguments."
msgstr "zu viele Argumente"

#. TRANSLATORS: An error message.
#: src/args.c:247
#, fuzzy, c-format
#| msgid "too many arguments"
msgid "Too few arguments."
msgstr "zu viele Argumente"

# Oder besser "fehlende Argumente"?
#. TRANSLATORS: An error message.
#: src/args.c:273
#, fuzzy, c-format
#| msgid "missing arguments"
msgid "Missing arguments."
msgstr "Argumente fehlen"

#: getopt.c:796 getopt.c:799
#, fuzzy, c-format
#| msgid "%s: invalid option -- %c\n"
msgid "%s: illegal option -- %c\n"
msgstr "%s: ungültige Option -- %c\n"

#: getopt.c:805 getopt.c:808
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ungültige Option -- %c\n"
EOF

# Verify that with fuzzies, all msgids of the POT file are covered.
: ${MSGCMP=msgcmp}
LC_MESSAGES=C LC_ALL= \
${MSGCMP} --use-fuzzy mc-test4.po1 mc-test4.pot > mc-test4.out11 2>&1 || Exit 1
if grep -v 'warning:' mc-test4.out11 > /dev/null; then
  Exit 1;
fi

# Verify that without fuzzies, not all msgids of the POT file are covered.
: ${MSGCMP=msgcmp}
LC_MESSAGES=C LC_ALL= \
${MSGCMP} mc-test4.po1 mc-test4.pot > mc-test4.out12 2>&1
test $? = 1 || { Exit 1; }
grep -v 'warning:' mc-test4.out12 > /dev/null || Exit 1

cat <<\EOF > mc-test4.po2
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. TRANSLATORS: An error message.
#: src/args.c:242
#, c-format
#| msgid "too many arguments"
msgid "Too many arguments."
msgstr "Zu viele Argumente."

#. TRANSLATORS: An error message.
#: src/args.c:247
#, c-format
#| msgid "too many arguments"
msgid "Too few arguments."
msgstr "Zu wenige Argumente."

# Oder besser "fehlende Argumente"?
#. TRANSLATORS: An error message.
#: src/args.c:273
#, c-format
#| msgid "missing arguments"
msgid "Missing arguments."
msgstr "Argumente fehlen."

#: getopt.c:796 getopt.c:799
#, fuzzy, c-format
#| msgid "%s: invalid option -- %c\n"
msgid "%s: illegal option -- %c\n"
msgstr "%s: ungültige Option -- %c\n"

#: getopt.c:805 getopt.c:808
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ungültige Option -- %c\n"
EOF

# Verify that without fuzzies, all msgids of the POT file are covered.
# Verify that previous msgids are ignored even when specified on non-fuzzy
# messages.
: ${MSGCMP=msgcmp}
LC_MESSAGES=C LC_ALL= \
${MSGCMP} mc-test4.po2 mc-test4.pot > mc-test4.out2 2>&1 || Exit 1
if grep -v 'warning:' mc-test4.out2 > /dev/null; then
  Exit 1;
fi

exit $result
