2 . "${srcdir=.}/init.sh"; path_prepend_ . ../src
4 # Test recognition of Perl format strings.
6 cat <<\EOF > f-pl-1.data
9 # Valid: one small integer argument
11 # Valid: one string argument
13 # Valid: one scalar vector argument
15 # Valid: one pointer argument
17 # Valid: one integer argument
19 # Valid: one integer argument
21 # Valid: one integer argument
23 # Valid: one integer argument
25 # Valid: one integer argument
27 # Valid: one integer argument
29 # Valid: one integer argument
31 # Valid: one integer argument
33 # Valid: one integer argument
35 # Valid: one integer argument
37 # Valid: one floating-point argument
39 # Valid: one floating-point argument
41 # Valid: one floating-point argument
43 # Valid: one floating-point argument
45 # Valid: one floating-point argument
47 # Valid: one floating-point argument
49 # Valid: one argument with flags
51 # Valid: one argument with width
53 # Valid: one argument with width
55 # Valid: one argument with precision
57 # Valid: one argument with precision
59 # Valid: one argument with width and precision
61 # Valid: one argument with width and precision
63 # Valid: one argument with width and precision
65 # Valid: one argument with width and precision
67 # Valid: one argument with size specifier
69 # Valid: one argument with size specifier
71 # Valid: one argument with size specifier
73 # Valid: one argument with size specifier
75 # Valid: one argument with size specifier
77 # Valid: one argument with size specifier
79 # Valid: one argument with size specifier
81 # Valid: one argument with size specifier
83 # Valid: one argument with size specifier
85 # Invalid: unterminated
87 # Invalid: unknown format specifier
89 # Invalid: flags after width
91 # Invalid: twice precision
93 # Valid: three arguments
95 # Valid: a numbered argument
99 # Valid: two-digit numbered arguments
100 "abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
101 # Invalid: unterminated number
103 # Invalid: flags before number
105 # Valid: three arguments, two with same number
107 # Invalid: argument with conflicting types
111 # Valid: mixing of numbered and unnumbered arguments
113 # Valid: numbered argument with constant precision
115 # Valid: mixing of numbered and unnumbered arguments
117 # Valid: missing non-final argument
121 # Valid: multiple uses of same argument
122 "abc%2$xdef%1$pghi%2$x"
123 # Valid: one argument with width
125 # Valid: one argument with width and precision
131 : ${XGETTEXT=xgettext}
133 while read comment; do
136 sed -e 's,\$,\\$,g' <<EOF > f-pl-1-$n.in
139 ${XGETTEXT} -L Perl -o f-pl-1-$n.po f-pl-1-$n.in || exit 1
140 test -f f-pl-1-$n.po || exit 1
142 if echo "$comment" | grep 'Valid:' > /dev/null; then
143 if grep perl-format f-pl-1-$n.po > /dev/null; then
149 if grep perl-format f-pl-1-$n.po > /dev/null; then
155 if test -n "$fail"; then
156 echo "Format string recognition error:" 1>&2
157 cat f-pl-1-$n.in 1>&2
159 cat f-pl-1-$n.po 1>&2
162 rm -f f-pl-1-$n.in f-pl-1-$n.po