1#!/bin/sh
2# Test nl_langinfo.
3# Copyright (C) 2000-2022 Free Software Foundation, Inc.
4# This file is part of the GNU C Library.
5
6# The GNU C Library is free software; you can redistribute it and/or
7# modify it under the terms of the GNU Lesser General Public
8# License as published by the Free Software Foundation; either
9# version 2.1 of the License, or (at your option) any later version.
10
11# The GNU C Library is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14# Lesser General Public License for more details.
15
16# You should have received a copy of the GNU Lesser General Public
17# License along with the GNU C Library; if not, see
18# <https://www.gnu.org/licenses/>.
19
20set -e
21
22common_objpfx=$1
23tst_langinfo_before_env=$2
24run_program_env=$3
25tst_langinfo_after_env=$4
26
27# Run the test program.
28cat <<"EOF" |
29# Only decimal numerical escape sequences allowed in strings.
30C                    ABDAY_1     Sun
31C                    ABDAY_2     Mon
32C                    ABDAY_3     Tue
33C                    ABDAY_4     Wed
34C                    ABDAY_5     Thu
35C                    ABDAY_6     Fri
36C                    ABDAY_7     Sat
37C                    DAY_1       Sunday
38C                    DAY_2       Monday
39C                    DAY_3       Tuesday
40C                    DAY_4       Wednesday
41C                    DAY_5       Thursday
42C                    DAY_6       Friday
43C                    DAY_7       Saturday
44C                    ABMON_1     Jan
45C                    ABMON_2     Feb
46C                    ABMON_3     Mar
47C                    ABMON_4     Apr
48C                    ABMON_5     May
49C                    ABMON_6     Jun
50C                    ABMON_7     Jul
51C                    ABMON_8     Aug
52C                    ABMON_9     Sep
53C                    ABMON_10    Oct
54C                    ABMON_11    Nov
55C                    ABMON_12    Dec
56C                    MON_1       January
57C                    MON_2       February
58C                    MON_3       March
59C                    MON_4       April
60C                    MON_5       May
61C                    MON_6       June
62C                    MON_7       July
63C                    MON_8       August
64C                    MON_9       September
65C                    MON_10      October
66C                    MON_11      November
67C                    MON_12      December
68C                    AM_STR      AM
69C                    PM_STR      PM
70C                    D_T_FMT     "%a %b %e %H:%M:%S %Y"
71C                    D_FMT       "%m/%d/%y"
72C                    T_FMT       "%H:%M:%S"
73C                    T_FMT_AMPM  "%I:%M:%S %p"
74C                    ABDAY_1     Sun
75C                    ABDAY_2     Mon
76C                    ABDAY_3     Tue
77C                    ABDAY_4     Wed
78C                    ABDAY_5     Thu
79C                    ABDAY_6     Fri
80C                    ABDAY_7     Sat
81C                    DAY_1       Sunday
82C                    DAY_2       Monday
83C                    DAY_3       Tuesday
84C                    DAY_4       Wednesday
85C                    DAY_5       Thursday
86C                    DAY_6       Friday
87C                    DAY_7       Saturday
88C                    RADIXCHAR   .
89C                    THOUSEP     ""
90C                    YESEXPR     ^[yY]
91C                    NOEXPR      ^[nN]
92en_US.ANSI_X3.4-1968 ABMON_1     Jan
93en_US.ANSI_X3.4-1968 ABMON_2     Feb
94en_US.ANSI_X3.4-1968 ABMON_3     Mar
95en_US.ANSI_X3.4-1968 ABMON_4     Apr
96en_US.ANSI_X3.4-1968 ABMON_5     May
97en_US.ANSI_X3.4-1968 ABMON_6     Jun
98en_US.ANSI_X3.4-1968 ABMON_7     Jul
99en_US.ANSI_X3.4-1968 ABMON_8     Aug
100en_US.ANSI_X3.4-1968 ABMON_9     Sep
101en_US.ANSI_X3.4-1968 ABMON_10    Oct
102en_US.ANSI_X3.4-1968 ABMON_11    Nov
103en_US.ANSI_X3.4-1968 ABMON_12    Dec
104en_US.ANSI_X3.4-1968 MON_1       January
105en_US.ANSI_X3.4-1968 MON_2       February
106en_US.ANSI_X3.4-1968 MON_3       March
107en_US.ANSI_X3.4-1968 MON_4       April
108en_US.ANSI_X3.4-1968 MON_5       May
109en_US.ANSI_X3.4-1968 MON_6       June
110en_US.ANSI_X3.4-1968 MON_7       July
111en_US.ANSI_X3.4-1968 MON_8       August
112en_US.ANSI_X3.4-1968 MON_9       September
113en_US.ANSI_X3.4-1968 MON_10      October
114en_US.ANSI_X3.4-1968 MON_11      November
115en_US.ANSI_X3.4-1968 MON_12      December
116en_US.ANSI_X3.4-1968 AM_STR      AM
117en_US.ANSI_X3.4-1968 PM_STR      PM
118en_US.ANSI_X3.4-1968 D_T_FMT     "%a %d %b %Y %r %Z"
119en_US.ANSI_X3.4-1968 D_FMT       "%m/%d/%Y"
120en_US.ANSI_X3.4-1968 T_FMT       "%r"
121en_US.ANSI_X3.4-1968 T_FMT_AMPM  "%I:%M:%S %p"
122en_US.ANSI_X3.4-1968 RADIXCHAR   .
123en_US.ANSI_X3.4-1968 THOUSEP     ,
124en_US.ANSI_X3.4-1968 YESEXPR     ^[+1yY]
125en_US.ANSI_X3.4-1968 NOEXPR      ^[-0nN]
126en_US.ISO-8859-1     ABMON_1     Jan
127en_US.ISO-8859-1     ABMON_2     Feb
128en_US.ISO-8859-1     ABMON_3     Mar
129en_US.ISO-8859-1     ABMON_4     Apr
130en_US.ISO-8859-1     ABMON_5     May
131en_US.ISO-8859-1     ABMON_6     Jun
132en_US.ISO-8859-1     ABMON_7     Jul
133en_US.ISO-8859-1     ABMON_8     Aug
134en_US.ISO-8859-1     ABMON_9     Sep
135en_US.ISO-8859-1     ABMON_10    Oct
136en_US.ISO-8859-1     ABMON_11    Nov
137en_US.ISO-8859-1     ABMON_12    Dec
138en_US.ISO-8859-1     MON_1       January
139en_US.ISO-8859-1     MON_2       February
140en_US.ISO-8859-1     MON_3       March
141en_US.ISO-8859-1     MON_4       April
142en_US.ISO-8859-1     MON_5       May
143en_US.ISO-8859-1     MON_6       June
144en_US.ISO-8859-1     MON_7       July
145en_US.ISO-8859-1     MON_8       August
146en_US.ISO-8859-1     MON_9       September
147en_US.ISO-8859-1     MON_10      October
148en_US.ISO-8859-1     MON_11      November
149en_US.ISO-8859-1     MON_12      December
150en_US.ISO-8859-1     AM_STR      AM
151en_US.ISO-8859-1     PM_STR      PM
152en_US.ISO-8859-1     D_T_FMT     "%a %d %b %Y %r %Z"
153en_US.ISO-8859-1     D_FMT       "%m/%d/%Y"
154en_US.ISO-8859-1     T_FMT       "%r"
155en_US.ISO-8859-1     T_FMT_AMPM  "%I:%M:%S %p"
156en_US.ISO-8859-1     RADIXCHAR   .
157en_US.ISO-8859-1     THOUSEP     ,
158en_US.ISO-8859-1     YESEXPR     ^[+1yY]
159en_US.ISO-8859-1     NOEXPR      ^[-0nN]
160en_US.UTF-8	     CURRENCY_SYMBOL	$
161de_DE.ISO-8859-1     ABDAY_1     So
162de_DE.ISO-8859-1     ABDAY_2     Mo
163de_DE.ISO-8859-1     ABDAY_3     Di
164de_DE.ISO-8859-1     ABDAY_4     Mi
165de_DE.ISO-8859-1     ABDAY_5     Do
166de_DE.ISO-8859-1     ABDAY_6     Fr
167de_DE.ISO-8859-1     ABDAY_7     Sa
168de_DE.ISO-8859-1     DAY_1       Sonntag
169de_DE.ISO-8859-1     DAY_2       Montag
170de_DE.ISO-8859-1     DAY_3       Dienstag
171de_DE.ISO-8859-1     DAY_4       Mittwoch
172de_DE.ISO-8859-1     DAY_5       Donnerstag
173de_DE.ISO-8859-1     DAY_6       Freitag
174de_DE.ISO-8859-1     DAY_7       Samstag
175de_DE.ISO-8859-1     ABMON_1     Jan
176de_DE.ISO-8859-1     ABMON_2     Feb
177de_DE.ISO-8859-1     ABMON_3     Mr
178de_DE.ISO-8859-1     ABMON_4     Apr
179de_DE.ISO-8859-1     ABMON_5     Mai
180de_DE.ISO-8859-1     ABMON_6     Jun
181de_DE.ISO-8859-1     ABMON_7     Jul
182de_DE.ISO-8859-1     ABMON_8     Aug
183de_DE.ISO-8859-1     ABMON_9     Sep
184de_DE.ISO-8859-1     ABMON_10    Okt
185de_DE.ISO-8859-1     ABMON_11    Nov
186de_DE.ISO-8859-1     ABMON_12    Dez
187de_DE.ISO-8859-1     MON_1       Januar
188de_DE.ISO-8859-1     MON_2       Februar
189de_DE.ISO-8859-1     MON_3       Mrz
190de_DE.ISO-8859-1     MON_4       April
191de_DE.ISO-8859-1     MON_5       Mai
192de_DE.ISO-8859-1     MON_6       Juni
193de_DE.ISO-8859-1     MON_7       Juli
194de_DE.ISO-8859-1     MON_8       August
195de_DE.ISO-8859-1     MON_9       September
196de_DE.ISO-8859-1     MON_10      Oktober
197de_DE.ISO-8859-1     MON_11      November
198de_DE.ISO-8859-1     MON_12      Dezember
199de_DE.ISO-8859-1     D_T_FMT     "%a %d %b %Y %T %Z"
200de_DE.ISO-8859-1     D_FMT       "%d.%m.%Y"
201de_DE.ISO-8859-1     T_FMT       "%T"
202de_DE.ISO-8859-1     RADIXCHAR   ,
203de_DE.ISO-8859-1     THOUSEP     .
204de_DE.ISO-8859-1     YESEXPR     ^[+1jJyY]
205de_DE.ISO-8859-1     NOEXPR      ^[-0nN]
206de_DE.UTF-8          ABDAY_1     So
207de_DE.UTF-8          ABDAY_2     Mo
208de_DE.UTF-8          ABDAY_3     Di
209de_DE.UTF-8          ABDAY_4     Mi
210de_DE.UTF-8          ABDAY_5     Do
211de_DE.UTF-8          ABDAY_6     Fr
212de_DE.UTF-8          ABDAY_7     Sa
213de_DE.UTF-8          DAY_1       Sonntag
214de_DE.UTF-8          DAY_2       Montag
215de_DE.UTF-8          DAY_3       Dienstag
216de_DE.UTF-8          DAY_4       Mittwoch
217de_DE.UTF-8          DAY_5       Donnerstag
218de_DE.UTF-8          DAY_6       Freitag
219de_DE.UTF-8          DAY_7       Samstag
220de_DE.UTF-8          ABMON_1     Jan
221de_DE.UTF-8          ABMON_2     Feb
222de_DE.UTF-8          ABMON_3     Mär
223de_DE.UTF-8          ABMON_4     Apr
224de_DE.UTF-8          ABMON_5     Mai
225de_DE.UTF-8          ABMON_6     Jun
226de_DE.UTF-8          ABMON_7     Jul
227de_DE.UTF-8          ABMON_8     Aug
228de_DE.UTF-8          ABMON_9     Sep
229de_DE.UTF-8          ABMON_10    Okt
230de_DE.UTF-8          ABMON_11    Nov
231de_DE.UTF-8          ABMON_12    Dez
232de_DE.UTF-8          MON_1       Januar
233de_DE.UTF-8          MON_2       Februar
234de_DE.UTF-8          MON_3       März
235de_DE.UTF-8          MON_4       April
236de_DE.UTF-8          MON_5       Mai
237de_DE.UTF-8          MON_6       Juni
238de_DE.UTF-8          MON_7       Juli
239de_DE.UTF-8          MON_8       August
240de_DE.UTF-8          MON_9       September
241de_DE.UTF-8          MON_10      Oktober
242de_DE.UTF-8          MON_11      November
243de_DE.UTF-8          MON_12      Dezember
244de_DE.UTF-8          D_T_FMT     "%a %d %b %Y %T %Z"
245de_DE.UTF-8          D_FMT       "%d.%m.%Y"
246de_DE.UTF-8          T_FMT       "%T"
247de_DE.UTF-8          RADIXCHAR   ,
248de_DE.UTF-8          THOUSEP     .
249de_DE.UTF-8          YESEXPR     ^[+1jJyY]
250de_DE.UTF-8          NOEXPR      ^[-0nN]
251de_DE.UTF-8          CURRENCY_SYMBOL252fr_FR.ISO-8859-1     ABDAY_1     dim.
253fr_FR.ISO-8859-1     ABDAY_2     lun.
254fr_FR.ISO-8859-1     ABDAY_3     mar.
255fr_FR.ISO-8859-1     ABDAY_4     mer.
256fr_FR.ISO-8859-1     ABDAY_5     jeu.
257fr_FR.ISO-8859-1     ABDAY_6     ven.
258fr_FR.ISO-8859-1     ABDAY_7     sam.
259fr_FR.ISO-8859-1     DAY_1       dimanche
260fr_FR.ISO-8859-1     DAY_2       lundi
261fr_FR.ISO-8859-1     DAY_3       mardi
262fr_FR.ISO-8859-1     DAY_4       mercredi
263fr_FR.ISO-8859-1     DAY_5       jeudi
264fr_FR.ISO-8859-1     DAY_6       vendredi
265fr_FR.ISO-8859-1     DAY_7       samedi
266fr_FR.ISO-8859-1     ABMON_1     janv.
267fr_FR.ISO-8859-1     ABMON_2     fvr.
268fr_FR.ISO-8859-1     ABMON_3     mars
269fr_FR.ISO-8859-1     ABMON_4     avril
270fr_FR.ISO-8859-1     ABMON_5     mai
271fr_FR.ISO-8859-1     ABMON_6     juin
272fr_FR.ISO-8859-1     ABMON_7     juil.
273fr_FR.ISO-8859-1     ABMON_8     aot
274fr_FR.ISO-8859-1     ABMON_9     sept.
275fr_FR.ISO-8859-1     ABMON_10    oct.
276fr_FR.ISO-8859-1     ABMON_11    nov.
277fr_FR.ISO-8859-1     ABMON_12    dc.
278fr_FR.ISO-8859-1     MON_1       janvier
279fr_FR.ISO-8859-1     MON_2       fvrier
280fr_FR.ISO-8859-1     MON_3       mars
281fr_FR.ISO-8859-1     MON_4       avril
282fr_FR.ISO-8859-1     MON_5       mai
283fr_FR.ISO-8859-1     MON_6       juin
284fr_FR.ISO-8859-1     MON_7       juillet
285fr_FR.ISO-8859-1     MON_8       aot
286fr_FR.ISO-8859-1     MON_9       septembre
287fr_FR.ISO-8859-1     MON_10      octobre
288fr_FR.ISO-8859-1     MON_11      novembre
289fr_FR.ISO-8859-1     MON_12      dcembre
290fr_FR.ISO-8859-1     D_T_FMT     "%a %d %b %Y %T %Z"
291fr_FR.ISO-8859-1     D_FMT       "%d/%m/%Y"
292fr_FR.ISO-8859-1     T_FMT       "%T"
293fr_FR.ISO-8859-1     RADIXCHAR   ,
294fr_FR.ISO-8859-1     THOUSEP     "�"
295fr_FR.ISO-8859-1     YESEXPR     ^[+1oOyY]
296fr_FR.ISO-8859-1     NOEXPR      ^[-0nN]
297fr_FR.UTF-8          CURRENCY_SYMBOL298ja_JP.EUC-JP         ABDAY_1     ��
299ja_JP.EUC-JP         ABDAY_2     ��
300ja_JP.EUC-JP         ABDAY_3     ��
301ja_JP.EUC-JP         ABDAY_4     ��
302ja_JP.EUC-JP         ABDAY_5     ��
303ja_JP.EUC-JP         ABDAY_6     ��
304ja_JP.EUC-JP         ABDAY_7     ��
305ja_JP.EUC-JP         DAY_1       ������
306ja_JP.EUC-JP         DAY_2       ������
307ja_JP.EUC-JP         DAY_3       ������
308ja_JP.EUC-JP         DAY_4       ������
309ja_JP.EUC-JP         DAY_5       ������
310ja_JP.EUC-JP         DAY_6       ������
311ja_JP.EUC-JP         DAY_7       ������
312ja_JP.EUC-JP         ABMON_1     " 1��"
313ja_JP.EUC-JP         ABMON_2     " 2��"
314ja_JP.EUC-JP         ABMON_3     " 3��"
315ja_JP.EUC-JP         ABMON_4     " 4��"
316ja_JP.EUC-JP         ABMON_5     " 5��"
317ja_JP.EUC-JP         ABMON_6     " 6��"
318ja_JP.EUC-JP         ABMON_7     " 7��"
319ja_JP.EUC-JP         ABMON_8     " 8��"
320ja_JP.EUC-JP         ABMON_9     " 9��"
321ja_JP.EUC-JP         ABMON_10    "10��"
322ja_JP.EUC-JP         ABMON_11    "11��"
323ja_JP.EUC-JP         ABMON_12    "12��"
324ja_JP.EUC-JP         MON_1       "1��"
325ja_JP.EUC-JP         MON_2       "2��"
326ja_JP.EUC-JP         MON_3       "3��"
327ja_JP.EUC-JP         MON_4       "4��"
328ja_JP.EUC-JP         MON_5       "5��"
329ja_JP.EUC-JP         MON_6       "6��"
330ja_JP.EUC-JP         MON_7       "7��"
331ja_JP.EUC-JP         MON_8       "8��"
332ja_JP.EUC-JP         MON_9       "9��"
333ja_JP.EUC-JP         MON_10      "10��"
334ja_JP.EUC-JP         MON_11      "11��"
335ja_JP.EUC-JP         MON_12      "12��"
336ja_JP.EUC-JP         T_FMT_AMPM  "%p%I��%Mʬ%S��"
337ja_JP.EUC-JP         ERA_D_FMT   "%EY%m��%d��"
338ja_JP.EUC-JP         ERA_D_T_FMT "%EY%m��%d�� %H��%Mʬ%S��"
339ja_JP.EUC-JP         RADIXCHAR   .
340ja_JP.EUC-JP         THOUSEP     ,
341ja_JP.EUC-JP         YESEXPR     ^([+1yY����]|�Ϥ�|�ϥ�)
342ja_JP.EUC-JP         NOEXPR      ^([-0nN���]|������|������)
343# Is CRNCYSTR supposed to be the national or international sign?
344# ja_JP.EUC-JP         CRNCYSTR    JPY
345ja_JP.EUC-JP         CODESET     EUC-JP
346ja_JP.UTF-8          CURRENCY_SYMBOL347EOF
348${tst_langinfo_before_env} \
349${run_program_env} \
350LC_ALL=tt_TT ${tst_langinfo_after_env}
351
352exit $?
353