#!/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 , 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 \n" "Language-Team: LANGUAGE \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 , 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 \n" "Language-Team: LANGUAGE \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