1100969Siwasaki#! /bin/sh 2100969Siwasaki 3100969Siwasakitmpfiles="" 4100969Siwasakitrap 'rm -fr $tmpfiles' 1 2 3 15 5100969Siwasaki 6100969Siwasakitmpfiles="$tmpfiles ll ll.po dataout" 7100969Siwasaki: ${MSGFMT=msgfmt} 8100969Siwasakitest -d ll || mkdir ll 9100969Siwasakitest -d ll/LC_MESSAGES || mkdir ll/LC_MESSAGES 10100969Siwasaki 11100969Siwasakitmpfiles="$tmpfiles plural-2.data" 12100969Siwasakicat <<EOF > plural-2.data 13100969Siwasakija 14100969Siwasaki0 15100969Siwasaki00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 16100969Siwasakide 17100969Siwasakin != 1 18100969Siwasaki10111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 19100969Siwasakifr 20100969Siwasakin>1 21100969Siwasaki00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 22100969Siwasakigd 23100969Siwasakin==1 ? 0 : n==2 ? 1 : 2 24100969Siwasaki20122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 25100969Siwasakiro 26100969Siwasakin==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2 27100969Siwasaki10111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222 28100969Siwasakilt 29100969Siwasakin%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2 30100969Siwasaki20111111112222222222201111111120111111112011111111201111111120111111112011111111201111111120111111112011111111222222222220111111112011111111201111111120111111112011111111201111111120111111112011111111 31100969Siwasakiru-gettext 32100969Siwasakin%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2 33100969Siwasaki20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222 34100969Siwasakiru-glibc 35100969Siwasakin%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1 36100969Siwasaki20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222 37167814Sjkimsk 38100969Siwasaki(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2 39100969Siwasaki20111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 40100969Siwasakipl 41100969Siwasakin==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2 42100969Siwasaki20111222222222222222221112222222111222222211122222221112222222111222222211122222221112222222111222222211122222222222222222111222222211122222221112222222111222222211122222221112222222111222222211122222 43100969Siwasakisl 44100969Siwasakin%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3 45100969Siwasaki30122333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333012233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 46100969SiwasakiEOF 47100969Siwasakiwhile read lang; do 48100969Siwasaki read formula 49167814Sjkim read dataok 50167814Sjkim cat > ll.po <<EOF 51167814Sjkimmsgid "" 52167814Sjkimmsgstr "" 53100969Siwasaki"MIME-Version: 1.0\n" 54100969Siwasaki"Content-Type: text/plain; charset=ASCII\n" 55100969Siwasaki"Content-Transfer-Encoding: 8bit\n" 56167814Sjkim"Plural-Forms: nplurals=10; plural=${formula};\n" 57167814Sjkim 58205713Smarcelmsgid "X" 59205713Smarcelmsgid_plural "Y" 60100969Siwasakimsgstr[0] "0" 61167814Sjkimmsgstr[1] "1" 62100969Siwasakimsgstr[2] "2" 63254300Sjkimmsgstr[3] "3" 64254300Sjkimmsgstr[4] "4" 65254300Sjkimmsgstr[5] "5" 66167814Sjkimmsgstr[6] "6" 67167814Sjkimmsgstr[7] "7" 68167814Sjkimmsgstr[8] "8" 69167814Sjkimmsgstr[9] "9" 70167814SjkimEOF 71167814Sjkim ${MSGFMT} -o ll/LC_MESSAGES/plural.mo ll.po || exit 1 72100969Siwasaki (for i in '' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19; do 73252280Sjkim LANGUAGE= TEXTDOMAIN=plural TEXTDOMAINDIR=. \ 74252280Sjkim $NGETTEXT --env LC_ALL=ll X Y ${i}0 ${i}1 ${i}2 ${i}3 ${i}4 ${i}5 ${i}6 ${i}7 ${i}8 ${i}9 75100969Siwasaki done) > dataout 76100969Siwasaki test "$dataok" = `cat dataout` || { 77100969Siwasaki echo "Formula evaluation error for language $lang" 1>&2 78 echo "plural=${formula}" 1>&2 79 echo "Expected: $dataok" 1>&2 80 echo "Got: "`cat dataout` 1>&2 81 rm -fr $tmpfiles 82 exit 1 83 } 84done < plural-2.data 85 86rm -fr $tmpfiles 87 88exit 0 89