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