#! /bin/sh . "${srcdir=.}/init.sh"; path_prepend_ . ../src # Test checking of Python brace format strings. cat <<\EOF > f-pyb-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}" # Invalid: added argument 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}" # Valid: "{{" is an escape of "{" msgid "abc{{{x1}{x2}" msgstr "{x2}abc{x1}" EOF : ${MSGFMT=msgfmt} n=0 while read comment; do read msgid_line read msgstr_line n=`expr $n + 1` cat < f-pyb-2-$n.po #, python-brace-format ${msgid_line} ${msgstr_line} EOF fail= if echo "$comment" | grep 'Valid:' > /dev/null; then if ${MSGFMT} --check-format -o f-pyb-2-$n.mo f-pyb-2-$n.po; then : else fail=yes fi else ${MSGFMT} --check-format -o f-pyb-2-$n.mo f-pyb-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-pyb-2-$n.po 1>&2 exit 1 fi rm -f f-pyb-2-$n.po f-pyb-2-$n.mo done < f-pyb-2.data exit 0