Imported Upstream version 0.18.1.1
[platform/upstream/gettext.git] / gettext-tools / tests / msgfilter-4
1 #! /bin/sh
2
3 # Test msgfilter on a PO file with contexts.
4
5 tmpfiles=""
6 trap 'rm -fr $tmpfiles' 1 2 3 15
7
8 if (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
16 else
17   ac_n= ac_c='\c' ac_t=
18 fi
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.
22 sedoutput=`echo $ac_n "abc$ac_c" | sed -e s/x/x/`
23 test -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.
30 sedoutputcount=`echo $ac_n "abc$ac_c" | sed -e s/x/x/ | wc -c`
31 sedoutputcount=`echo "$sedoutputcount" | sed -e 's/[    ]//g'`
32 test "$sedoutputcount" = 3 || {
33   echo "Skipping test: sed program inserts extra newline"
34   rm -fr $tmpfiles; exit 77
35 }
36
37 tmpfiles="$tmpfiles mfi-test4.po"
38 cat <<\EOF > mfi-test4.po
39 msgid ""
40 msgstr ""
41 "Content-Type: text/plain; charset=UTF-8\n"
42 "Content-Transfer-Encoding: 8bit\n"
43
44 #. A menu item
45 msgctxt "File|"
46 msgid "Open"
47 msgstr "Ouvrir"
48
49 #. A menu item
50 msgctxt "File|"
51 msgid "New"
52 msgstr "Nouveau"
53
54 #. Denote a lock's state
55 msgctxt "Lock state"
56 msgid "Open"
57 msgstr "Ouvert"
58
59 #. Denote a lock's state
60 msgctxt "Lock state"
61 msgid "Closed"
62 msgstr "Fermé"
63
64 #. A product
65 msgctxt "Audi"
66 msgid "car"
67 msgstr "voiture"
68
69 #. A product
70 msgctxt "Océ"
71 msgid "copier"
72 msgstr "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"
81 EOF
82
83 tmpfiles="$tmpfiles mfi-test4.out mfi-test4.err"
84 : ${MSGFILTER=msgfilter}
85 sedexpr1='1{
86 s/^/\[\[/
87 }'
88 sedexpr2='${
89 s/$/\]\]/
90 }'
91 LC_ALL=C \
92 ${MSGFILTER} -i mfi-test4.po -o mfi-test4.out sed -e "$sedexpr1" -e "$sedexpr2" >mfi-test4.err 2>&1
93 result=$?
94 cat mfi-test4.err | grep -v 'warning: Locale charset' | grep -v '^ '
95 test $result = 0 || { rm -fr $tmpfiles; exit 1; }
96
97 tmpfiles="$tmpfiles mfi-test4.ok"
98 cat <<\EOF > mfi-test4.ok
99 msgid ""
100 msgstr ""
101 "[[Content-Type: text/plain; charset=UTF-8\n"
102 "Content-Transfer-Encoding: 8bit]]\n"
103
104 #. A menu item
105 msgctxt "File|"
106 msgid "Open"
107 msgstr "[[Ouvrir]]"
108
109 #. A menu item
110 msgctxt "File|"
111 msgid "New"
112 msgstr "[[Nouveau]]"
113
114 #. Denote a lock's state
115 msgctxt "Lock state"
116 msgid "Open"
117 msgstr "[[Ouvert]]"
118
119 #. Denote a lock's state
120 msgctxt "Lock state"
121 msgid "Closed"
122 msgstr "[[Fermé]]"
123
124 #. A product
125 msgctxt "Audi"
126 msgid "car"
127 msgstr "[[voiture]]"
128
129 #. A product
130 msgctxt "Océ"
131 msgid "copier"
132 msgstr "[[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]]"
141 EOF
142
143 : ${DIFF=diff}
144 ${DIFF} mfi-test4.ok mfi-test4.out
145 result=$?
146
147 rm -fr $tmpfiles
148
149 exit $result