xref: /openbsd/gnu/usr.bin/perl/perl_langinfo.h (revision 5486feef)
1 /* Replaces <langinfo.h>, and allows our code to work on systems that don't
2  * have that. */
3 
4 #ifndef PERL_LANGINFO_H
5 #define PERL_LANGINFO_H 1
6 
7 #include "config.h"
8 
9 #if defined(I_LANGINFO)
10 #   include <langinfo.h>
11 #else
12 
13 typedef int nl_item;    /* Substitute 'int' for emulated nl_langinfo() */
14 
15 #endif
16 
17 /* NOTE that this file is parsed by ext/XS-APItest/t/locale.t, so be careful
18  * with changes */
19 
20 /* If foo doesn't exist define it to a negative number. */
21 
22 #ifndef CODESET
23 #  define CODESET -1
24 #  define HAS_MISSING_LANGINFO_ITEM_
25 #endif
26 #ifndef D_T_FMT
27 #  define D_T_FMT -2
28 #  define HAS_MISSING_LANGINFO_ITEM_
29 #endif
30 #ifndef D_FMT
31 #  define D_FMT -3
32 #  define HAS_MISSING_LANGINFO_ITEM_
33 #endif
34 #ifndef T_FMT
35 #  define T_FMT -4
36 #  define HAS_MISSING_LANGINFO_ITEM_
37 #endif
38 #ifndef T_FMT_AMPM
39 #  define T_FMT_AMPM -5
40 #  define HAS_MISSING_LANGINFO_ITEM_
41 #endif
42 #ifndef AM_STR
43 #  define AM_STR -6
44 #  define HAS_MISSING_LANGINFO_ITEM_
45 #endif
46 #ifndef PM_STR
47 #  define PM_STR -7
48 #  define HAS_MISSING_LANGINFO_ITEM_
49 #endif
50 #ifndef DAY_1
51 #  define DAY_1 -8
52 #  define HAS_MISSING_LANGINFO_ITEM_
53 #endif
54 #ifndef DAY_2
55 #  define DAY_2 -9
56 #  define HAS_MISSING_LANGINFO_ITEM_
57 #endif
58 #ifndef DAY_3
59 #  define DAY_3 -10
60 #  define HAS_MISSING_LANGINFO_ITEM_
61 #endif
62 #ifndef DAY_4
63 #  define DAY_4 -11
64 #  define HAS_MISSING_LANGINFO_ITEM_
65 #endif
66 #ifndef DAY_5
67 #  define DAY_5 -12
68 #  define HAS_MISSING_LANGINFO_ITEM_
69 #endif
70 #ifndef DAY_6
71 #  define DAY_6 -13
72 #  define HAS_MISSING_LANGINFO_ITEM_
73 #endif
74 #ifndef DAY_7
75 #  define DAY_7 -14
76 #  define HAS_MISSING_LANGINFO_ITEM_
77 #endif
78 #ifndef ABDAY_1
79 #  define ABDAY_1 -15
80 #  define HAS_MISSING_LANGINFO_ITEM_
81 #endif
82 #ifndef ABDAY_2
83 #  define ABDAY_2 -16
84 #  define HAS_MISSING_LANGINFO_ITEM_
85 #endif
86 #ifndef ABDAY_3
87 #  define ABDAY_3 -17
88 #  define HAS_MISSING_LANGINFO_ITEM_
89 #endif
90 #ifndef ABDAY_4
91 #  define ABDAY_4 -18
92 #  define HAS_MISSING_LANGINFO_ITEM_
93 #endif
94 #ifndef ABDAY_5
95 #  define ABDAY_5 -19
96 #  define HAS_MISSING_LANGINFO_ITEM_
97 #endif
98 #ifndef ABDAY_6
99 #  define ABDAY_6 -20
100 #  define HAS_MISSING_LANGINFO_ITEM_
101 #endif
102 #ifndef ABDAY_7
103 #  define ABDAY_7 -21
104 #  define HAS_MISSING_LANGINFO_ITEM_
105 #endif
106 #ifndef MON_1
107 #  define MON_1 -22
108 #  define HAS_MISSING_LANGINFO_ITEM_
109 #endif
110 #ifndef MON_2
111 #  define MON_2 -23
112 #  define HAS_MISSING_LANGINFO_ITEM_
113 #endif
114 #ifndef MON_3
115 #  define MON_3 -24
116 #  define HAS_MISSING_LANGINFO_ITEM_
117 #endif
118 #ifndef MON_4
119 #  define MON_4 -25
120 #  define HAS_MISSING_LANGINFO_ITEM_
121 #endif
122 #ifndef MON_5
123 #  define MON_5 -26
124 #  define HAS_MISSING_LANGINFO_ITEM_
125 #endif
126 #ifndef MON_6
127 #  define MON_6 -27
128 #  define HAS_MISSING_LANGINFO_ITEM_
129 #endif
130 #ifndef MON_7
131 #  define MON_7 -28
132 #  define HAS_MISSING_LANGINFO_ITEM_
133 #endif
134 #ifndef MON_8
135 #  define MON_8 -29
136 #  define HAS_MISSING_LANGINFO_ITEM_
137 #endif
138 #ifndef MON_9
139 #  define MON_9 -30
140 #  define HAS_MISSING_LANGINFO_ITEM_
141 #endif
142 #ifndef MON_10
143 #  define MON_10 -31
144 #  define HAS_MISSING_LANGINFO_ITEM_
145 #endif
146 #ifndef MON_11
147 #  define MON_11 -32
148 #  define HAS_MISSING_LANGINFO_ITEM_
149 #endif
150 #ifndef MON_12
151 #  define MON_12 -33
152 #  define HAS_MISSING_LANGINFO_ITEM_
153 #endif
154 #ifndef ABMON_1
155 #  define ABMON_1 -34
156 #  define HAS_MISSING_LANGINFO_ITEM_
157 #endif
158 #ifndef ABMON_2
159 #  define ABMON_2 -35
160 #  define HAS_MISSING_LANGINFO_ITEM_
161 #endif
162 #ifndef ABMON_3
163 #  define ABMON_3 -36
164 #  define HAS_MISSING_LANGINFO_ITEM_
165 #endif
166 #ifndef ABMON_4
167 #  define ABMON_4 -37
168 #  define HAS_MISSING_LANGINFO_ITEM_
169 #endif
170 #ifndef ABMON_5
171 #  define ABMON_5 -38
172 #  define HAS_MISSING_LANGINFO_ITEM_
173 #endif
174 #ifndef ABMON_6
175 #  define ABMON_6 -39
176 #  define HAS_MISSING_LANGINFO_ITEM_
177 #endif
178 #ifndef ABMON_7
179 #  define ABMON_7 -40
180 #  define HAS_MISSING_LANGINFO_ITEM_
181 #endif
182 #ifndef ABMON_8
183 #  define ABMON_8 -41
184 #  define HAS_MISSING_LANGINFO_ITEM_
185 #endif
186 #ifndef ABMON_9
187 #  define ABMON_9 -42
188 #  define HAS_MISSING_LANGINFO_ITEM_
189 #endif
190 #ifndef ABMON_10
191 #  define ABMON_10 -43
192 #  define HAS_MISSING_LANGINFO_ITEM_
193 #endif
194 #ifndef ABMON_11
195 #  define ABMON_11 -44
196 #  define HAS_MISSING_LANGINFO_ITEM_
197 #endif
198 #ifndef ABMON_12
199 #  define ABMON_12 -45
200 #  define HAS_MISSING_LANGINFO_ITEM_
201 #endif
202 #ifndef ERA
203 #  define ERA -46
204 #  define HAS_MISSING_LANGINFO_ITEM_
205 #endif
206 #ifndef ERA_D_FMT
207 #  define ERA_D_FMT -47
208 #  define HAS_MISSING_LANGINFO_ITEM_
209 #endif
210 #ifndef ERA_D_T_FMT
211 #  define ERA_D_T_FMT -48
212 #  define HAS_MISSING_LANGINFO_ITEM_
213 #endif
214 #ifndef ERA_T_FMT
215 #  define ERA_T_FMT -49
216 #  define HAS_MISSING_LANGINFO_ITEM_
217 #endif
218 #ifndef ALT_DIGITS
219 #  define ALT_DIGITS -50
220 #  define HAS_MISSING_LANGINFO_ITEM_
221 #endif
222 #ifndef RADIXCHAR
223 #  define RADIXCHAR -51
224 #  define HAS_MISSING_LANGINFO_ITEM_
225 #endif
226 #ifndef THOUSEP
227 #  define THOUSEP -52
228 #  define HAS_MISSING_LANGINFO_ITEM_
229 #endif
230 #ifndef YESEXPR
231 #  define YESEXPR -53
232 #  define HAS_MISSING_LANGINFO_ITEM_
233 #endif
234 #ifndef YESSTR
235 #  define YESSTR -54
236 #  define HAS_MISSING_LANGINFO_ITEM_
237 #endif
238 #ifndef NOEXPR
239 #  define NOEXPR -55
240 #  define HAS_MISSING_LANGINFO_ITEM_
241 #endif
242 #ifndef NOSTR
243 #  define NOSTR -56
244 #  define HAS_MISSING_LANGINFO_ITEM_
245 #endif
246 #ifndef CRNCYSTR
247 #  define CRNCYSTR -57
248 #  define HAS_MISSING_LANGINFO_ITEM_
249 #endif
250 
251 /* The rest of the items are gnu extensions, and are not #defined by its
252  * langinfo.h.  There is a slight possibility that one of these numbers could
253  * conflict with some other value, in which case after much gnashing of teeth
254  * you will find this comment, and end up having to adjust the numbers.   But
255  * glibc values are not (so far) negative */
256 #if ! defined(HAS_NL_LANGINFO) || ! defined(LC_ADDRESS)
257 #  define _NL_ADDRESS_POSTAL_FMT -58
258 #  define _NL_ADDRESS_COUNTRY_NAME -59
259 #  define _NL_ADDRESS_COUNTRY_POST -60
260 #  define _NL_ADDRESS_COUNTRY_AB2 -61
261 #  define _NL_ADDRESS_COUNTRY_AB3 -62
262 #  define _NL_ADDRESS_COUNTRY_CAR -63
263 #  define _NL_ADDRESS_COUNTRY_NUM -64
264 #  define _NL_ADDRESS_COUNTRY_ISBN -65
265 #  define _NL_ADDRESS_LANG_NAME -66
266 #  define _NL_ADDRESS_LANG_AB -67
267 #  define _NL_ADDRESS_LANG_TERM -68
268 #  define _NL_ADDRESS_LANG_LIB -69
269 
270 #  define HAS_MISSING_LANGINFO_ITEM_
271 #endif
272 #if ! defined(HAS_NL_LANGINFO) || ! defined(LC_IDENTIFICATION)
273 #  define _NL_IDENTIFICATION_TITLE -70
274 #  define _NL_IDENTIFICATION_SOURCE -71
275 #  define _NL_IDENTIFICATION_ADDRESS -72
276 #  define _NL_IDENTIFICATION_CONTACT -73
277 #  define _NL_IDENTIFICATION_EMAIL -74
278 #  define _NL_IDENTIFICATION_TEL -75
279 #  define _NL_IDENTIFICATION_FAX -76
280 #  define _NL_IDENTIFICATION_LANGUAGE -77
281 #  define _NL_IDENTIFICATION_TERRITORY -78
282 #  define _NL_IDENTIFICATION_AUDIENCE -79
283 #  define _NL_IDENTIFICATION_APPLICATION -80
284 #  define _NL_IDENTIFICATION_ABBREVIATION -81
285 #  define _NL_IDENTIFICATION_REVISION -82
286 #  define _NL_IDENTIFICATION_DATE -83
287 #  define _NL_IDENTIFICATION_CATEGORY -84
288 
289 #  define HAS_MISSING_LANGINFO_ITEM_
290 #endif
291 #if ! defined(HAS_NL_LANGINFO) || ! defined(LC_MEASUREMENT)
292 #  define _NL_MEASUREMENT_MEASUREMENT -85
293 
294 #  define HAS_MISSING_LANGINFO_ITEM_
295 #endif
296 #if ! defined(HAS_NL_LANGINFO) || ! defined(LC_NAME)
297 #  define _NL_NAME_NAME_FMT -86
298 #  define _NL_NAME_NAME_GEN -87
299 #  define _NL_NAME_NAME_MR -88
300 #  define _NL_NAME_NAME_MRS -89
301 #  define _NL_NAME_NAME_MISS -90
302 #  define _NL_NAME_NAME_MS -91
303 
304 #  define HAS_MISSING_LANGINFO_ITEM_
305 #endif
306 #if ! defined(HAS_NL_LANGINFO) || ! defined(LC_PAPER)
307 #  define _NL_PAPER_HEIGHT -92
308 #  define _NL_PAPER_WIDTH -93
309 
310 #  define HAS_MISSING_LANGINFO_ITEM_
311 #endif
312 #if ! defined(HAS_NL_LANGINFO) || ! defined(LC_TELEPHONE)
313 #  define _NL_TELEPHONE_TEL_INT_FMT -94
314 #  define _NL_TELEPHONE_TEL_DOM_FMT -95
315 #  define _NL_TELEPHONE_INT_SELECT -96
316 #  define _NL_TELEPHONE_INT_PREFIX -97
317 
318 #  define HAS_MISSING_LANGINFO_ITEM_
319 #endif
320 
321 /* All these categories have to be emulated if not available on the platform */
322 #if ! LC_CTYPE_AVAIL_           \
323  || ! LC_MESSAGES_AVAIL_        \
324  || ! LC_MONETARY_AVAIL_        \
325  || ! LC_NUMERIC_AVAIL_         \
326  || ! LC_TIME_AVAIL_            \
327  || ! LC_ADDRESS_AVAIL_         \
328  || ! LC_IDENTIFICATION_AVAIL_  \
329  || ! LC_MEASUREMENT_AVAIL_     \
330  || ! LC_NAME_AVAIL_            \
331  || ! LC_PAPER_AVAIL_           \
332  || ! LC_TELEPHONE_AVAIL_
333 
334 #  define HAS_MISSING_LANGINFO_ITEM_
335 #endif
336 
337 #endif  /* PERL_LANGINFO_H */
338