#! /bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

# Test checking of Python format strings.

cat <<\EOF > f-p-2.data
# Valid: %% doesn't count
msgid  "abc%%def"
msgstr "xyz"
# Invalid: invalid msgstr
msgid  "abc%%def"
msgstr "xyz%"
# Valid: same arguments, with different widths
msgid  "abc%2sdef"
msgstr "xyz%3s"
# Invalid: too few arguments
msgid  "abc%sdef%u"
msgstr "xyz%s"
# Invalid: too many arguments
msgid  "abc%udef"
msgstr "xyz%uvw%c"
# Valid: same named arguments, with different widths
msgid  "abc%(date)5s%(time)4s"
msgstr "xyz%(date)4s%(time)5s"
# Valid: permutation
msgid  "abc%(3)d%(1)c%(2)sdef"
msgstr "xyz%(2)s%(1)c%(3)d"
# Invalid: missing argument
msgid  "abc%(2)sdef%(1)u"
msgstr "xyz%(1)u"
# Invalid: missing argument
msgid  "abc%(1)sdef%(2)u"
msgstr "xyz%(2)u"
# Invalid: added argument
msgid  "abc%(foo)udef"
msgstr "xyz%(foo)uvw%(char)c"
# Invalid: added argument
msgid  "abc%(foo)udef"
msgstr "xyz%(foo)uvw%(zoo)c"
# Invalid: unnamed vs. named arguments
msgid  "abc%sdef"
msgstr "xyz%(value)s"
# Invalid: named vs. unnamed arguments
msgid  "abc%(value)sdef"
msgstr "xyz%s"
# Valid: type compatibility
msgid  "abc%s"
msgstr "xyz%r"
# Valid: type compatibility
msgid  "abc%r"
msgstr "xyz%s"
# Valid: type compatibility
msgid  "abc%i"
msgstr "xyz%d"
# Valid: type compatibility
msgid  "abc%i"
msgstr "xyz%u"
# Valid: type compatibility
msgid  "abc%i"
msgstr "xyz%o"
# Valid: type compatibility
msgid  "abc%i"
msgstr "xyz%x"
# Valid: type compatibility
msgid  "abc%i"
msgstr "xyz%X"
# Valid: type compatibility
msgid  "abc%e"
msgstr "xyz%E"
# Valid: type compatibility
msgid  "abc%e"
msgstr "xyz%f"
# Valid: type compatibility
msgid  "abc%e"
msgstr "xyz%g"
# Valid: type compatibility
msgid  "abc%e"
msgstr "xyz%G"
# Invalid: type incompatibility
msgid  "abc%c"
msgstr "xyz%s"
# Invalid: type incompatibility
msgid  "abc%c"
msgstr "xyz%.0s"
# Invalid: type incompatibility
msgid  "abc%c"
msgstr "xyz%i"
# Invalid: type incompatibility
msgid  "abc%c"
msgstr "xyz%e"
# Invalid: type incompatibility
msgid  "abc%s"
msgstr "xyz%i"
# Invalid: type incompatibility
msgid  "abc%.0s"
msgstr "xyz%i"
# Invalid: type incompatibility
msgid  "abc%s"
msgstr "xyz%e"
# Invalid: type incompatibility
msgid  "abc%.0s"
msgstr "xyz%e"
# Invalid: type incompatibility
msgid  "abc%i"
msgstr "xyz%e"
# Invalid: type incompatibility for width
msgid  "abc%g%*g"
msgstr "xyz%*g%g"
EOF

: ${MSGFMT=msgfmt}
n=0
while read comment; do
  read msgid_line
  read msgstr_line
  n=`expr $n + 1`
  cat <<EOF > f-p-2-$n.po
#, python-format
${msgid_line}
${msgstr_line}
EOF
  fail=
  if echo "$comment" | grep 'Valid:' > /dev/null; then
    if ${MSGFMT} --check-format -o f-p-2-$n.mo f-p-2-$n.po; then
      :
    else
      fail=yes
    fi
  else
    ${MSGFMT} --check-format -o f-p-2-$n.mo f-p-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-p-2-$n.po 1>&2
    Exit 1
  fi
  rm -f f-p-2-$n.po f-p-2-$n.mo
done < f-p-2.data

Exit 0
