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

# Test checking of Qt format strings.

cat <<\EOF > f-qt-2.data
# Valid: %% doesn't count
msgid  "abc%%def"
msgstr "xyz"
# Valid: same arguments
msgid  "abc%2def"
msgstr "xyz%2"
# Valid: same arguments, msgstr may be simpler than msgid
msgid  "abc%L2def"
msgstr "xyz%2"
# Valid: same arguments, msgstr may be simpler than msgid
msgid  "abc%02def"
msgstr "xyz%2"
# Invalid: msgid is simple but msgstr is not
msgid  "abc%2def"
msgstr "xyz%L2"
# Invalid: msgid is simple but msgstr is not
msgid  "abc%2def"
msgstr "xyz%02"
# Valid: repetition of an argument in the translation
msgid  "abc%2def"
msgstr "xyz%2uvw%2"
# Valid: removing repeated argument in the translation
msgid  "abc%2def%2"
msgstr "xyz%2uvw"
# 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`
  cat <<EOF > 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

Exit 0
