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

# Test checking of Java format strings.

cat <<\EOF > f-j-2.data
# Invalid: invalid msgstr
msgid  "abc{0}def"
msgstr "abc{"
# Valid: same arguments
msgid  "abc{1}def"
msgstr "xyz{1}"
# Valid: same arguments, differently written
msgid  "abc{1}def"
msgstr "xyz{01}"
# Valid: permutation
msgid  "abc{2}{0}{1}def"
msgstr "xyz{1}{0}{2}"
# Invalid: too few arguments
msgid  "abc{1}def{0}"
msgstr "xyz{0}"
# Invalid: too many arguments
msgid  "abc{0}def"
msgstr "xyz{0}uvw{1}"
# Invalid: missing non-final argument
msgid  "abc{1}def{0}"
msgstr "xyz{1}"
# Invalid: added non-final argument
msgid  "abc{1}def"
msgstr "xyz{0}{1}"
# Invalid: different number of arguments
msgid  "abc{500000000}def"
msgstr "xyz{500000001}"
# Valid: type compatibility
msgid  "abc{1,number}"
msgstr "xyz{1,choice,0#zero|1#{1,number}}"
# Valid: type compatibility
msgid  "abc{1,number}"
msgstr "xyz{1,number,currency}"
# Valid: type compatibility
msgid  "abc{1,number}"
msgstr "xyz{1,number,percent}"
# Valid: type compatibility
msgid  "abc{1,number}"
msgstr "xyz{1,number,integer}"
# Valid: type compatibility
msgid  "abc{1,number}"
msgstr "xyz{1,number,###,##0}"
# Valid: type compatibility
msgid  "abc{1,date}"
msgstr "xyz{1,time}"
# Valid: type compatibility
msgid  "abc{1,date}"
msgstr "xyz{1,date,short}"
# Valid: type compatibility
msgid  "abc{1,date}"
msgstr "xyz{1,date,medium}"
# Valid: type compatibility
msgid  "abc{1,date}"
msgstr "xyz{1,date,long}"
# Valid: type compatibility
msgid  "abc{1,date}"
msgstr "xyz{1,date,full}"
# Valid: type compatibility
msgid  "abc{1,date}"
msgstr "xyz{1,date,yyyy-MM-dd}"
# Valid: type compatibility
msgid  "abc{1,time}"
msgstr "xyz{1,time,short}"
# Valid: type compatibility
msgid  "abc{1,time}"
msgstr "xyz{1,time,medium}"
# Valid: type compatibility
msgid  "abc{1,time}"
msgstr "xyz{1,time,long}"
# Valid: type compatibility
msgid  "abc{1,time}"
msgstr "xyz{1,time,full}"
# Valid: type compatibility
msgid  "abc{1,time}"
msgstr "xyz{1,time,}"
# Valid: type compatibility
msgid  "abc{1,time}"
msgstr "xyz{1,time,hh:mm:ss}"
# Invalid: type incompatibility
msgid  "abc{1}"
msgstr "xyz{1,number}"
# Invalid: type incompatibility
msgid  "abc{1}"
msgstr "xyz{1,date}"
# Invalid: type incompatibility
msgid  "abc{1,time}"
msgstr "xyz{1,number}"
# Invalid: type incompatibility
msgid  "abc{1,number}"
msgstr "xyz{1,date}"
# Invalid: type incompatibility
msgid  "abc{1}"
msgstr "xyz{1,choice,0#zero|1#{1,number}}"
# Invalid: type incompatibility
msgid  "abc{1}"
msgstr "xyz{1,choice,0#zero|1#{0,number}}"
# Invalid: type incompatibility
msgid  "abc{0,number}{1}"
msgstr "xyz{0,choice,0#zero|1#{1,number}}"
EOF

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

Exit 0
