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