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

# Test of Python support.

cat <<\EOF > xg-py-1.py
# interpret_ansic = true, interpret_unicode = false
_("abc\
\\def\'ghi\"jkl\a\b\f\n\r\t\v x\040x\x7ey\u0142\U00010123\N{LATIN SMALL LETTER Z}");

# interpret_ansic = false, interpret_unicode = false
_(r"abc\
\\def\'ghi\"jkl\a\b\f\n\r\t\v x\040x\x7ey\u0142\U00010123\N{LATIN SMALL LETTER Z}");

# interpret_ansic = true, interpret_unicode = true
_(u"abc\
\\def\'ghi\"jkl\a\b\f\n\r\t\v x\040x\x7ey\u0142\U00010123\N{LATIN SMALL LETTER Z}");

# interpret_ansic = false, interpret_unicode = true
_(ur"abc\
\\def\'ghi\"jkl\a\b\f\n\r\t\v x\040x\x7ey\u0142\U00010123\N{LATIN SMALL LETTER Z}");

# This will not be extracted.
_(CATEGORIES["default"]["name"]);

# string concatenation
_("abc" "def" + "ghi"
"jkl" + mno)
EOF

: ${XGETTEXT=xgettext}
${XGETTEXT} --add-comments --no-location -o xg-py-1.tmp xg-py-1.py 2>xg-py-1.err
test $? = 0 || { cat xg-py-1.err; Exit 1; }
func_filter_POT_Creation_Date xg-py-1.tmp xg-py-1.pot

cat <<\EOF > xg-py-1.ok
# 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=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. interpret_ansic = true, interpret_unicode = false
msgid ""
"abc\\def'ghi\"jkl\a\b\f\n"
"\r\t\v x x~y\\u0142\\U00010123\\N{LATIN SMALL LETTER Z}"
msgstr ""

#. interpret_ansic = false, interpret_unicode = false
msgid ""
"abc\\\n"
"\\\\def\\'ghi\\\"jkl\\a\\b\\f\\n\\r\\t\\v x\\040x\\x7ey"
"\\u0142\\U00010123\\N{LATIN SMALL LETTER Z}"
msgstr ""

#. interpret_ansic = true, interpret_unicode = true
msgid ""
"abc\\def'ghi\"jkl\a\b\f\n"
"\r\t\v x x~ył𐄣z"
msgstr ""

#. interpret_ansic = false, interpret_unicode = true
msgid ""
"abc\\\n"
"\\\\def\\'ghi\\\"jkl\\a\\b\\f\\n\\r\\t\\v x\\040x\\x7eył\\U00010123\\N{LATIN "
"SMALL LETTER Z}"
msgstr ""

#. string concatenation
msgid "abcdefghijkl"
msgstr ""
EOF

: ${DIFF=diff}
${DIFF} xg-py-1.ok xg-py-1.pot
result=$?

exit $result
