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

# Test recognition of C format strings.

cat <<\EOF > f-c-1.data
# Valid: no argument
"abc%%"
# Valid: one character argument
"abc%c"
# Valid: one string argument
"abc%s"
# Valid: one integer argument
"abc%i"
# Valid: one integer argument
"abc%d"
# Valid: one integer argument
"abc%o"
# Valid: one integer argument
"abc%u"
# Valid: one integer argument
"abc%x"
# Valid: one integer argument
"abc%X"
# Valid: one floating-point argument
"abc%e"
# Valid: one floating-point argument
"abc%E"
# Valid: one floating-point argument
"abc%f"
# Valid: one floating-point argument
"abc%F"
# Valid: one floating-point argument
"abc%g"
# Valid: one floating-point argument
"abc%G"
# Valid: one floating-point argument
"abc%a"
# Valid: one floating-point argument
"abc%A"
# Valid: one pointer argument
"abc%p"
# Valid: one argument with flags
"abc%0#g"
# Valid: one argument with width
"abc%2g"
# Valid: one argument with width
"abc%*g"
# Valid: one argument with precision
"abc%.4g"
# Valid: one argument with precision
"abc%.*g"
# Valid: one argument with width and precision
"abc%14.4g"
# Valid: one argument with width and precision
"abc%14.*g"
# Valid: one argument with width and precision
"abc%*.4g"
# Valid: one argument with width and precision
"abc%*.*g"
# Valid: one argument with size specifier
"abc%hhi"
# Valid: one argument with size specifier
"abc%hi"
# Valid: one argument with size specifier
"abc%li"
# Valid: one argument with size specifier
"abc%lli"
# Valid: one argument with size specifier
"abc%Lg"
# Valid: one argument with size specifier
"abc%qi"
# Valid: one argument with size specifier
"abc%ji"
# Valid: one argument with size specifier
"abc%zi"
# Valid: one argument with size specifier
"abc%ti"
# Invalid: unterminated
"abc%"
# Invalid: unknown format specifier
"abc%y"
# Invalid: flags after width
"abc%*0g"
# Invalid: twice precision
"abc%.4.2g"
# Valid: three arguments
"abc%d%u%u"
# Valid: a numbered argument
"abc%1$d"
# Invalid: zero
"abc%0$d"
# Valid: two-digit numbered arguments
"abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
# Invalid: unterminated number
"abc%1"
# Invalid: flags before number
"abc%+1$d"
# Valid: three arguments, two with same number
"abc%1$4x,%2$c,%1$u"
# Invalid: argument with conflicting types
"abc%1$4x,%2$c,%1$s"
# Valid: no conflict
"abc%1$4x,%2$c,%1$u"
# Invalid: mixing of numbered and unnumbered arguments
"abc%d%2$x"
# Valid: numbered argument with constant precision
"abc%1$.9x"
# Invalid: mixing of numbered and unnumbered arguments
"abc%1$.*x"
# Invalid: missing non-final argument
"abc%2$x%3$s"
# Valid: permutation
"abc%2$ddef%1$d"
# Valid: multiple uses of same argument
"abc%2$xdef%1$pghi%2$x"
# Valid: one argument with width
"abc%2$#*1$g"
# Valid: one argument with width and precision
"abc%3$*2$.*1$g"
# Invalid: zero
"abc%2$*0$.*1$g"
EOF

: ${XGETTEXT=xgettext}
n=0
while read comment; do
  read string
  n=`expr $n + 1`
  cat <<EOF > f-c-1-$n.in
gettext(${string});
EOF
  ${XGETTEXT} -L C -o f-c-1-$n.po f-c-1-$n.in || Exit 1
  test -f f-c-1-$n.po || Exit 1
  fail=
  if echo "$comment" | grep 'Valid:' > /dev/null; then
    if grep c-format f-c-1-$n.po > /dev/null; then
      :
    else
      fail=yes
    fi
  else
    if grep c-format f-c-1-$n.po > /dev/null; then
      fail=yes
    else
      :
    fi
  fi
  if test -n "$fail"; then
    echo "Format string recognition error:" 1>&2
    cat f-c-1-$n.in 1>&2
    echo "Got:" 1>&2
    cat f-c-1-$n.po 1>&2
    Exit 1
  fi
  rm -f f-c-1-$n.in f-c-1-$n.po
done < f-c-1.data

Exit 0
