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

# Test merging of a message which has c-format specified in ref.pot but not
# in def.po.

cat <<EOF > mm-test13.po
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: cog_training 1.0\n"
"POT-Creation-Date: 2001-04-29 22:40+0200\n"
"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
"Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"

#: foobar.c:11
#, c-format
msgid "file named %s"
msgstr "Datei namens %s"

#: foobar.c:12
#, c-format
msgid "directory named %s"
msgstr "Verzeichnis namens %s"

#: foobar.c:13
msgid "result %s"
msgstr "Ergebnis %s"

#: foobar.c:14
msgid "intermediate result %s"
msgstr "Zwischenergebnis %d"

#: foobar.c:15
msgid "%age"
msgstr "%-Satz"
EOF

cat <<EOF > mm-test13.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2001-04-30 18:51+0200\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=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"

#: foobar.c:21
#, c-format
msgid "file named %s"
msgstr ""

#: foobar.c:22
msgid "directory named %s"
msgstr ""

#: foobar.c:23
#, c-format
msgid "result %s"
msgstr ""

#: foobar.c:24
#, c-format
msgid "intermediate result %s"
msgstr ""

#: foobar.c:25
msgid "%age"
msgstr ""
EOF

: ${MSGMERGE=msgmerge}
${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
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: cog_training 1.0\n"
"POT-Creation-Date: 2001-04-30 18:51+0200\n"
"PO-Revision-Date: 2001-04-29 21:19+02:00\n"
"Last-Translator: Felix N. <xyz@zyx.uucp>\n"
"Language-Team: German <de@li.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"

#: foobar.c:21
#, c-format
msgid "file named %s"
msgstr "Datei namens %s"

#: foobar.c:22
msgid "directory named %s"
msgstr "Verzeichnis namens %s"

#: foobar.c:23
#, c-format
msgid "result %s"
msgstr "Ergebnis %s"

#: foobar.c:24
#, fuzzy, c-format
msgid "intermediate result %s"
msgstr "Zwischenergebnis %d"

#: foobar.c:25
msgid "%age"
msgstr "%-Satz"
EOF

: ${DIFF=diff}
${DIFF} mm-test13.ok mm-test13.out
result=$?

exit $result
