| #! /bin/sh |
| . "${srcdir=.}/init.sh"; path_prepend_ . ../src |
| |
| # Test msgfilter on a PO file with contexts. |
| |
| if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then |
| # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. |
| if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then |
| ac_n= ac_c=' |
| ' ac_t=' ' |
| else |
| ac_n=-n ac_c= ac_t= |
| fi |
| else |
| ac_n= ac_c='\c' ac_t= |
| fi |
| |
| # Some sed programs (Solaris etc.) omit the last line if it ended without |
| # a newline. We must skip this test when we encounter such a broken sed. |
| sedoutput=`echo $ac_n "abc$ac_c" | sed -e s/x/x/` |
| test -n "$sedoutput" || { |
| echo "Skipping test: sed program is broken" |
| Exit 77 |
| } |
| |
| # Some sed programs (IRIX, OSF/1 etc.) add a newline to the last line if it |
| # doesn't end with a newline. |
| sedoutputcount=`echo $ac_n "abc$ac_c" | sed -e s/x/x/ | wc -c` |
| sedoutputcount=`echo "$sedoutputcount" | sed -e 's/[ ]//g'` |
| test "$sedoutputcount" = 3 || { |
| echo "Skipping test: sed program inserts extra newline" |
| Exit 77 |
| } |
| |
| cat <<\EOF > mfi-test4.po |
| msgid "" |
| msgstr "" |
| "Content-Type: text/plain; charset=UTF-8\n" |
| "Content-Transfer-Encoding: 8bit\n" |
| |
| #. A menu item |
| msgctxt "File|" |
| msgid "Open" |
| msgstr "Ouvrir" |
| |
| #. A menu item |
| msgctxt "File|" |
| msgid "New" |
| msgstr "Nouveau" |
| |
| #. Denote a lock's state |
| msgctxt "Lock state" |
| msgid "Open" |
| msgstr "Ouvert" |
| |
| #. Denote a lock's state |
| msgctxt "Lock state" |
| msgid "Closed" |
| msgstr "Fermé" |
| |
| #. A product |
| msgctxt "Audi" |
| msgid "car" |
| msgstr "voiture" |
| |
| #. A product |
| msgctxt "Océ" |
| msgid "copier" |
| msgstr "photocopieur" |
| |
| #~ msgid "Save As" |
| #~ msgstr "Enregistrer l'as" |
| |
| #. A menu item |
| #~ msgctxt "File|" |
| #~ msgid "Save As" |
| #~ msgstr "Enregistrer sous" |
| EOF |
| |
| : ${MSGFILTER=msgfilter} |
| sedexpr1='1{ |
| s/^/\[\[/ |
| }' |
| sedexpr2='${ |
| s/$/\]\]/ |
| }' |
| LC_ALL=C \ |
| ${MSGFILTER} -i mfi-test4.po -o mfi-test4.out sed -e "$sedexpr1" -e "$sedexpr2" >mfi-test4.err 2>&1 |
| result=$? |
| cat mfi-test4.err | grep -v 'warning: Locale charset' | grep -v '^ ' |
| test $result = 0 || { Exit 1; } |
| |
| cat <<\EOF > mfi-test4.ok |
| msgid "" |
| msgstr "" |
| "[[Content-Type: text/plain; charset=UTF-8\n" |
| "Content-Transfer-Encoding: 8bit]]\n" |
| |
| #. A menu item |
| msgctxt "File|" |
| msgid "Open" |
| msgstr "[[Ouvrir]]" |
| |
| #. A menu item |
| msgctxt "File|" |
| msgid "New" |
| msgstr "[[Nouveau]]" |
| |
| #. Denote a lock's state |
| msgctxt "Lock state" |
| msgid "Open" |
| msgstr "[[Ouvert]]" |
| |
| #. Denote a lock's state |
| msgctxt "Lock state" |
| msgid "Closed" |
| msgstr "[[Fermé]]" |
| |
| #. A product |
| msgctxt "Audi" |
| msgid "car" |
| msgstr "[[voiture]]" |
| |
| #. A product |
| msgctxt "Océ" |
| msgid "copier" |
| msgstr "[[photocopieur]]" |
| |
| #~ msgid "Save As" |
| #~ msgstr "[[Enregistrer l'as]]" |
| |
| #. A menu item |
| #~ msgctxt "File|" |
| #~ msgid "Save As" |
| #~ msgstr "[[Enregistrer sous]]" |
| EOF |
| |
| : ${DIFF=diff} |
| ${DIFF} mfi-test4.ok mfi-test4.out |
| result=$? |
| |
| exit $result |