#! /bin/sh . "${srcdir=.}/init.sh"; path_prepend_ . ../src # Test checking of Perl brace format strings. cat <<\EOF > f-pb-2.data # Valid: same named arguments msgid "abc{date}{time}" msgstr "xyz{date}{time}" # Valid: permutation msgid "abc{x3}{x1}{x2}def" msgstr "xyz{x2}{x1}{x3}" # Invalid: missing argument msgid "abc{x2}def{x1}" msgstr "xyz{x1}" # Invalid: missing argument msgid "abc{x1}def{x2}" msgstr "xyz{x2}" # Valid: added argument (valid since "{zoo}" expands to itself) msgid "abc{foo}def" msgstr "xyz{foo}uvw{zoo}" # Valid: multiple reuse of same argument msgid "{foo} {bar} {baz}" msgstr "{baz} {bar} {foo} {bar}" # Valid: single reuse of same argument msgid "{baz} {bar} {foo} {bar}" msgstr "{foo} {bar} {baz}" EOF : ${MSGFMT=msgfmt} n=0 while read comment; do read msgid_line read msgstr_line n=`expr $n + 1` cat < f-pb-2-$n.po #, perl-brace-format ${msgid_line} ${msgstr_line} EOF fail= if echo "$comment" | grep 'Valid:' > /dev/null; then if ${MSGFMT} --check-format -o f-pb-2-$n.mo f-pb-2-$n.po; then : else fail=yes fi else ${MSGFMT} --check-format -o f-pb-2-$n.mo f-pb-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-pb-2-$n.po 1>&2 exit 1 fi rm -f f-pb-2-$n.po f-pb-2-$n.mo done < f-pb-2.data exit 0