#! /bin/sh # Test checking of Qt format strings. tmpfiles="" trap 'rm -fr $tmpfiles' 1 2 3 15 tmpfiles="$tmpfiles f-qt-2.data" cat <<\EOF > f-qt-2.data # Valid: %% doesn't count msgid "abc%%def" msgstr "xyz" # Invalid: invalid msgstr msgid "abc%1def" msgstr "xyz%1%1" # Valid: same arguments msgid "abc%2def" msgstr "xyz%2" # Valid: permutation msgid "abc%3%1%2def" msgstr "xyz%2%1%3" # Invalid: too few arguments msgid "abc%2def%1" msgstr "xyz%1" # Invalid: too many arguments msgid "abc%1def" msgstr "xyz%1uvw%2" # Invalid: missing non-final argument msgid "abc%2def%1" msgstr "xyz%2" # Invalid: added non-final argument msgid "abc%2def" msgstr "xyz%1%2" EOF : ${MSGFMT=msgfmt} n=0 while read comment; do read msgid_line read msgstr_line n=`expr $n + 1` tmpfiles="$tmpfiles f-qt-2-$n.po f-qt-2-$n.mo" cat < f-qt-2-$n.po #, qt-format ${msgid_line} ${msgstr_line} EOF fail= if echo "$comment" | grep 'Valid:' > /dev/null; then if ${MSGFMT} --check-format -o f-qt-2-$n.mo f-qt-2-$n.po; then : else fail=yes fi else ${MSGFMT} --check-format -o f-qt-2-$n.mo f-qt-2-$n.po 2> /dev/null if test $? = 1; then : else fail=yes fi fi if test -n "$fail"; then echo "Format string checking error:" 1>&2 cat f-qt-2-$n.po 1>&2 exit 1 fi rm -f f-qt-2-$n.po f-qt-2-$n.mo done < f-qt-2.data rm -fr $tmpfiles exit 0