1#! /bin/sh 2 3# Test msgfilter on a PO file with contexts. 4 5tmpfiles="" 6trap 'rm -fr $tmpfiles' 1 2 3 15 7 8if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then 9 # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. 10 if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then 11 ac_n= ac_c=' 12' ac_t=' ' 13 else 14 ac_n=-n ac_c= ac_t= 15 fi 16else 17 ac_n= ac_c='\c' ac_t= 18fi 19 20# Some sed programs (Solaris etc.) omit the last line if it ended without 21# a newline. We must skip this test when we encounter such a broken sed. 22sedoutput=`echo $ac_n "abc$ac_c" | sed -e s/x/x/` 23test -n "$sedoutput" || { 24 echo "Skipping test: sed program is broken" 25 rm -fr $tmpfiles; exit 77 26} 27 28# Some sed programs (IRIX, OSF/1 etc.) add a newline to the last line if it 29# doesn't end with a newline. 30sedoutputcount=`echo $ac_n "abc$ac_c" | sed -e s/x/x/ | wc -c` 31sedoutputcount=`echo "$sedoutputcount" | sed -e 's/[ ]//g'` 32test "$sedoutputcount" = 3 || { 33 echo "Skipping test: sed program inserts extra newline" 34 rm -fr $tmpfiles; exit 77 35} 36 37tmpfiles="$tmpfiles mfi-test4.po" 38cat <<\EOF > mfi-test4.po 39msgid "" 40msgstr "" 41"Content-Type: text/plain; charset=UTF-8\n" 42"Content-Transfer-Encoding: 8bit\n" 43 44#. A menu item 45msgctxt "File|" 46msgid "Open" 47msgstr "Ouvrir" 48 49#. A menu item 50msgctxt "File|" 51msgid "New" 52msgstr "Nouveau" 53 54#. Denote a lock's state 55msgctxt "Lock state" 56msgid "Open" 57msgstr "Ouvert" 58 59#. Denote a lock's state 60msgctxt "Lock state" 61msgid "Closed" 62msgstr "Ferm��" 63 64#. A product 65msgctxt "Audi" 66msgid "car" 67msgstr "voiture" 68 69#. A product 70msgctxt "Oc��" 71msgid "copier" 72msgstr "photocopieur" 73 74#~ msgid "Save As" 75#~ msgstr "Enregistrer l'as" 76 77#. A menu item 78#~ msgctxt "File|" 79#~ msgid "Save As" 80#~ msgstr "Enregistrer sous" 81EOF 82 83tmpfiles="$tmpfiles mfi-test4.out mfi-test4.err" 84: ${MSGFILTER=msgfilter} 85sedexpr1='1{ 86s/^/\[\[/ 87}' 88sedexpr2='${ 89s/$/\]\]/ 90}' 91LC_ALL=C \ 92${MSGFILTER} -i mfi-test4.po -o mfi-test4.out sed -e "$sedexpr1" -e "$sedexpr2" >mfi-test4.err 2>&1 93result=$? 94cat mfi-test4.err | grep -v 'warning: Locale charset' | grep -v '^ ' 95test $result = 0 || { rm -fr $tmpfiles; exit 1; } 96 97tmpfiles="$tmpfiles mfi-test4.ok" 98cat <<\EOF > mfi-test4.ok 99msgid "" 100msgstr "" 101"[[Content-Type: text/plain; charset=UTF-8\n" 102"Content-Transfer-Encoding: 8bit]]\n" 103 104#. A menu item 105msgctxt "File|" 106msgid "Open" 107msgstr "[[Ouvrir]]" 108 109#. A menu item 110msgctxt "File|" 111msgid "New" 112msgstr "[[Nouveau]]" 113 114#. Denote a lock's state 115msgctxt "Lock state" 116msgid "Open" 117msgstr "[[Ouvert]]" 118 119#. Denote a lock's state 120msgctxt "Lock state" 121msgid "Closed" 122msgstr "[[Ferm��]]" 123 124#. A product 125msgctxt "Audi" 126msgid "car" 127msgstr "[[voiture]]" 128 129#. A product 130msgctxt "Oc��" 131msgid "copier" 132msgstr "[[photocopieur]]" 133 134#~ msgid "Save As" 135#~ msgstr "[[Enregistrer l'as]]" 136 137#. A menu item 138#~ msgctxt "File|" 139#~ msgid "Save As" 140#~ msgstr "[[Enregistrer sous]]" 141EOF 142 143: ${DIFF=diff} 144${DIFF} mfi-test4.ok mfi-test4.out 145result=$? 146 147rm -fr $tmpfiles 148 149exit $result 150