head 1.2; access; symbols perseant-exfatfs-base-20250801:1.2 perseant-exfatfs-base-20240630:1.2 cjep_sun2x:1.2.0.14 cjep_sun2x-base:1.2 cjep_staticlib_x-base1:1.2 cjep_staticlib_x:1.2.0.12 cjep_staticlib_x-base:1.2 phil-wifi-20200421:1.2 phil-wifi-20200411:1.2 phil-wifi-20200406:1.2 pgoyette-compat-merge-20190127:1.2 pgoyette-compat-20190127:1.2 pgoyette-compat-20190118:1.2 pgoyette-compat-1226:1.2 pgoyette-compat-1126:1.2 pgoyette-compat-1020:1.2 pgoyette-compat-0930:1.2 pgoyette-compat-0906:1.2 netbsd-7-2-RELEASE:1.1.1.1 pgoyette-compat-0728:1.2 pgoyette-compat-0625:1.2 pgoyette-compat-0521:1.2 pgoyette-compat-0502:1.2 pgoyette-compat-0422:1.2 pgoyette-compat-0415:1.2 pgoyette-compat-0407:1.2 pgoyette-compat-0330:1.2 pgoyette-compat-0322:1.2 pgoyette-compat-0315:1.2 netbsd-7-1-2-RELEASE:1.1.1.1 pgoyette-compat:1.2.0.10 pgoyette-compat-base:1.2 netbsd-7-1-1-RELEASE:1.1.1.1 perseant-stdc-iso10646:1.2.0.8 perseant-stdc-iso10646-base:1.2 prg-localcount2-base3:1.2 prg-localcount2-base2:1.2 prg-localcount2-base1:1.2 prg-localcount2:1.2.0.6 prg-localcount2-base:1.2 pgoyette-localcount-20170426:1.2 bouyer-socketcan-base1:1.2 pgoyette-localcount-20170320:1.2 netbsd-7-1:1.1.1.1.0.68 netbsd-7-1-RELEASE:1.1.1.1 netbsd-7-1-RC2:1.1.1.1 netbsd-7-nhusb-base-20170116:1.1.1.1 bouyer-socketcan:1.2.0.4 bouyer-socketcan-base:1.2 pgoyette-localcount-20170107:1.2 netbsd-7-1-RC1:1.1.1.1 pgoyette-localcount-20161104:1.2 netbsd-7-0-2-RELEASE:1.1.1.1 localcount-20160914:1.2 netbsd-7-nhusb:1.1.1.1.0.66 netbsd-7-nhusb-base:1.1.1.1 pgoyette-localcount-20160806:1.2 pgoyette-localcount-20160726:1.2 pgoyette-localcount:1.2.0.2 pgoyette-localcount-base:1.2 netbsd-7-0-1-RELEASE:1.1.1.1 netbsd-7-0:1.1.1.1.0.64 netbsd-7-0-RELEASE:1.1.1.1 netbsd-7-0-RC3:1.1.1.1 netbsd-7-0-RC2:1.1.1.1 netbsd-7-0-RC1:1.1.1.1 netbsd-5-2-3-RELEASE:1.1.1.1 netbsd-5-1-5-RELEASE:1.1.1.1 netbsd-6-0-6-RELEASE:1.1.1.1 netbsd-6-1-5-RELEASE:1.1.1.1 netbsd-7:1.1.1.1.0.62 netbsd-7-base:1.1.1.1 yamt-pagecache-base9:1.1.1.1 yamt-pagecache-tag8:1.1.1.1 netbsd-6-1-4-RELEASE:1.1.1.1 netbsd-6-0-5-RELEASE:1.1.1.1 tls-earlyentropy:1.1.1.1.0.60 tls-earlyentropy-base:1.1.1.1 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.1 riastradh-drm2-base3:1.1.1.1 netbsd-6-1-3-RELEASE:1.1.1.1 netbsd-6-0-4-RELEASE:1.1.1.1 netbsd-5-2-2-RELEASE:1.1.1.1 netbsd-5-1-4-RELEASE:1.1.1.1 netbsd-6-1-2-RELEASE:1.1.1.1 netbsd-6-0-3-RELEASE:1.1.1.1 netbsd-5-2-1-RELEASE:1.1.1.1 netbsd-5-1-3-RELEASE:1.1.1.1 netbsd-6-1-1-RELEASE:1.1.1.1 riastradh-drm2-base2:1.1.1.1 riastradh-drm2-base1:1.1.1.1 riastradh-drm2:1.1.1.1.0.54 riastradh-drm2-base:1.1.1.1 netbsd-6-1:1.1.1.1.0.58 netbsd-6-0-2-RELEASE:1.1.1.1 netbsd-6-1-RELEASE:1.1.1.1 netbsd-6-1-RC4:1.1.1.1 netbsd-6-1-RC3:1.1.1.1 agc-symver:1.1.1.1.0.56 agc-symver-base:1.1.1.1 netbsd-6-1-RC2:1.1.1.1 netbsd-6-1-RC1:1.1.1.1 yamt-pagecache-base8:1.1.1.1 netbsd-5-2:1.1.1.1.0.52 netbsd-6-0-1-RELEASE:1.1.1.1 yamt-pagecache-base7:1.1.1.1 netbsd-5-2-RELEASE:1.1.1.1 netbsd-5-2-RC1:1.1.1.1 matt-nb6-plus-nbase:1.1.1.1 yamt-pagecache-base6:1.1.1.1 netbsd-6-0:1.1.1.1.0.50 netbsd-6-0-RELEASE:1.1.1.1 netbsd-6-0-RC2:1.1.1.1 tls-maxphys:1.1.1.1.0.48 tls-maxphys-base:1.1.1.1 matt-nb6-plus:1.1.1.1.0.46 matt-nb6-plus-base:1.1.1.1 netbsd-6-0-RC1:1.1.1.1 yamt-pagecache-base5:1.1.1.1 yamt-pagecache-base4:1.1.1.1 netbsd-6:1.1.1.1.0.44 netbsd-6-base:1.1.1.1 netbsd-5-1-2-RELEASE:1.1.1.1 netbsd-5-1-1-RELEASE:1.1.1.1 yamt-pagecache-base3:1.1.1.1 yamt-pagecache-base2:1.1.1.1 yamt-pagecache:1.1.1.1.0.42 yamt-pagecache-base:1.1.1.1 cherry-xenmp:1.1.1.1.0.40 cherry-xenmp-base:1.1.1.1 bouyer-quota2-nbase:1.1.1.1 bouyer-quota2:1.1.1.1.0.38 bouyer-quota2-base:1.1.1.1 matt-mips64-premerge-20101231:1.1.1.1 matt-nb5-mips64-premerge-20101231:1.1.1.1 matt-nb5-pq3:1.1.1.1.0.36 matt-nb5-pq3-base:1.1.1.1 netbsd-5-1:1.1.1.1.0.34 netbsd-5-1-RELEASE:1.1.1.1 netbsd-5-1-RC4:1.1.1.1 matt-nb5-mips64-k15:1.1.1.1 netbsd-5-1-RC3:1.1.1.1 netbsd-5-1-RC2:1.1.1.1 netbsd-5-1-RC1:1.1.1.1 netbsd-5-0-2-RELEASE:1.1.1.1 matt-nb5-mips64-premerge-20091211:1.1.1.1 matt-premerge-20091211:1.1.1.1 matt-nb5-mips64-u2-k2-k4-k7-k8-k9:1.1.1.1 matt-nb4-mips64-k7-u2a-k9b:1.1.1.1 matt-nb5-mips64-u1-k1-k5:1.1.1.1 matt-nb5-mips64:1.1.1.1.0.32 netbsd-5-0-1-RELEASE:1.1.1.1 jym-xensuspend-nbase:1.1.1.1 netbsd-5-0:1.1.1.1.0.30 netbsd-5-0-RELEASE:1.1.1.1 netbsd-5-0-RC4:1.1.1.1 netbsd-5-0-RC3:1.1.1.1 netbsd-5-0-RC2:1.1.1.1 jym-xensuspend:1.1.1.1.0.28 jym-xensuspend-base:1.1.1.1 netbsd-5-0-RC1:1.1.1.1 netbsd-5:1.1.1.1.0.26 netbsd-5-base:1.1.1.1 matt-mips64-base2:1.1.1.1 matt-mips64:1.1.1.1.0.24 mjf-devfs2:1.1.1.1.0.22 mjf-devfs2-base:1.1.1.1 netbsd-4-0-1-RELEASE:1.1.1.1 wrstuden-revivesa-base-3:1.1.1.1 wrstuden-revivesa-base-2:1.1.1.1 wrstuden-fixsa-newbase:1.1.1.1 wrstuden-revivesa-base-1:1.1.1.1 yamt-pf42-base4:1.1.1.1 yamt-pf42-base3:1.1.1.1 hpcarm-cleanup-nbase:1.1.1.1 yamt-pf42-baseX:1.1.1.1 yamt-pf42-base2:1.1.1.1 wrstuden-revivesa:1.1.1.1.0.20 wrstuden-revivesa-base:1.1.1.1 yamt-pf42:1.1.1.1.0.18 yamt-pf42-base:1.1.1.1 keiichi-mipv6:1.1.1.1.0.16 keiichi-mipv6-base:1.1.1.1 matt-armv6-nbase:1.1.1.1 matt-armv6-prevmlocking:1.1.1.1 wrstuden-fixsa-base-1:1.1.1.1 netbsd-4-0:1.1.1.1.0.14 netbsd-4-0-RELEASE:1.1.1.1 cube-autoconf:1.1.1.1.0.12 cube-autoconf-base:1.1.1.1 netbsd-4-0-RC5:1.1.1.1 netbsd-4-0-RC4:1.1.1.1 netbsd-4-0-RC3:1.1.1.1 netbsd-4-0-RC2:1.1.1.1 netbsd-4-0-RC1:1.1.1.1 matt-armv6:1.1.1.1.0.10 matt-armv6-base:1.1.1.1 matt-mips64-base:1.1.1.1 hpcarm-cleanup:1.1.1.1.0.8 hpcarm-cleanup-base:1.1.1.1 wrstuden-fixsa:1.1.1.1.0.6 wrstuden-fixsa-base:1.1.1.1 abandoned-netbsd-4-base:1.1.1.1 abandoned-netbsd-4:1.1.1.1.0.2 netbsd-4:1.1.1.1.0.4 netbsd-4-base:1.1.1.1 v0_14_4:1.1.1.1 GNU:1.1.1; locks; strict; comment @# @; 1.2 date 2016.01.13.01.59.39; author christos; state dead; branches; next 1.1; commitid U9rtUbw2y5ZheIQy; 1.1 date 2005.04.29.15.09.12; author christos; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2005.04.29.15.09.12; author christos; state Exp; branches; next ; desc @@ 1.2 log @gettext has moved. @ text @#! /bin/sh # Test recognition of Python format strings. tmpfiles="" trap 'rm -fr $tmpfiles' 1 2 3 15 tmpfiles="$tmpfiles f-p-1.data" cat <<\EOF > f-p-1.data # Valid: no argument "abc%%" # Valid: one character argument "abc%c" # Valid: one string argument "abc%s" # Valid: one string argument "abc%r" # Valid: one integer argument "abc%i" # Valid: one integer argument "abc%d" # Valid: one integer argument "abc%u" # Valid: one integer argument "abc%o" # 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%f" # Valid: one floating-point argument "abc%g" # Valid: one floating-point argument "abc%G" # Valid: one argument with flags "abc%0#g" # Valid: one argument with width "abc%2g" # Valid: one argument with width "abc%*g" # Valid: one argument with precision "abc%.4g" # 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.*g" # Valid: one argument with width and precision "abc%*.4g" # Valid: one argument with width and precision "abc%*.*g" # Valid: one argument with size specifier "abc%hi" # Valid: one argument with size specifier "abc%li" # Valid: one argument with size specifier "abc%Li" # Invalid: unterminated "abc%" # Invalid: unknown format specifier "abc%y" # Invalid: flags after width "abc%*0g" # Invalid: twice precision "abc%.4.2g" # Invalid: two size specifiers "abc%lli" # Valid: three arguments "abc%d%u%u" # Valid: a named argument "abc%(value)d" # Valid: an empty name "abc%()d" # Invalid: unterminated name "abc%(value" # Valid: ignored named argument "abc%(dummy)%" # Invalid: flags before name "abc%0(value)d" # Valid: three arguments, two with equal names "abc%(addr)4x,%(char)c,%(addr)u" # Invalid: argument with conflicting types "abc%(addr)4x,%(char)c,%(addr)s" # Valid: no conflict "abc%(addr)r,%(addr)s" # Invalid: mixing of named and unnamed arguments "abc%d%(addr)x" # Valid: named argument with constant precision "abc%(addr).9x" # Invalid: mixing of named and unnamed arguments "abc%(addr).*x" EOF : ${XGETTEXT=xgettext} n=0 while read comment; do read string n=`expr $n + 1` tmpfiles="$tmpfiles f-p-1-$n.in f-p-1-$n.po" cat < f-p-1-$n.in gettext(${string}); EOF ${XGETTEXT} -L Python -o f-p-1-$n.po f-p-1-$n.in || exit 1 test -f f-p-1-$n.po || exit 1 fail= if echo "$comment" | grep 'Valid:' > /dev/null; then if grep python-format f-p-1-$n.po > /dev/null; then : else fail=yes fi else if grep python-format f-p-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-p-1-$n.in 1>&2 echo "Got:" 1>&2 cat f-p-1-$n.po 1>&2 exit 1 fi rm -f f-p-1-$n.in f-p-1-$n.po done < f-p-1.data rm -fr $tmpfiles exit 0 @ 1.1 log @Initial revision @ text @@ 1.1.1.1 log @ftp ftp.gnu.org @ text @@