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

# Test recognition of Boost format strings.

cat <<\EOF > f-bo-1.data
# Valid: no argument
"abc%%"
# Valid: one character argument
"abc%c"
# Valid: one character argument
"abc%|c|"
# Valid: one string argument
"abc%s"
# Valid: one string argument
"abc%|s|"
# Valid: one integer argument
"abc%i"
# Valid: one integer argument
"abc%|i|"
# Valid: one integer argument
"abc%d"
# Valid: one integer argument
"abc%|d|"
# Valid: one integer argument
"abc%o"
# Valid: one integer argument
"abc%|o|"
# Valid: one integer argument
"abc%u"
# Valid: one integer argument
"abc%|u|"
# Valid: one integer argument
"abc%x"
# Valid: one integer argument
"abc%|x|"
# 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%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%G"
# Valid: one floating-point argument
"abc%|G|"
# Valid: one pointer argument
"abc%p"
# Valid: one pointer argument
"abc%|p|"
# Valid: no argument
"abc%n"
# Valid: no argument
"abc%|n|"
# Valid: one argument with flags
"abc%0#g"
# Valid: one argument with flags
"abc%|0#g|"
# Valid: one argument with width
"abc%2g"
# Valid: one argument with width
"abc%|2g|"
# Valid: one argument with width
"abc%*g"
# Valid: one argument with width
"abc%|*g|"
# Valid: one argument with precision
"abc%.4g"
# Valid: one argument with precision
"abc%|.4g|"
# Valid: one argument with precision
"abc%.*g"
# 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.4g|"
# Valid: one argument with width and precision
"abc%14.*g"
# 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%|*.4g|"
# Valid: one argument with width and precision
"abc%*.*g"
# Valid: one argument with width and precision
"abc%|*.*g|"
# Valid: one argument with size specifier
"abc%hhi"
# Valid: one argument with size specifier
"abc%|hhi|"
# Valid: one argument with size specifier
"abc%hi"
# Valid: one argument with size specifier
"abc%|hi|"
# Valid: one argument with size specifier
"abc%li"
# Valid: one argument with size specifier
"abc%|li|"
# Valid: one argument with size specifier
"abc%lli"
# Valid: one argument with size specifier
"abc%|lli|"
# Valid: one argument with size specifier
"abc%Lg"
# Valid: one argument with size specifier
"abc%|Lg|"
# Invalid: unknown size specifier
"abc%qi"
# Invalid: unknown size specifier
"abc%|qi|"
# Invalid: unknown size specifier
"abc%ji"
# Invalid: unknown size specifier
"abc%|ji|"
# Invalid: unknown size specifier
"abc%zi"
# Invalid: unknown size specifier
"abc%|zi|"
# Invalid: unterminated
"abc%"
# Invalid: unterminated
"abc%|"
# Invalid: unterminated
"abc%|d"
# Invalid: unknown format specifier
"abc%a"
# Invalid: unknown format specifier
"abc%|a|"
# Invalid: unknown format specifier
"abc%A"
# Invalid: unknown format specifier
"abc%|A|"
# Invalid: unknown format specifier
"abc%F"
# Invalid: unknown format specifier
"abc%|F|"
# Invalid: unknown format specifier
"abc%y"
# Invalid: unknown format specifier
"abc%|y|"
# Invalid: flags after width
"abc%*0g"
# Invalid: flags after width
"abc%|*0g|"
# Invalid: twice precision
"abc%.4.2g"
# Invalid: twice precision
"abc%|.4.2g|"
# Valid: three arguments
"abc%d%u%u"
# Valid: three arguments, mixed syntax
"abc%|d|%u%u"
# Valid: three arguments, mixed syntax
"abc%d%u%|u|"
# Valid: a numbered argument
"abc%1$d"
# Valid: a numbered argument
"abc%|1$d|"
# Valid: a numbered argument
"abc%1%"
# Invalid: zero
"abc%0$d"
# Invalid: zero
"abc%|0$d|"
# Invalid: zero
"abc%0%def"
# 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"
# Valid: two-digit numbered arguments
"abc%|11$d|ef%|10$d|gh%|9$d|ij%|8$d|kl%|7$d|mn%|6$d|op%|5$d|qr%|4$d|st%|3$d|uv%|2$d|wx%|1$d|yz"
# Invalid: unterminated number
"abc%1"
# Valid: omitted directive number
"abc%|1|"
# Invalid: flags before number
"abc%+1$d"
# Invalid: flags before number
"abc%|+1$d|"
# Valid: three arguments, two with same number
"abc%1$4x,%2$c,%1$u"
# 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$p"
# Invalid: argument with conflicting types
"abc%|1$4x|,%|2$c|,%|1$p|"
# Valid: no conflict
"abc%1$4x,%2$c,%1$s"
# Valid: no conflict
"abc%|1$4x|,%|2$c|,%|1$s|"
# Valid: no conflict
"abc%1$4x,%2$c,%1$u"
# Valid: no conflict
"abc%|1$4x|,%|2$c|,%|1$u|"
# Invalid: mixing of numbered and unnumbered arguments
"abc%d%2$x"
# Invalid: mixing of numbered and unnumbered arguments
"abc%|d|%|2$x|"
# Invalid: mixing of numbered and unnumbered arguments
"abc%|d|%2%"
# Valid: numbered argument with constant precision
"abc%1$.9x"
# Valid: numbered argument with constant precision
"abc%|1$.9x|"
# Invalid: mixing of numbered and unnumbered arguments
"abc%1$.*x"
# Invalid: mixing of numbered and unnumbered arguments
"abc%|1$.*x|"
# Valid: missing non-final argument
"abc%2$x%3$s"
# Valid: missing non-final argument
"abc%|2$x|%|3$s|"
# Valid: missing non-final argument
"abc%2%%3%"
# Valid: permutation
"abc%2$ddef%1$d"
# Valid: permutation
"abc%|2$d|def%|1$d|"
# Valid: multiple uses of same argument
"abc%2$xdef%1$pghi%2$x"
# Valid: multiple uses of same argument
"abc%|2$x|def%|1$p|ghi|%2$x|"
# Valid: one argument with width
"abc%2$#*1$g"
# Valid: one argument with width
"abc%|2$#*1$g|"
# Valid: one argument with width and precision
"abc%3$*2$.*1$g"
# Valid: one argument with width and precision
"abc%|3$*2$.*1$g|"
# Invalid: zero
"abc%2$*0$.*1$g"
# Invalid: zero
"abc%|2$*0$.*1$g|"
# Valid: tab
"abc%t"
# Valid: tab
"abc%9t"
# Valid: tab
"abc%|9t|"
# Invalid: unterminated directive
"abc%T"
# Valid: tab
"abc%T "
# Valid: tab
"abc%99T "
# Invalid: unterminated directive
"abc%|99T "
# Invalid: unterminated directive
"abc%|99T|"
# Valid: tab
"abc%|99T |"
# Valid: tab
"abc%|99T||"
EOF

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

Exit 0
