blob: a3bb0aa8bd753638fd8d5f64815c87542e769e30 [file] [log] [blame]
#!/bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src
# Test of Vala support.
: ${XGETTEXT=xgettext}
cat <<\EOF > xg-vala-1.err.vala
int main (string[] args) {
var r1 = /a
EOF
(LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location -o - xg-vala-1.err.vala 2>&1; exit) | grep 'regular expression literal terminated too early' || Exit 1
cat <<\EOF > xg-vala-1.vala
int main (string[] args) {
var s1 = "Simple string, " + " no gettext needed";
var c1 = '\'';
var empty = "";
// This is a C++ style comment
var s2 = _("Extract this first string");
var s3 = "Prefix _(" + _("Extract this second string") + ") Postfix";
var empty_verbatim = """""";
if (args[0] == _("Extract this thirth string")) {
/* _("This is a comment and must not be extracted!") */
}
var s4 = _("""Extract this
""\t\a
fourth string""");
var s5 = _("Extract this \u2464th string");
var s6 = /_("This is a regex literal and must not be extracted!")\|/i;
var i1 = 1000;
i1 = 1 + /_("Regex literal after '+'")/.get_capture_count ();
i1 = 1 - /_("Regex literal after '-'")/.get_capture_count ();
i1 = 1 & /_("Regex literal after '-'")/.get_capture_count ();
i1 = 1 ^ /_("Regex literal after '^'")/.get_capture_count ();
if (1 < /_("Regex literal after '<'")/.get_capture_count ())
return 1;
if (1 <= /_("Regex literal after '<='")/.get_capture_count ())
return 1;
if (1 != /_("Regex literal after '!='")/.get_capture_count ())
return 1;
if (! /_("Regex literal after '!'")/.match(s1))
return 1;
if (true && /_("Regex literal after '&&'")/.match(s1))
return 1;
if (false || /_("Regex literal after '||'")/.match(s1))
return 1;
var r1 = true ? /_("Regex literal after '?'")/ :
/_("Regex literal after ':'")/;
var r2 = true ?? /_("Regex literal after '??'")/;
i1 += 1 << /_("Regex literal after '+='")/.get_capture_count ();
i1 *= /_("Regex literal after '*='")/.get_capture_count ();
i1 /= /_("Regex literal after '/='")/.get_capture_count ();
i1 %= /_("Regex literal after '%='")/.get_capture_count ();
i1 <<= /_("Regex literal after '<<='")/.get_capture_count ();
i1 |= /_("Regex literal after '|='")/.get_capture_count ();
i1++;
i1--;
i1 = i1 / i1;
GLib.Timeout.add (10, () => { return false; });
var d1 = 10e-1;
var d2 = 10E-1;
/* This is a
multiline C style comment */
var s7 = _("Extract this //sixth string");
var s8 = _(@"This is a template string, which cannot be extracted!");
/* /= shouldn't start a regex literal */
var i5 = 1000;
i5 /= 10;
return 0;
}
class Foo : Object {
// @ isn't always followed by a template string.
public static Foo @new (void) {
return null;
}
}
EOF
${XGETTEXT} --add-comments --no-location -o xg-vala-1.tmp xg-vala-1.vala 2>xg-vala-1.err
test $? = 0 || { cat xg-vala-1.err; Exit 1; }
func_filter_POT_Creation_Date xg-vala-1.tmp xg-vala-1.pot
cat <<\EOF > xg-vala-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"
#. This is a C++ style comment
msgid "Extract this first string"
msgstr ""
msgid "Extract this second string"
msgstr ""
msgid "Extract this thirth string"
msgstr ""
msgid ""
"Extract this\n"
" \"\"\\t\\a\n"
" fourth string"
msgstr ""
msgid "Extract this ⑤th string"
msgstr ""
#. This is a
#. multiline C style comment
msgid "Extract this //sixth string"
msgstr ""
EOF
: ${DIFF=diff}
${DIFF} xg-vala-1.ok xg-vala-1.pot
result=$?
test $result = 0 || exit $result
# Test --extract-all option.
${XGETTEXT} --extract-all --add-comments --no-location -o xg-vala-1.tmp xg-vala-1.vala 2>xg-vala-1.err
test $? = 0 || { cat xg-vala-1.err; Exit 1; }
func_filter_POT_Creation_Date xg-vala-1.tmp xg-vala-1.pot
cat <<\EOF > xg-vala-1.all.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"
msgid "Simple string, no gettext needed"
msgstr ""
#. This is a C++ style comment
msgid "Extract this first string"
msgstr ""
msgid "Prefix _("
msgstr ""
msgid "Extract this second string"
msgstr ""
msgid ") Postfix"
msgstr ""
msgid "Extract this thirth string"
msgstr ""
msgid ""
"Extract this\n"
" \"\"\\t\\a\n"
" fourth string"
msgstr ""
msgid "Extract this ⑤th string"
msgstr ""
#. This is a
#. multiline C style comment
msgid "Extract this //sixth string"
msgstr ""
EOF
${DIFF} xg-vala-1.all.ok xg-vala-1.pot
result=$?
test $result = 0 || exit $result