xref: /netbsd-src/external/gpl2/gettext/dist/gettext-tools/tests/format-gcc-internal-2 (revision 946379e7b37692fc43f68eb0d1c10daa0a7f3b6c)
1*946379e7Schristos#! /bin/sh
2*946379e7Schristos
3*946379e7Schristos# Test checking of GCC internal format strings.
4*946379e7Schristos
5*946379e7Schristostmpfiles=""
6*946379e7Schristostrap 'rm -fr $tmpfiles' 1 2 3 15
7*946379e7Schristos
8*946379e7Schristostmpfiles="$tmpfiles f-gi-2.data"
9*946379e7Schristoscat <<\EOF > f-gi-2.data
10*946379e7Schristos# Valid: %% doesn't count
11*946379e7Schristosmsgid  "abc%%def"
12*946379e7Schristosmsgstr "xyz"
13*946379e7Schristos# Valid: %< doesn't count
14*946379e7Schristosmsgid  "abc%<def"
15*946379e7Schristosmsgstr "xyz"
16*946379e7Schristos# Valid: %> doesn't count
17*946379e7Schristosmsgid  "abc%>def"
18*946379e7Schristosmsgstr "xyz"
19*946379e7Schristos# Valid: %' doesn't count
20*946379e7Schristosmsgid  "abc%'def"
21*946379e7Schristosmsgstr "xyz"
22*946379e7Schristos# Invalid: %m consumes err_no
23*946379e7Schristosmsgid  "abc%mdef"
24*946379e7Schristosmsgstr "xyz"
25*946379e7Schristos# Invalid: %m consumes err_no
26*946379e7Schristosmsgid  "abc"
27*946379e7Schristosmsgstr "xyz%muvw"
28*946379e7Schristos# Invalid: invalid msgstr
29*946379e7Schristosmsgid  "abc%%def"
30*946379e7Schristosmsgstr "xyz%"
31*946379e7Schristos# Valid: same arguments
32*946379e7Schristosmsgid  "abc%s%Hdef"
33*946379e7Schristosmsgstr "xyz%s%H"
34*946379e7Schristos# Valid: same arguments, with different flags
35*946379e7Schristosmsgid  "abc%s%Hdef"
36*946379e7Schristosmsgstr "xyz%qs%qH"
37*946379e7Schristos# Valid: same arguments, with different widths
38*946379e7Schristosmsgid  "abc%.*sdef"
39*946379e7Schristosmsgstr "xyz%i%s"
40*946379e7Schristos# Valid: same arguments but in numbered syntax
41*946379e7Schristosmsgid  "abc%s%ddef"
42*946379e7Schristosmsgstr "xyz%1$s%2$d"
43*946379e7Schristos# Valid: permutation
44*946379e7Schristosmsgid  "abc%s%d%cdef"
45*946379e7Schristosmsgstr "xyz%3$c%2$d%1$s"
46*946379e7Schristos# Valid: permutation with width
47*946379e7Schristosmsgid  "abc%c%.*sdef"
48*946379e7Schristosmsgstr "xyz%3$.*2$s%1$c"
49*946379e7Schristos# Invalid: too few arguments
50*946379e7Schristosmsgid  "abc%sdef%u"
51*946379e7Schristosmsgstr "xyz%s"
52*946379e7Schristos# Invalid: too many arguments
53*946379e7Schristosmsgid  "abc%udef"
54*946379e7Schristosmsgstr "xyz%uvw%c"
55*946379e7Schristos# Valid: same numbered arguments, with different widths
56*946379e7Schristosmsgid  "abc%2$5s%1$4s"
57*946379e7Schristosmsgstr "xyz%2$4s%1$5s"
58*946379e7Schristos# Invalid: missing argument
59*946379e7Schristosmsgid  "abc%2$sdef%1$u"
60*946379e7Schristosmsgstr "xyz%1$u"
61*946379e7Schristos# Invalid: missing argument
62*946379e7Schristosmsgid  "abc%1$sdef%2$u"
63*946379e7Schristosmsgstr "xyz%2$u"
64*946379e7Schristos# Invalid: added argument
65*946379e7Schristosmsgid  "abc%1$udef"
66*946379e7Schristosmsgstr "xyz%1$uvw%2$c"
67*946379e7Schristos# Valid: type compatibility
68*946379e7Schristosmsgid  "abc%i"
69*946379e7Schristosmsgstr "xyz%d"
70*946379e7Schristos# Valid: type compatibility
71*946379e7Schristosmsgid  "abc%o"
72*946379e7Schristosmsgstr "xyz%u"
73*946379e7Schristos# Valid: type compatibility
74*946379e7Schristosmsgid  "abc%u"
75*946379e7Schristosmsgstr "xyz%x"
76*946379e7Schristos# Invalid: type incompatibility
77*946379e7Schristosmsgid  "abc%c"
78*946379e7Schristosmsgstr "xyz%s"
79*946379e7Schristos# Invalid: type incompatibility
80*946379e7Schristosmsgid  "abc%c"
81*946379e7Schristosmsgstr "xyz%i"
82*946379e7Schristos# Invalid: type incompatibility
83*946379e7Schristosmsgid  "abc%c"
84*946379e7Schristosmsgstr "xyz%u"
85*946379e7Schristos# Invalid: type incompatibility
86*946379e7Schristosmsgid  "abc%c"
87*946379e7Schristosmsgstr "xyz%p"
88*946379e7Schristos# Invalid: type incompatibility
89*946379e7Schristosmsgid  "abc%c"
90*946379e7Schristosmsgstr "xyz%H"
91*946379e7Schristos# Invalid: type incompatibility
92*946379e7Schristosmsgid  "abc%c"
93*946379e7Schristosmsgstr "xyz%D"
94*946379e7Schristos# Invalid: type incompatibility
95*946379e7Schristosmsgid  "abc%c"
96*946379e7Schristosmsgstr "xyz%F"
97*946379e7Schristos# Invalid: type incompatibility
98*946379e7Schristosmsgid  "abc%c"
99*946379e7Schristosmsgstr "xyz%T"
100*946379e7Schristos# Invalid: type incompatibility
101*946379e7Schristosmsgid  "abc%c"
102*946379e7Schristosmsgstr "xyz%A"
103*946379e7Schristos# Invalid: type incompatibility
104*946379e7Schristosmsgid  "abc%c"
105*946379e7Schristosmsgstr "xyz%C"
106*946379e7Schristos# Invalid: type incompatibility
107*946379e7Schristosmsgid  "abc%c"
108*946379e7Schristosmsgstr "xyz%E"
109*946379e7Schristos# Invalid: type incompatibility
110*946379e7Schristosmsgid  "abc%c"
111*946379e7Schristosmsgstr "xyz%L"
112*946379e7Schristos# Invalid: type incompatibility
113*946379e7Schristosmsgid  "abc%c"
114*946379e7Schristosmsgstr "xyz%O"
115*946379e7Schristos# Invalid: type incompatibility
116*946379e7Schristosmsgid  "abc%c"
117*946379e7Schristosmsgstr "xyz%P"
118*946379e7Schristos# Invalid: type incompatibility
119*946379e7Schristosmsgid  "abc%c"
120*946379e7Schristosmsgstr "xyz%Q"
121*946379e7Schristos# Invalid: type incompatibility
122*946379e7Schristosmsgid  "abc%c"
123*946379e7Schristosmsgstr "xyz%V"
124*946379e7Schristos# Invalid: type incompatibility
125*946379e7Schristosmsgid  "abc%s"
126*946379e7Schristosmsgstr "xyz%i"
127*946379e7Schristos# Invalid: type incompatibility
128*946379e7Schristosmsgid  "abc%s"
129*946379e7Schristosmsgstr "xyz%u"
130*946379e7Schristos# Invalid: type incompatibility
131*946379e7Schristosmsgid  "abc%s"
132*946379e7Schristosmsgstr "xyz%p"
133*946379e7Schristos# Invalid: type incompatibility
134*946379e7Schristosmsgid  "abc%s"
135*946379e7Schristosmsgstr "xyz%H"
136*946379e7Schristos# Invalid: type incompatibility
137*946379e7Schristosmsgid  "abc%s"
138*946379e7Schristosmsgstr "xyz%D"
139*946379e7Schristos# Invalid: type incompatibility
140*946379e7Schristosmsgid  "abc%s"
141*946379e7Schristosmsgstr "xyz%F"
142*946379e7Schristos# Invalid: type incompatibility
143*946379e7Schristosmsgid  "abc%s"
144*946379e7Schristosmsgstr "xyz%T"
145*946379e7Schristos# Invalid: type incompatibility
146*946379e7Schristosmsgid  "abc%s"
147*946379e7Schristosmsgstr "xyz%A"
148*946379e7Schristos# Invalid: type incompatibility
149*946379e7Schristosmsgid  "abc%s"
150*946379e7Schristosmsgstr "xyz%C"
151*946379e7Schristos# Invalid: type incompatibility
152*946379e7Schristosmsgid  "abc%s"
153*946379e7Schristosmsgstr "xyz%E"
154*946379e7Schristos# Invalid: type incompatibility
155*946379e7Schristosmsgid  "abc%s"
156*946379e7Schristosmsgstr "xyz%L"
157*946379e7Schristos# Invalid: type incompatibility
158*946379e7Schristosmsgid  "abc%s"
159*946379e7Schristosmsgstr "xyz%O"
160*946379e7Schristos# Invalid: type incompatibility
161*946379e7Schristosmsgid  "abc%s"
162*946379e7Schristosmsgstr "xyz%P"
163*946379e7Schristos# Invalid: type incompatibility
164*946379e7Schristosmsgid  "abc%s"
165*946379e7Schristosmsgstr "xyz%Q"
166*946379e7Schristos# Invalid: type incompatibility
167*946379e7Schristosmsgid  "abc%s"
168*946379e7Schristosmsgstr "xyz%V"
169*946379e7Schristos# Invalid: type incompatibility
170*946379e7Schristosmsgid  "abc%i"
171*946379e7Schristosmsgstr "xyz%u"
172*946379e7Schristos# Invalid: type incompatibility
173*946379e7Schristosmsgid  "abc%i"
174*946379e7Schristosmsgstr "xyz%p"
175*946379e7Schristos# Invalid: type incompatibility
176*946379e7Schristosmsgid  "abc%i"
177*946379e7Schristosmsgstr "xyz%H"
178*946379e7Schristos# Invalid: type incompatibility
179*946379e7Schristosmsgid  "abc%i"
180*946379e7Schristosmsgstr "xyz%D"
181*946379e7Schristos# Invalid: type incompatibility
182*946379e7Schristosmsgid  "abc%i"
183*946379e7Schristosmsgstr "xyz%F"
184*946379e7Schristos# Invalid: type incompatibility
185*946379e7Schristosmsgid  "abc%i"
186*946379e7Schristosmsgstr "xyz%T"
187*946379e7Schristos# Invalid: type incompatibility
188*946379e7Schristosmsgid  "abc%i"
189*946379e7Schristosmsgstr "xyz%A"
190*946379e7Schristos# Invalid: type incompatibility
191*946379e7Schristosmsgid  "abc%i"
192*946379e7Schristosmsgstr "xyz%C"
193*946379e7Schristos# Invalid: type incompatibility
194*946379e7Schristosmsgid  "abc%i"
195*946379e7Schristosmsgstr "xyz%E"
196*946379e7Schristos# Invalid: type incompatibility
197*946379e7Schristosmsgid  "abc%i"
198*946379e7Schristosmsgstr "xyz%L"
199*946379e7Schristos# Invalid: type incompatibility
200*946379e7Schristosmsgid  "abc%i"
201*946379e7Schristosmsgstr "xyz%O"
202*946379e7Schristos# Invalid: type incompatibility
203*946379e7Schristosmsgid  "abc%i"
204*946379e7Schristosmsgstr "xyz%P"
205*946379e7Schristos# Invalid: type incompatibility
206*946379e7Schristosmsgid  "abc%i"
207*946379e7Schristosmsgstr "xyz%Q"
208*946379e7Schristos# Invalid: type incompatibility
209*946379e7Schristosmsgid  "abc%i"
210*946379e7Schristosmsgstr "xyz%V"
211*946379e7Schristos# Invalid: type incompatibility
212*946379e7Schristosmsgid  "abc%u"
213*946379e7Schristosmsgstr "xyz%p"
214*946379e7Schristos# Invalid: type incompatibility
215*946379e7Schristosmsgid  "abc%u"
216*946379e7Schristosmsgstr "xyz%H"
217*946379e7Schristos# Invalid: type incompatibility
218*946379e7Schristosmsgid  "abc%u"
219*946379e7Schristosmsgstr "xyz%D"
220*946379e7Schristos# Invalid: type incompatibility
221*946379e7Schristosmsgid  "abc%u"
222*946379e7Schristosmsgstr "xyz%F"
223*946379e7Schristos# Invalid: type incompatibility
224*946379e7Schristosmsgid  "abc%u"
225*946379e7Schristosmsgstr "xyz%T"
226*946379e7Schristos# Invalid: type incompatibility
227*946379e7Schristosmsgid  "abc%u"
228*946379e7Schristosmsgstr "xyz%A"
229*946379e7Schristos# Invalid: type incompatibility
230*946379e7Schristosmsgid  "abc%u"
231*946379e7Schristosmsgstr "xyz%C"
232*946379e7Schristos# Invalid: type incompatibility
233*946379e7Schristosmsgid  "abc%u"
234*946379e7Schristosmsgstr "xyz%E"
235*946379e7Schristos# Invalid: type incompatibility
236*946379e7Schristosmsgid  "abc%u"
237*946379e7Schristosmsgstr "xyz%L"
238*946379e7Schristos# Invalid: type incompatibility
239*946379e7Schristosmsgid  "abc%u"
240*946379e7Schristosmsgstr "xyz%O"
241*946379e7Schristos# Invalid: type incompatibility
242*946379e7Schristosmsgid  "abc%u"
243*946379e7Schristosmsgstr "xyz%P"
244*946379e7Schristos# Invalid: type incompatibility
245*946379e7Schristosmsgid  "abc%u"
246*946379e7Schristosmsgstr "xyz%Q"
247*946379e7Schristos# Invalid: type incompatibility
248*946379e7Schristosmsgid  "abc%u"
249*946379e7Schristosmsgstr "xyz%V"
250*946379e7Schristos# Invalid: type incompatibility
251*946379e7Schristosmsgid  "abc%p"
252*946379e7Schristosmsgstr "xyz%H"
253*946379e7Schristos# Invalid: type incompatibility
254*946379e7Schristosmsgid  "abc%p"
255*946379e7Schristosmsgstr "xyz%D"
256*946379e7Schristos# Invalid: type incompatibility
257*946379e7Schristosmsgid  "abc%p"
258*946379e7Schristosmsgstr "xyz%F"
259*946379e7Schristos# Invalid: type incompatibility
260*946379e7Schristosmsgid  "abc%p"
261*946379e7Schristosmsgstr "xyz%T"
262*946379e7Schristos# Invalid: type incompatibility
263*946379e7Schristosmsgid  "abc%p"
264*946379e7Schristosmsgstr "xyz%A"
265*946379e7Schristos# Invalid: type incompatibility
266*946379e7Schristosmsgid  "abc%p"
267*946379e7Schristosmsgstr "xyz%C"
268*946379e7Schristos# Invalid: type incompatibility
269*946379e7Schristosmsgid  "abc%p"
270*946379e7Schristosmsgstr "xyz%E"
271*946379e7Schristos# Invalid: type incompatibility
272*946379e7Schristosmsgid  "abc%p"
273*946379e7Schristosmsgstr "xyz%L"
274*946379e7Schristos# Invalid: type incompatibility
275*946379e7Schristosmsgid  "abc%p"
276*946379e7Schristosmsgstr "xyz%O"
277*946379e7Schristos# Invalid: type incompatibility
278*946379e7Schristosmsgid  "abc%p"
279*946379e7Schristosmsgstr "xyz%P"
280*946379e7Schristos# Invalid: type incompatibility
281*946379e7Schristosmsgid  "abc%p"
282*946379e7Schristosmsgstr "xyz%Q"
283*946379e7Schristos# Invalid: type incompatibility
284*946379e7Schristosmsgid  "abc%p"
285*946379e7Schristosmsgstr "xyz%V"
286*946379e7Schristos# Invalid: type incompatibility
287*946379e7Schristosmsgid  "abc%H"
288*946379e7Schristosmsgstr "xyz%D"
289*946379e7Schristos# Invalid: type incompatibility
290*946379e7Schristosmsgid  "abc%H"
291*946379e7Schristosmsgstr "xyz%F"
292*946379e7Schristos# Invalid: type incompatibility
293*946379e7Schristosmsgid  "abc%H"
294*946379e7Schristosmsgstr "xyz%T"
295*946379e7Schristos# Invalid: type incompatibility
296*946379e7Schristosmsgid  "abc%H"
297*946379e7Schristosmsgstr "xyz%A"
298*946379e7Schristos# Invalid: type incompatibility
299*946379e7Schristosmsgid  "abc%H"
300*946379e7Schristosmsgstr "xyz%C"
301*946379e7Schristos# Invalid: type incompatibility
302*946379e7Schristosmsgid  "abc%H"
303*946379e7Schristosmsgstr "xyz%E"
304*946379e7Schristos# Invalid: type incompatibility
305*946379e7Schristosmsgid  "abc%H"
306*946379e7Schristosmsgstr "xyz%L"
307*946379e7Schristos# Invalid: type incompatibility
308*946379e7Schristosmsgid  "abc%H"
309*946379e7Schristosmsgstr "xyz%O"
310*946379e7Schristos# Invalid: type incompatibility
311*946379e7Schristosmsgid  "abc%H"
312*946379e7Schristosmsgstr "xyz%P"
313*946379e7Schristos# Invalid: type incompatibility
314*946379e7Schristosmsgid  "abc%H"
315*946379e7Schristosmsgstr "xyz%Q"
316*946379e7Schristos# Invalid: type incompatibility
317*946379e7Schristosmsgid  "abc%H"
318*946379e7Schristosmsgstr "xyz%V"
319*946379e7Schristos# Invalid: type incompatibility
320*946379e7Schristosmsgid  "abc%D"
321*946379e7Schristosmsgstr "xyz%F"
322*946379e7Schristos# Invalid: type incompatibility
323*946379e7Schristosmsgid  "abc%D"
324*946379e7Schristosmsgstr "xyz%T"
325*946379e7Schristos# Invalid: type incompatibility
326*946379e7Schristosmsgid  "abc%D"
327*946379e7Schristosmsgstr "xyz%A"
328*946379e7Schristos# Invalid: type incompatibility
329*946379e7Schristosmsgid  "abc%D"
330*946379e7Schristosmsgstr "xyz%C"
331*946379e7Schristos# Invalid: type incompatibility
332*946379e7Schristosmsgid  "abc%D"
333*946379e7Schristosmsgstr "xyz%E"
334*946379e7Schristos# Invalid: type incompatibility
335*946379e7Schristosmsgid  "abc%D"
336*946379e7Schristosmsgstr "xyz%L"
337*946379e7Schristos# Invalid: type incompatibility
338*946379e7Schristosmsgid  "abc%D"
339*946379e7Schristosmsgstr "xyz%O"
340*946379e7Schristos# Invalid: type incompatibility
341*946379e7Schristosmsgid  "abc%D"
342*946379e7Schristosmsgstr "xyz%P"
343*946379e7Schristos# Invalid: type incompatibility
344*946379e7Schristosmsgid  "abc%D"
345*946379e7Schristosmsgstr "xyz%Q"
346*946379e7Schristos# Invalid: type incompatibility
347*946379e7Schristosmsgid  "abc%D"
348*946379e7Schristosmsgstr "xyz%V"
349*946379e7Schristos# Invalid: type incompatibility
350*946379e7Schristosmsgid  "abc%F"
351*946379e7Schristosmsgstr "xyz%T"
352*946379e7Schristos# Invalid: type incompatibility
353*946379e7Schristosmsgid  "abc%F"
354*946379e7Schristosmsgstr "xyz%A"
355*946379e7Schristos# Invalid: type incompatibility
356*946379e7Schristosmsgid  "abc%F"
357*946379e7Schristosmsgstr "xyz%C"
358*946379e7Schristos# Invalid: type incompatibility
359*946379e7Schristosmsgid  "abc%F"
360*946379e7Schristosmsgstr "xyz%E"
361*946379e7Schristos# Invalid: type incompatibility
362*946379e7Schristosmsgid  "abc%F"
363*946379e7Schristosmsgstr "xyz%L"
364*946379e7Schristos# Invalid: type incompatibility
365*946379e7Schristosmsgid  "abc%F"
366*946379e7Schristosmsgstr "xyz%O"
367*946379e7Schristos# Invalid: type incompatibility
368*946379e7Schristosmsgid  "abc%F"
369*946379e7Schristosmsgstr "xyz%P"
370*946379e7Schristos# Invalid: type incompatibility
371*946379e7Schristosmsgid  "abc%F"
372*946379e7Schristosmsgstr "xyz%Q"
373*946379e7Schristos# Invalid: type incompatibility
374*946379e7Schristosmsgid  "abc%F"
375*946379e7Schristosmsgstr "xyz%V"
376*946379e7Schristos# Invalid: type incompatibility
377*946379e7Schristosmsgid  "abc%T"
378*946379e7Schristosmsgstr "xyz%A"
379*946379e7Schristos# Invalid: type incompatibility
380*946379e7Schristosmsgid  "abc%T"
381*946379e7Schristosmsgstr "xyz%C"
382*946379e7Schristos# Invalid: type incompatibility
383*946379e7Schristosmsgid  "abc%T"
384*946379e7Schristosmsgstr "xyz%E"
385*946379e7Schristos# Invalid: type incompatibility
386*946379e7Schristosmsgid  "abc%T"
387*946379e7Schristosmsgstr "xyz%L"
388*946379e7Schristos# Invalid: type incompatibility
389*946379e7Schristosmsgid  "abc%T"
390*946379e7Schristosmsgstr "xyz%O"
391*946379e7Schristos# Invalid: type incompatibility
392*946379e7Schristosmsgid  "abc%T"
393*946379e7Schristosmsgstr "xyz%P"
394*946379e7Schristos# Invalid: type incompatibility
395*946379e7Schristosmsgid  "abc%T"
396*946379e7Schristosmsgstr "xyz%Q"
397*946379e7Schristos# Invalid: type incompatibility
398*946379e7Schristosmsgid  "abc%T"
399*946379e7Schristosmsgstr "xyz%V"
400*946379e7Schristos# Invalid: type incompatibility
401*946379e7Schristosmsgid  "abc%A"
402*946379e7Schristosmsgstr "xyz%C"
403*946379e7Schristos# Invalid: type incompatibility
404*946379e7Schristosmsgid  "abc%A"
405*946379e7Schristosmsgstr "xyz%E"
406*946379e7Schristos# Invalid: type incompatibility
407*946379e7Schristosmsgid  "abc%A"
408*946379e7Schristosmsgstr "xyz%L"
409*946379e7Schristos# Invalid: type incompatibility
410*946379e7Schristosmsgid  "abc%A"
411*946379e7Schristosmsgstr "xyz%O"
412*946379e7Schristos# Invalid: type incompatibility
413*946379e7Schristosmsgid  "abc%A"
414*946379e7Schristosmsgstr "xyz%P"
415*946379e7Schristos# Invalid: type incompatibility
416*946379e7Schristosmsgid  "abc%A"
417*946379e7Schristosmsgstr "xyz%Q"
418*946379e7Schristos# Invalid: type incompatibility
419*946379e7Schristosmsgid  "abc%A"
420*946379e7Schristosmsgstr "xyz%V"
421*946379e7Schristos# Invalid: type incompatibility
422*946379e7Schristosmsgid  "abc%C"
423*946379e7Schristosmsgstr "xyz%E"
424*946379e7Schristos# Invalid: type incompatibility
425*946379e7Schristosmsgid  "abc%C"
426*946379e7Schristosmsgstr "xyz%L"
427*946379e7Schristos# Invalid: type incompatibility
428*946379e7Schristosmsgid  "abc%C"
429*946379e7Schristosmsgstr "xyz%O"
430*946379e7Schristos# Invalid: type incompatibility
431*946379e7Schristosmsgid  "abc%C"
432*946379e7Schristosmsgstr "xyz%P"
433*946379e7Schristos# Invalid: type incompatibility
434*946379e7Schristosmsgid  "abc%C"
435*946379e7Schristosmsgstr "xyz%Q"
436*946379e7Schristos# Invalid: type incompatibility
437*946379e7Schristosmsgid  "abc%C"
438*946379e7Schristosmsgstr "xyz%V"
439*946379e7Schristos# Invalid: type incompatibility
440*946379e7Schristosmsgid  "abc%E"
441*946379e7Schristosmsgstr "xyz%L"
442*946379e7Schristos# Invalid: type incompatibility
443*946379e7Schristosmsgid  "abc%E"
444*946379e7Schristosmsgstr "xyz%O"
445*946379e7Schristos# Invalid: type incompatibility
446*946379e7Schristosmsgid  "abc%E"
447*946379e7Schristosmsgstr "xyz%P"
448*946379e7Schristos# Invalid: type incompatibility
449*946379e7Schristosmsgid  "abc%E"
450*946379e7Schristosmsgstr "xyz%Q"
451*946379e7Schristos# Invalid: type incompatibility
452*946379e7Schristosmsgid  "abc%E"
453*946379e7Schristosmsgstr "xyz%V"
454*946379e7Schristos# Invalid: type incompatibility
455*946379e7Schristosmsgid  "abc%L"
456*946379e7Schristosmsgstr "xyz%O"
457*946379e7Schristos# Invalid: type incompatibility
458*946379e7Schristosmsgid  "abc%L"
459*946379e7Schristosmsgstr "xyz%P"
460*946379e7Schristos# Invalid: type incompatibility
461*946379e7Schristosmsgid  "abc%L"
462*946379e7Schristosmsgstr "xyz%Q"
463*946379e7Schristos# Invalid: type incompatibility
464*946379e7Schristosmsgid  "abc%L"
465*946379e7Schristosmsgstr "xyz%V"
466*946379e7Schristos# Invalid: type incompatibility
467*946379e7Schristosmsgid  "abc%O"
468*946379e7Schristosmsgstr "xyz%P"
469*946379e7Schristos# Invalid: type incompatibility
470*946379e7Schristosmsgid  "abc%O"
471*946379e7Schristosmsgstr "xyz%Q"
472*946379e7Schristos# Invalid: type incompatibility
473*946379e7Schristosmsgid  "abc%O"
474*946379e7Schristosmsgstr "xyz%V"
475*946379e7Schristos# Invalid: type incompatibility
476*946379e7Schristosmsgid  "abc%P"
477*946379e7Schristosmsgstr "xyz%Q"
478*946379e7Schristos# Invalid: type incompatibility
479*946379e7Schristosmsgid  "abc%P"
480*946379e7Schristosmsgstr "xyz%V"
481*946379e7Schristos# Invalid: type incompatibility
482*946379e7Schristosmsgid  "abc%Q"
483*946379e7Schristosmsgstr "xyz%V"
484*946379e7Schristos# Invalid: type incompatibility due to size
485*946379e7Schristosmsgid  "abc%i"
486*946379e7Schristosmsgstr "xyz%li"
487*946379e7Schristos# Invalid: type incompatibility due to size
488*946379e7Schristosmsgid  "abc%i"
489*946379e7Schristosmsgstr "xyz%lli"
490*946379e7Schristos# Invalid: type incompatibility due to size
491*946379e7Schristosmsgid  "abc%i"
492*946379e7Schristosmsgstr "xyz%wi"
493*946379e7Schristos# Invalid: type incompatibility due to size
494*946379e7Schristosmsgid  "abc%li"
495*946379e7Schristosmsgstr "xyz%lli"
496*946379e7Schristos# Invalid: type incompatibility due to size
497*946379e7Schristosmsgid  "abc%li"
498*946379e7Schristosmsgstr "xyz%wi"
499*946379e7Schristos# Invalid: type incompatibility due to size
500*946379e7Schristosmsgid  "abc%lli"
501*946379e7Schristosmsgstr "xyz%wi"
502*946379e7Schristos# Invalid: type incompatibility for width
503*946379e7Schristosmsgid  "abc%.*s"
504*946379e7Schristosmsgstr "xyz%u%s"
505*946379e7SchristosEOF
506*946379e7Schristos
507*946379e7Schristos: ${MSGFMT=msgfmt}
508*946379e7Schristosn=0
509*946379e7Schristoswhile read comment; do
510*946379e7Schristos  read msgid_line
511*946379e7Schristos  read msgstr_line
512*946379e7Schristos  n=`expr $n + 1`
513*946379e7Schristos  tmpfiles="$tmpfiles f-gi-2-$n.po f-gi-2-$n.mo"
514*946379e7Schristos  cat <<EOF > f-gi-2-$n.po
515*946379e7Schristos#, gcc-internal-format
516*946379e7Schristos${msgid_line}
517*946379e7Schristos${msgstr_line}
518*946379e7SchristosEOF
519*946379e7Schristos  fail=
520*946379e7Schristos  if echo "$comment" | grep 'Valid:' > /dev/null; then
521*946379e7Schristos    if ${MSGFMT} --check-format -o f-gi-2-$n.mo f-gi-2-$n.po; then
522*946379e7Schristos      :
523*946379e7Schristos    else
524*946379e7Schristos      fail=yes
525*946379e7Schristos    fi
526*946379e7Schristos  else
527*946379e7Schristos    ${MSGFMT} --check-format -o f-gi-2-$n.mo f-gi-2-$n.po 2> /dev/null
528*946379e7Schristos    if test $? = 1; then
529*946379e7Schristos      :
530*946379e7Schristos    else
531*946379e7Schristos      fail=yes
532*946379e7Schristos    fi
533*946379e7Schristos  fi
534*946379e7Schristos  if test -n "$fail"; then
535*946379e7Schristos    echo "Format string checking error:" 1>&2
536*946379e7Schristos    cat f-gi-2-$n.po 1>&2
537*946379e7Schristos    exit 1
538*946379e7Schristos  fi
539*946379e7Schristos  rm -f f-gi-2-$n.po f-gi-2-$n.mo
540*946379e7Schristosdone < f-gi-2.data
541*946379e7Schristos
542*946379e7Schristosrm -fr $tmpfiles
543*946379e7Schristos
544*946379e7Schristosexit 0
545