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

# Test recognition of GCC internal format strings.

cat <<\EOF > f-gi-1.data
# Valid: no argument
"abc%%"
# Valid: no argument
"abc%<"
# Valid: no argument
"abc%>"
# Valid: no argument
"abc%'"
# Valid: no argument
"abc%m"
# 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 and one string argument
"abc%.*s"
# Valid: one pointer argument
"abc%p"
# Valid: one pointer argument
"abc%H"
# Valid: one pointer argument
"%J"
# Valid: %J not at start
"abc%J"
# Valid: %J with flags
"%qJ"
# Valid: %K with flags
"%qK"
# Valid: one pointer argument
"abc%D"
# Valid: one pointer argument
"abc%F"
# Valid: one pointer argument
"abc%T"
# Valid: one pointer argument
"abc%A"
# Valid: one pointer argument
"abc%C"
# Valid: one pointer argument
"abc%E"
# Valid: one pointer argument
"abc%L"
# Valid: one pointer argument
"abc%O"
# Valid: one pointer argument
"abc%P"
# Valid: one pointer argument
"abc%Q"
# Valid: one pointer argument
"abc%V"
# Valid: one argument with flags
"abc%qdef"
# Valid: one argument with flags
"abc%+#Ag"
# Valid: one argument with size specifier
"abc%li"
# Valid: one argument with size specifier
"abc%lli"
# Invalid: one argument with invalid size specifier
"abc%llli"
# Valid: one argument with size specifier
"abc%wi"
# Invalid: unterminated
"abc%"
# Invalid: unknown format specifier
"abc%y"
# Invalid: precision with non-string
"abc%.*c"
# Invalid: twice precision
"abc%.*.*s"
# 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$x,%2$c,%1$u"
# Invalid: argument with conflicting types
"abc%1$x,%2$c,%1$s"
# Valid: no conflict
"abc%1$x,%2$c,%1$u"
# Invalid: mixing of numbered and unnumbered arguments
"abc%d%2$x"
# Valid: numbered argument with constant precision
"abc%1$.9s"
# Invalid: mixing of numbered and unnumbered arguments
"abc%1$.*s"
# Valid: 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$sghi%2$x"
# Valid: one argument with precision
"abc%2$#.*1$s"
# Invalid: non-string argument with precision
"abc%2$#.*1$d"
# Invalid: one argument with width
"abc%2$#*1$s"
# Invalid: one argument with width and precision
"abc%3$*2$.*1$s"
# Invalid: zero
"abc%1$#.*0$s"
EOF

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

Exit 0
