2 . "${srcdir=.}/init.sh"; path_prepend_ . ../src
4 # Test recognition of C format strings.
6 cat <<\EOF > f-c-1.data
9 # Valid: one character argument
11 # Valid: one string argument
13 # Valid: one integer argument
15 # Valid: one integer argument
17 # Valid: one integer argument
19 # Valid: one integer argument
21 # Valid: one integer argument
23 # Valid: one integer argument
25 # Valid: one floating-point argument
27 # Valid: one floating-point argument
29 # Valid: one floating-point argument
31 # Valid: one floating-point argument
33 # Valid: one floating-point argument
35 # Valid: one floating-point argument
37 # Valid: one floating-point argument
39 # Valid: one floating-point argument
41 # Valid: one pointer argument
43 # Valid: one argument with flags
45 # Valid: one argument with width
47 # Valid: one argument with width
49 # Valid: one argument with precision
51 # Valid: one argument with precision
53 # Valid: one argument with width and precision
55 # Valid: one argument with width and precision
57 # Valid: one argument with width and precision
59 # Valid: one argument with width and precision
61 # Valid: one argument with size specifier
63 # Valid: one argument with size specifier
65 # Valid: one argument with size specifier
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 # Invalid: unterminated
81 # Invalid: unknown format specifier
83 # Invalid: flags after width
85 # Invalid: twice precision
87 # Valid: three arguments
89 # Valid: a numbered argument
93 # Valid: two-digit numbered arguments
94 "abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
95 # Invalid: unterminated number
97 # Invalid: flags before number
99 # Valid: three arguments, two with same number
101 # Invalid: argument with conflicting types
105 # Invalid: mixing of numbered and unnumbered arguments
107 # Valid: numbered argument with constant precision
109 # Invalid: mixing of numbered and unnumbered arguments
111 # Invalid: missing non-final argument
115 # Valid: multiple uses of same argument
116 "abc%2$xdef%1$pghi%2$x"
117 # Valid: one argument with width
119 # Valid: one argument with width and precision
125 : ${XGETTEXT=xgettext}
127 while read comment; do
130 cat <<EOF > f-c-1-$n.in
133 ${XGETTEXT} -L C -o f-c-1-$n.po f-c-1-$n.in || exit 1
134 test -f f-c-1-$n.po || exit 1
136 if echo "$comment" | grep 'Valid:' > /dev/null; then
137 if grep c-format f-c-1-$n.po > /dev/null; then
143 if grep c-format f-c-1-$n.po > /dev/null; then
149 if test -n "$fail"; then
150 echo "Format string recognition error:" 1>&2
156 rm -f f-c-1-$n.in f-c-1-$n.po