#! /bin/sh . "${srcdir=.}/init.sh"; path_prepend_ . ../src # Test C support: C++11 string literals. : ${XGETTEXT=xgettext} cat <<\EOF > err0.cc gettext ("aaa( bbb )ccc"); EOF (LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location --no-wrap -o - err0.cc 2>&1; exit) | grep 'unterminated string literal' || exit 1 cat <<\EOF > err1.cc gettext (R"aaa( bbb )ccc"); EOF (LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location --no-wrap -o - err1.cc 2>&1; exit) | grep 'unterminated string literal' || exit 1 cat <<\EOF > xg-c-20.cc #define X "" gettext (X"This is a concatenation of a macro and a string"); #define RR "" gettext (RR"This (is NOT a raw string"); #define u8RR "" gettext (u8RR"This (is NOT a raw string"); #define uRR "" gettext (uRR"This (is NOT a raw string"); #define URR "" gettext (URR"This (is NOT a raw string"); #define LRR "" gettext (LRR"This (is NOT a raw string"); #define uX "" gettext (uX"This (is NOT a raw string"); gettext (u8"This is a UTF-8 string"); u88"This is not a UTF-8 string"; u"This is a UTF-16 string"; U"This is a UTF-32 string"; L"This is a wide string"; gettext (R"aaa( This is a raw string )aaa"); gettext (u8R"aaa( This is a raw UTF-8 string )aaa"); uR"aaa( This is a UTF-16 raw string )aaa"; LR"aaa( This is a wide raw string )aaa"; // 'LR' prefixed raw string should be skipped. LR"( baz gettext(\"abc\"); )"; EOF ${XGETTEXT} --add-comments --no-location --no-wrap \ -o - xg-c-20.cc | grep -v 'POT-Creation-Date' > xg-c-20.tmp.po \ || exit 1 LC_ALL=C tr -d '\r' < xg-c-20.tmp.po > xg-c-20.po || exit 1 cat <<\EOF > xg-c-20.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=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" msgid "This is a concatenation of a macro and a string" msgstr "" msgid "This (is NOT a raw string" msgstr "" msgid "This is a UTF-8 string" msgstr "" msgid "" "\n" "This is a raw string\n" msgstr "" msgid "" "\n" "This is a raw UTF-8 string\n" msgstr "" EOF : ${DIFF=diff} ${DIFF} xg-c-20.ok xg-c-20.po || exit 1 cat <<\EOF > xg-c-20.c gettext (R"aaa(This is NOT a raw string"); gettext (u8R"aaa(This is NOT a raw string"); uR"aaa(This is NOT a raw string"; EOF ${XGETTEXT} --add-comments --no-location --no-wrap \ -o - xg-c-20.c | grep -v 'POT-Creation-Date' > xg-c-20c.tmp.po \ || exit 1 LC_ALL=C tr -d '\r' < xg-c-20c.tmp.po > xg-c-20c.po || exit 1 cat <<\EOF > xg-c-20c.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=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" msgid "aaa(This is NOT a raw string" msgstr "" EOF ${DIFF} xg-c-20c.ok xg-c-20c.po || exit 1