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

# Test of Glade 2 support for msgctxt.

cat <<EOF > xg-gl-5-empty.glade
<?xml version="1.0"?>
<GTK-Interface/>
EOF

: ${XGETTEXT=xgettext}
${XGETTEXT} -o xg-gl-5.pot xg-gl-5-empty.glade 2>/dev/null
test $? = 0 || {
  echo "Skipping test: xgettext was built without Glade support"
  Exit 77
}

cat <<EOF > xg-gl-5.glade
<?xml version="1.0"?>
<glade-interface>
  <!-- interface-requires gtk+ 2.8 -->
  <!-- interface-naming-policy project-wide -->
  <widget class="GtkWindow" id="window1">
    <child>
      <widget class="GtkVBox" id="vbox">
        <property name="visible">True</property>
        <property name="orientation">vertical</property>
        <child>
          <widget class="GtkButton" id="with_context">
            <property name="label" translatable="yes" context="yes">Shape|Form</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </widget>
          <packing>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <widget class="GtkButton" id="without_context">
            <property name="label" translatable="yes">Shape|Form</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </widget>
          <packing>
            <property name="position">1</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
</glade-interface>
EOF

: ${XGETTEXT=xgettext}
${XGETTEXT} -o xg-gl-5.tmp xg-gl-5.glade || Exit 1
# Don't simplify this to "grep ... < xg-gl-5.tmp", otherwise OpenBSD 4.0 grep
# only outputs "Binary file (standard input) matches".
cat xg-gl-5.tmp | grep -v 'POT-Creation-Date' > xg-gl-5.pot

cat <<\EOF > xg-gl-5.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=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: xg-gl-5.glade:12
msgctxt "Shape"
msgid "Form"
msgstr ""

#: xg-gl-5.glade:23
msgid "Shape|Form"
msgstr ""
EOF

: ${DIFF=diff}
${DIFF} xg-gl-5.ok xg-gl-5.pot
result=$?

test $result = 0 || {
  exit $result
}

# Check with --extract-all option
rm xg-gl-5.tmp
${XGETTEXT} -a -o xg-gl-5.tmp xg-gl-5.glade || Exit 1
# Don't simplify this to "grep ... < xg-gl-5.tmp", otherwise OpenBSD 4.0 grep
# only outputs "Binary file (standard input) matches".
cat xg-gl-5.tmp | grep -v 'POT-Creation-Date' > xg-gl-5.pot

${DIFF} xg-gl-5.ok xg-gl-5.pot
result=$?

test $result = 0 || {
  exit $result
}

cat <<EOF > xg-gl-5b.glade
<?xml version="1.0"?>
<glade-interface>
  <!-- interface-requires gtk+ 2.8 -->
  <!-- interface-naming-policy project-wide -->
  <widget class="GtkWindow" id="window1">
    <child>
      <widget class="GtkVBox" id="vbox">
        <property name="visible">True</property>
        <property name="orientation">vertical</property>
        <child>
          <widget class="GtkButton" id="with_context">
            <property name="label" translatable="yes" context="yes">ShapeForm</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </widget>
          <packing>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <widget class="GtkButton" id="without_context">
            <property name="label" translatable="yes">Shape|Form</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </widget>
          <packing>
            <property name="position">1</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
</glade-interface>
EOF

: ${XGETTEXT=xgettext}
${XGETTEXT} -o xg-gl-5b.tmp xg-gl-5b.glade 2>/dev/null || Exit 1
# Don't simplify this to "grep ... < xg-gl-5b.tmp", otherwise OpenBSD 4.0 grep
# only outputs "Binary file (standard input) matches".
cat xg-gl-5b.tmp | grep -v 'POT-Creation-Date' > xg-gl-5b.pot

cat <<\EOF > xg-gl-5b.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=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: xg-gl-5b.glade:23
msgid "Shape|Form"
msgstr ""
EOF

: ${DIFF=diff}
${DIFF} xg-gl-5b.ok xg-gl-5b.pot
result=$?

exit $result
