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