1 /** 
2    A reduced copy for langinfo.h from GNU. See copyright on it below.
3 
4    Access to locale-dependent parameters.
5    Copyright (C) 1995-2020 Free Software Foundation, Inc.
6    This file is part of the GNU C Library.
7 
8    The GNU C Library is free software; you can redistribute it and/or
9    modify it under the terms of the GNU Lesser General Public
10    License as published by the Free Software Foundation; either
11    version 2.1 of the License, or (at your option) any later version.
12 
13    The GNU C Library is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16    Lesser General Public License for more details.
17 
18    You should have received a copy of the GNU Lesser General Public
19    License along with the GNU C Library; if not, see
20    <https://www.gnu.org/licenses/>.  */
21 module cheaders.langinfo;
22 
23 version(Posix)
24 {
25 	extern (C):
26 	
27 	enum _LANGINFO_H = 1;
28     auto _NL_ITEM(T0, T1)(auto ref T0 category, auto ref T1 index)
29     {
30         return (category << 16) | index;
31     }
32 	
33 	/* Get the type definition.  */
34 	enum __LC_CTYPE = 0;
35 	enum __LC_NUMERIC = 1;
36 	enum __LC_TIME = 2;
37 	enum __LC_COLLATE = 3;
38 	enum __LC_MONETARY = 4;
39 	enum __LC_MESSAGES = 5;
40 	enum __LC_ALL = 6;
41 	enum __LC_PAPER = 7;
42 	enum __LC_NAME = 8;
43 	enum __LC_ADDRESS = 9;
44 	enum __LC_TELEPHONE = 10;
45 	enum __LC_MEASUREMENT = 11;
46 	enum __LC_IDENTIFICATION = 12;	
47 
48 	/* Enumeration of locale items that can be queried with `nl_langinfo'.  */
49 	enum nl_item
50 	{
51 	    /* LC_TIME category: date and time formatting.  */
52 	
53 	    /* Abbreviated days of the week. */
54 	    ABDAY_1 = _NL_ITEM(__LC_TIME, 0), /* Sun */
55 	
56 	    ABDAY_2 = 131073,
57 	
58 	    ABDAY_3 = 131074,
59 	
60 	    ABDAY_4 = 131075,
61 	
62 	    ABDAY_5 = 131076,
63 	
64 	    ABDAY_6 = 131077,
65 	
66 	    ABDAY_7 = 131078,
67 	
68 	    /* Long-named days of the week. */
69 	    DAY_1 = 131079, /* Sunday */
70 	
71 	    DAY_2 = 131080, /* Monday */
72 	
73 	    DAY_3 = 131081, /* Tuesday */
74 	
75 	    DAY_4 = 131082, /* Wednesday */
76 	
77 	    DAY_5 = 131083, /* Thursday */
78 	
79 	    DAY_6 = 131084, /* Friday */
80 	
81 	    DAY_7 = 131085, /* Saturday */
82 	
83 	    /* Abbreviated month names, in the grammatical form used when the month
84 	       is a part of a complete date.  */
85 	    ABMON_1 = 131086, /* Jan */
86 	
87 	    ABMON_2 = 131087,
88 	
89 	    ABMON_3 = 131088,
90 	
91 	    ABMON_4 = 131089,
92 	
93 	    ABMON_5 = 131090,
94 	
95 	    ABMON_6 = 131091,
96 	
97 	    ABMON_7 = 131092,
98 	
99 	    ABMON_8 = 131093,
100 	
101 	    ABMON_9 = 131094,
102 	
103 	    ABMON_10 = 131095,
104 	
105 	    ABMON_11 = 131096,
106 	
107 	    ABMON_12 = 131097,
108 	
109 	    /* Long month names, in the grammatical form used when the month
110 	       is a part of a complete date.  */
111 	    MON_1 = 131098, /* January */
112 	
113 	    MON_2 = 131099,
114 	
115 	    MON_3 = 131100,
116 	
117 	    MON_4 = 131101,
118 	
119 	    MON_5 = 131102,
120 	
121 	    MON_6 = 131103,
122 	
123 	    MON_7 = 131104,
124 	
125 	    MON_8 = 131105,
126 	
127 	    MON_9 = 131106,
128 	
129 	    MON_10 = 131107,
130 	
131 	    MON_11 = 131108,
132 	
133 	    MON_12 = 131109,
134 	
135 	    AM_STR = 131110, /* Ante meridiem string.  */
136 	
137 	    PM_STR = 131111, /* Post meridiem string.  */
138 	
139 	    D_T_FMT = 131112, /* Date and time format for strftime.  */
140 	
141 	    D_FMT = 131113, /* Date format for strftime.  */
142 	
143 	    T_FMT = 131114, /* Time format for strftime.  */
144 	
145 	    T_FMT_AMPM = 131115, /* 12-hour time format for strftime.  */
146 	
147 	    ERA = 131116, /* Alternate era.  */
148 	
149 	    __ERA_YEAR = 131117, /* Year in alternate era format.  */
150 	
151 	    ERA_D_FMT = 131118, /* Date in alternate era format.  */
152 	
153 	    ALT_DIGITS = 131119, /* Alternate symbols for digits.  */
154 	
155 	    ERA_D_T_FMT = 131120, /* Date and time in alternate era format.  */
156 	
157 	    ERA_T_FMT = 131121, /* Time in alternate era format.  */
158 	
159 	    _NL_TIME_ERA_NUM_ENTRIES = 131122, /* Number entries in the era arrays.  */
160 	    _NL_TIME_ERA_ENTRIES = 131123, /* Structure with era entries in usable form.*/
161 	
162 	    _NL_WABDAY_1 = 131124, /* Sun */
163 	    _NL_WABDAY_2 = 131125,
164 	    _NL_WABDAY_3 = 131126,
165 	    _NL_WABDAY_4 = 131127,
166 	    _NL_WABDAY_5 = 131128,
167 	    _NL_WABDAY_6 = 131129,
168 	    _NL_WABDAY_7 = 131130,
169 	
170 	    /* Long-named days of the week. */
171 	    _NL_WDAY_1 = 131131, /* Sunday */
172 	    _NL_WDAY_2 = 131132, /* Monday */
173 	    _NL_WDAY_3 = 131133, /* Tuesday */
174 	    _NL_WDAY_4 = 131134, /* Wednesday */
175 	    _NL_WDAY_5 = 131135, /* Thursday */
176 	    _NL_WDAY_6 = 131136, /* Friday */
177 	    _NL_WDAY_7 = 131137, /* Saturday */
178 	
179 	    /* Abbreviated month names, in the grammatical form used when the month
180 	       is a part of a complete date.  */
181 	    _NL_WABMON_1 = 131138, /* Jan */
182 	    _NL_WABMON_2 = 131139,
183 	    _NL_WABMON_3 = 131140,
184 	    _NL_WABMON_4 = 131141,
185 	    _NL_WABMON_5 = 131142,
186 	    _NL_WABMON_6 = 131143,
187 	    _NL_WABMON_7 = 131144,
188 	    _NL_WABMON_8 = 131145,
189 	    _NL_WABMON_9 = 131146,
190 	    _NL_WABMON_10 = 131147,
191 	    _NL_WABMON_11 = 131148,
192 	    _NL_WABMON_12 = 131149,
193 	
194 	    /* Long month names, in the grammatical form used when the month
195 	       is a part of a complete date.  */
196 	    _NL_WMON_1 = 131150, /* January */
197 	    _NL_WMON_2 = 131151,
198 	    _NL_WMON_3 = 131152,
199 	    _NL_WMON_4 = 131153,
200 	    _NL_WMON_5 = 131154,
201 	    _NL_WMON_6 = 131155,
202 	    _NL_WMON_7 = 131156,
203 	    _NL_WMON_8 = 131157,
204 	    _NL_WMON_9 = 131158,
205 	    _NL_WMON_10 = 131159,
206 	    _NL_WMON_11 = 131160,
207 	    _NL_WMON_12 = 131161,
208 	
209 	    _NL_WAM_STR = 131162, /* Ante meridiem string.  */
210 	    _NL_WPM_STR = 131163, /* Post meridiem string.  */
211 	
212 	    _NL_WD_T_FMT = 131164, /* Date and time format for strftime.  */
213 	    _NL_WD_FMT = 131165, /* Date format for strftime.  */
214 	    _NL_WT_FMT = 131166, /* Time format for strftime.  */
215 	    _NL_WT_FMT_AMPM = 131167, /* 12-hour time format for strftime.  */
216 	
217 	    _NL_WERA_YEAR = 131168, /* Year in alternate era format.  */
218 	    _NL_WERA_D_FMT = 131169, /* Date in alternate era format.  */
219 	    _NL_WALT_DIGITS = 131170, /* Alternate symbols for digits.  */
220 	    _NL_WERA_D_T_FMT = 131171, /* Date and time in alternate era format.  */
221 	    _NL_WERA_T_FMT = 131172, /* Time in alternate era format.  */
222 	
223 	    _NL_TIME_WEEK_NDAYS = 131173,
224 	    _NL_TIME_WEEK_1STDAY = 131174,
225 	    _NL_TIME_WEEK_1STWEEK = 131175,
226 	    _NL_TIME_FIRST_WEEKDAY = 131176,
227 	    _NL_TIME_FIRST_WORKDAY = 131177,
228 	    _NL_TIME_CAL_DIRECTION = 131178,
229 	    _NL_TIME_TIMEZONE = 131179,
230 
231 	    /// strftime format for date.
232 	    _DATE_FMT = 131180, 	
233 	    _NL_W_DATE_FMT = 131181,
234 	
235 	    _NL_TIME_CODESET = 131182,
236 	
237 	    /// Long month names, in the grammatical form used when the month is named by itself.
238 	    __ALTMON_1 = 131183, // January
239 	    __ALTMON_2 = 131184,
240 	    __ALTMON_3 = 131185,
241 	    __ALTMON_4 = 131186,
242 	    __ALTMON_5 = 131187,
243 	    __ALTMON_6 = 131188,
244 	    __ALTMON_7 = 131189,
245 	    __ALTMON_8 = 131190,
246 	    __ALTMON_9 = 131191,
247 	    __ALTMON_10 = 131192,
248 	    __ALTMON_11 = 131193,
249 	    __ALTMON_12 = 131194,
250 	
251 	    /// Long month names, in the grammatical form used when the month is named by itself.
252 	    _NL_WALTMON_1 = 131195, // January
253 	    _NL_WALTMON_2 = 131196,
254 	    _NL_WALTMON_3 = 131197,
255 	    _NL_WALTMON_4 = 131198,
256 	    _NL_WALTMON_5 = 131199,
257 	    _NL_WALTMON_6 = 131200,
258 	    _NL_WALTMON_7 = 131201,
259 	    _NL_WALTMON_8 = 131202,
260 	    _NL_WALTMON_9 = 131203,
261 	    _NL_WALTMON_10 = 131204,
262 	    _NL_WALTMON_11 = 131205,
263 	    _NL_WALTMON_12 = 131206,
264 	
265 	    /// Abbreviated month names, in the grammatical form used when the month is named by itself.
266 	    _NL_ABALTMON_1 = 131207, // Jan
267 	    _NL_ABALTMON_2 = 131208,
268 	    _NL_ABALTMON_3 = 131209,
269 	    _NL_ABALTMON_4 = 131210,
270 	    _NL_ABALTMON_5 = 131211,
271 	    _NL_ABALTMON_6 = 131212,
272 	    _NL_ABALTMON_7 = 131213,
273 	    _NL_ABALTMON_8 = 131214,
274 	    _NL_ABALTMON_9 = 131215,
275 	    _NL_ABALTMON_10 = 131216,
276 	    _NL_ABALTMON_11 = 131217,
277 	    _NL_ABALTMON_12 = 131218,
278 	
279 	    /** Abbreviated month names, in the grammatical form used when the month
280 	       is named by itself.  */
281 	    _NL_WABALTMON_1 = 131219, // Jan
282 	    _NL_WABALTMON_2 = 131220,
283 	    _NL_WABALTMON_3 = 131221,
284 	    _NL_WABALTMON_4 = 131222,
285 	    _NL_WABALTMON_5 = 131223,
286 	    _NL_WABALTMON_6 = 131224,
287 	    _NL_WABALTMON_7 = 131225,
288 	    _NL_WABALTMON_8 = 131226,
289 	    _NL_WABALTMON_9 = 131227,
290 	    _NL_WABALTMON_10 = 131228,
291 	    _NL_WABALTMON_11 = 131229,
292 	    _NL_WABALTMON_12 = 131230,
293 
294 	    /** Number of indices in LC_TIME category.  */
295 	    _NL_NUM_LC_TIME = 131231, 	
296 
297 	    /** LC_COLLATE category: text sorting.
298 	       This information is accessed by the strcoll and strxfrm functions.
299 	       These `nl_langinfo' names are used only internally.  */
300 	    _NL_COLLATE_NRULES = _NL_ITEM(__LC_COLLATE, 0),
301 	    _NL_COLLATE_RULESETS = 196609,
302 	    _NL_COLLATE_TABLEMB = 196610,
303 	    _NL_COLLATE_WEIGHTMB = 196611,
304 	    _NL_COLLATE_EXTRAMB = 196612,
305 	    _NL_COLLATE_INDIRECTMB = 196613,
306 	    _NL_COLLATE_GAP1 = 196614,
307 	    _NL_COLLATE_GAP2 = 196615,
308 	    _NL_COLLATE_GAP3 = 196616,
309 	    _NL_COLLATE_TABLEWC = 196617,
310 	    _NL_COLLATE_WEIGHTWC = 196618,
311 	    _NL_COLLATE_EXTRAWC = 196619,
312 	    _NL_COLLATE_INDIRECTWC = 196620,
313 	    _NL_COLLATE_SYMB_HASH_SIZEMB = 196621,
314 	    _NL_COLLATE_SYMB_TABLEMB = 196622,
315 	    _NL_COLLATE_SYMB_EXTRAMB = 196623,
316 	    _NL_COLLATE_COLLSEQMB = 196624,
317 	    _NL_COLLATE_COLLSEQWC = 196625,
318 	    _NL_COLLATE_CODESET = 196626,
319 	    _NL_NUM_LC_COLLATE = 196627,
320 	
321 	    /** LC_CTYPE category: character classification.
322 	       This information is accessed by the functions in <ctype.h>.
323 	       These `nl_langinfo' names are used only internally.  */
324 	    _NL_CTYPE_CLASS = _NL_ITEM(__LC_CTYPE, 0),
325 	    _NL_CTYPE_TOUPPER = 1,
326 	    _NL_CTYPE_GAP1 = 2,
327 	    _NL_CTYPE_TOLOWER = 3,
328 	    _NL_CTYPE_GAP2 = 4,
329 	    _NL_CTYPE_CLASS32 = 5,
330 	    _NL_CTYPE_GAP3 = 6,
331 	    _NL_CTYPE_GAP4 = 7,
332 	    _NL_CTYPE_GAP5 = 8,
333 	    _NL_CTYPE_GAP6 = 9,
334 	    _NL_CTYPE_CLASS_NAMES = 10,
335 	    _NL_CTYPE_MAP_NAMES = 11,
336 	    _NL_CTYPE_WIDTH = 12,
337 	    _NL_CTYPE_MB_CUR_MAX = 13,
338 	    _NL_CTYPE_CODESET_NAME = 14,
339 	    CODESET = _NL_CTYPE_CODESET_NAME,
340 	
341 	    _NL_CTYPE_TOUPPER32 = 15,
342 	    _NL_CTYPE_TOLOWER32 = 16,
343 	    _NL_CTYPE_CLASS_OFFSET = 17,
344 	    _NL_CTYPE_MAP_OFFSET = 18,
345 	    _NL_CTYPE_INDIGITS_MB_LEN = 19,
346 	    _NL_CTYPE_INDIGITS0_MB = 20,
347 	    _NL_CTYPE_INDIGITS1_MB = 21,
348 	    _NL_CTYPE_INDIGITS2_MB = 22,
349 	    _NL_CTYPE_INDIGITS3_MB = 23,
350 	    _NL_CTYPE_INDIGITS4_MB = 24,
351 	    _NL_CTYPE_INDIGITS5_MB = 25,
352 	    _NL_CTYPE_INDIGITS6_MB = 26,
353 	    _NL_CTYPE_INDIGITS7_MB = 27,
354 	    _NL_CTYPE_INDIGITS8_MB = 28,
355 	    _NL_CTYPE_INDIGITS9_MB = 29,
356 	    _NL_CTYPE_INDIGITS_WC_LEN = 30,
357 	    _NL_CTYPE_INDIGITS0_WC = 31,
358 	    _NL_CTYPE_INDIGITS1_WC = 32,
359 	    _NL_CTYPE_INDIGITS2_WC = 33,
360 	    _NL_CTYPE_INDIGITS3_WC = 34,
361 	    _NL_CTYPE_INDIGITS4_WC = 35,
362 	    _NL_CTYPE_INDIGITS5_WC = 36,
363 	    _NL_CTYPE_INDIGITS6_WC = 37,
364 	    _NL_CTYPE_INDIGITS7_WC = 38,
365 	    _NL_CTYPE_INDIGITS8_WC = 39,
366 	    _NL_CTYPE_INDIGITS9_WC = 40,
367 	    _NL_CTYPE_OUTDIGIT0_MB = 41,
368 	    _NL_CTYPE_OUTDIGIT1_MB = 42,
369 	    _NL_CTYPE_OUTDIGIT2_MB = 43,
370 	    _NL_CTYPE_OUTDIGIT3_MB = 44,
371 	    _NL_CTYPE_OUTDIGIT4_MB = 45,
372 	    _NL_CTYPE_OUTDIGIT5_MB = 46,
373 	    _NL_CTYPE_OUTDIGIT6_MB = 47,
374 	    _NL_CTYPE_OUTDIGIT7_MB = 48,
375 	    _NL_CTYPE_OUTDIGIT8_MB = 49,
376 	    _NL_CTYPE_OUTDIGIT9_MB = 50,
377 	    _NL_CTYPE_OUTDIGIT0_WC = 51,
378 	    _NL_CTYPE_OUTDIGIT1_WC = 52,
379 	    _NL_CTYPE_OUTDIGIT2_WC = 53,
380 	    _NL_CTYPE_OUTDIGIT3_WC = 54,
381 	    _NL_CTYPE_OUTDIGIT4_WC = 55,
382 	    _NL_CTYPE_OUTDIGIT5_WC = 56,
383 	    _NL_CTYPE_OUTDIGIT6_WC = 57,
384 	    _NL_CTYPE_OUTDIGIT7_WC = 58,
385 	    _NL_CTYPE_OUTDIGIT8_WC = 59,
386 	    _NL_CTYPE_OUTDIGIT9_WC = 60,
387 	    _NL_CTYPE_TRANSLIT_TAB_SIZE = 61,
388 	    _NL_CTYPE_TRANSLIT_FROM_IDX = 62,
389 	    _NL_CTYPE_TRANSLIT_FROM_TBL = 63,
390 	    _NL_CTYPE_TRANSLIT_TO_IDX = 64,
391 	    _NL_CTYPE_TRANSLIT_TO_TBL = 65,
392 	    _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN = 66,
393 	    _NL_CTYPE_TRANSLIT_DEFAULT_MISSING = 67,
394 	    _NL_CTYPE_TRANSLIT_IGNORE_LEN = 68,
395 	    _NL_CTYPE_TRANSLIT_IGNORE = 69,
396 	    _NL_CTYPE_MAP_TO_NONASCII = 70,
397 	    _NL_CTYPE_NONASCII_CASE = 71,
398 	    _NL_CTYPE_EXTRA_MAP_1 = 72,
399 	    _NL_CTYPE_EXTRA_MAP_2 = 73,
400 	    _NL_CTYPE_EXTRA_MAP_3 = 74,
401 	    _NL_CTYPE_EXTRA_MAP_4 = 75,
402 	    _NL_CTYPE_EXTRA_MAP_5 = 76,
403 	    _NL_CTYPE_EXTRA_MAP_6 = 77,
404 	    _NL_CTYPE_EXTRA_MAP_7 = 78,
405 	    _NL_CTYPE_EXTRA_MAP_8 = 79,
406 	    _NL_CTYPE_EXTRA_MAP_9 = 80,
407 	    _NL_CTYPE_EXTRA_MAP_10 = 81,
408 	    _NL_CTYPE_EXTRA_MAP_11 = 82,
409 	    _NL_CTYPE_EXTRA_MAP_12 = 83,
410 	    _NL_CTYPE_EXTRA_MAP_13 = 84,
411 	    _NL_CTYPE_EXTRA_MAP_14 = 85,
412 	    _NL_NUM_LC_CTYPE = 86,
413 	
414 	    /** LC_MONETARY category: formatting of monetary quantities.
415 	       These items each correspond to a member of `struct lconv',
416 	       defined in <locale.h>.  */
417 	    __INT_CURR_SYMBOL = _NL_ITEM(__LC_MONETARY, 0),
418 	
419 	    __CURRENCY_SYMBOL = 262145,
420 	
421 	    __MON_DECIMAL_POINT = 262146,
422 	
423 	    __MON_THOUSANDS_SEP = 262147,
424 	
425 	    __MON_GROUPING = 262148,
426 	
427 	    __POSITIVE_SIGN = 262149,
428 	
429 	    __NEGATIVE_SIGN = 262150,
430 	
431 	    __INT_FRAC_DIGITS = 262151,
432 	
433 	    __FRAC_DIGITS = 262152,
434 	
435 	    __P_CS_PRECEDES = 262153,
436 	
437 	    __P_SEP_BY_SPACE = 262154,
438 	
439 	    __N_CS_PRECEDES = 262155,
440 	
441 	    __N_SEP_BY_SPACE = 262156,
442 	
443 	    __P_SIGN_POSN = 262157,
444 	
445 	    __N_SIGN_POSN = 262158,
446 	
447 	    _NL_MONETARY_CRNCYSTR = 262159,
448 	
449 	    __INT_P_CS_PRECEDES = 262160,
450 	
451 	    __INT_P_SEP_BY_SPACE = 262161,
452 	
453 	    __INT_N_CS_PRECEDES = 262162,
454 	
455 	    __INT_N_SEP_BY_SPACE = 262163,
456 	
457 	    __INT_P_SIGN_POSN = 262164,
458 	
459 	    __INT_N_SIGN_POSN = 262165,
460 	
461 	    _NL_MONETARY_DUO_INT_CURR_SYMBOL = 262166,
462 	    _NL_MONETARY_DUO_CURRENCY_SYMBOL = 262167,
463 	    _NL_MONETARY_DUO_INT_FRAC_DIGITS = 262168,
464 	    _NL_MONETARY_DUO_FRAC_DIGITS = 262169,
465 	    _NL_MONETARY_DUO_P_CS_PRECEDES = 262170,
466 	    _NL_MONETARY_DUO_P_SEP_BY_SPACE = 262171,
467 	    _NL_MONETARY_DUO_N_CS_PRECEDES = 262172,
468 	    _NL_MONETARY_DUO_N_SEP_BY_SPACE = 262173,
469 	    _NL_MONETARY_DUO_INT_P_CS_PRECEDES = 262174,
470 	    _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE = 262175,
471 	    _NL_MONETARY_DUO_INT_N_CS_PRECEDES = 262176,
472 	    _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE = 262177,
473 	    _NL_MONETARY_DUO_P_SIGN_POSN = 262178,
474 	    _NL_MONETARY_DUO_N_SIGN_POSN = 262179,
475 	    _NL_MONETARY_DUO_INT_P_SIGN_POSN = 262180,
476 	    _NL_MONETARY_DUO_INT_N_SIGN_POSN = 262181,
477 	    _NL_MONETARY_UNO_VALID_FROM = 262182,
478 	    _NL_MONETARY_UNO_VALID_TO = 262183,
479 	    _NL_MONETARY_DUO_VALID_FROM = 262184,
480 	    _NL_MONETARY_DUO_VALID_TO = 262185,
481 	    _NL_MONETARY_CONVERSION_RATE = 262186,
482 	    _NL_MONETARY_DECIMAL_POINT_WC = 262187,
483 	    _NL_MONETARY_THOUSANDS_SEP_WC = 262188,
484 	    _NL_MONETARY_CODESET = 262189,
485 	    _NL_NUM_LC_MONETARY = 262190,
486 	
487 	    /// LC_NUMERIC category: formatting of numbers. These also correspond to members of `struct lconv'; see <locale.h>.
488 	    __DECIMAL_POINT = _NL_ITEM(__LC_NUMERIC, 0),
489 	
490 	    RADIXCHAR = __DECIMAL_POINT,
491 	
492 	    __THOUSANDS_SEP = 65537,
493 	
494 	    THOUSEP = __THOUSANDS_SEP,
495 	
496 	    __GROUPING = 65538,
497 	
498 	    _NL_NUMERIC_DECIMAL_POINT_WC = 65539,
499 	    _NL_NUMERIC_THOUSANDS_SEP_WC = 65540,
500 	    _NL_NUMERIC_CODESET = 65541,
501 	    _NL_NUM_LC_NUMERIC = 65542,
502 	    
503         /// Regex matching ``yes'' input.
504 	    __YESEXPR = _NL_ITEM(__LC_MESSAGES, 0), 
505 	
506         /// Regex matching ``no'' input.
507 	    __NOEXPR = 327681,
508 	    /// Output string for ``yes''.
509 	    __YESSTR = 327682, 
510 
511 	    /// Output string for ``no''.
512 	    __NOSTR = 327683, 	
513 	    _NL_MESSAGES_CODESET = 327684,
514 	    _NL_NUM_LC_MESSAGES = 327685,
515 	
516 	    _NL_PAPER_HEIGHT = _NL_ITEM(__LC_PAPER, 0),
517 	    _NL_PAPER_WIDTH = 458753,
518 	    _NL_PAPER_CODESET = 458754,
519 	    _NL_NUM_LC_PAPER = 458755,
520 	
521 	    _NL_NAME_NAME_FMT = _NL_ITEM(__LC_NAME, 0),
522 	    _NL_NAME_NAME_GEN = 524289,
523 	    _NL_NAME_NAME_MR = 524290,
524 	    _NL_NAME_NAME_MRS = 524291,
525 	    _NL_NAME_NAME_MISS = 524292,
526 	    _NL_NAME_NAME_MS = 524293,
527 	    _NL_NAME_CODESET = 524294,
528 	    _NL_NUM_LC_NAME = 524295,
529 	
530 	    _NL_ADDRESS_POSTAL_FMT = _NL_ITEM(__LC_ADDRESS, 0),
531 	    _NL_ADDRESS_COUNTRY_NAME = 589825,
532 	    _NL_ADDRESS_COUNTRY_POST = 589826,
533 	    _NL_ADDRESS_COUNTRY_AB2 = 589827,
534 	    _NL_ADDRESS_COUNTRY_AB3 = 589828,
535 	    _NL_ADDRESS_COUNTRY_CAR = 589829,
536 	    _NL_ADDRESS_COUNTRY_NUM = 589830,
537 	    _NL_ADDRESS_COUNTRY_ISBN = 589831,
538 	    _NL_ADDRESS_LANG_NAME = 589832,
539 	    _NL_ADDRESS_LANG_AB = 589833,
540 	    _NL_ADDRESS_LANG_TERM = 589834,
541 	    _NL_ADDRESS_LANG_LIB = 589835,
542 	    _NL_ADDRESS_CODESET = 589836,
543 	    _NL_NUM_LC_ADDRESS = 589837,
544 	
545 	    _NL_TELEPHONE_TEL_INT_FMT = _NL_ITEM(__LC_TELEPHONE, 0),
546 	    _NL_TELEPHONE_TEL_DOM_FMT = 655361,
547 	    _NL_TELEPHONE_INT_SELECT = 655362,
548 	    _NL_TELEPHONE_INT_PREFIX = 655363,
549 	    _NL_TELEPHONE_CODESET = 655364,
550 	    _NL_NUM_LC_TELEPHONE = 655365,
551 	
552 	    _NL_MEASUREMENT_MEASUREMENT = _NL_ITEM(__LC_MEASUREMENT, 0),
553 	    _NL_MEASUREMENT_CODESET = 720897,
554 	    _NL_NUM_LC_MEASUREMENT = 720898,
555 	
556 	    _NL_IDENTIFICATION_TITLE = _NL_ITEM(__LC_IDENTIFICATION, 0),
557 	    _NL_IDENTIFICATION_SOURCE = 786433,
558 	    _NL_IDENTIFICATION_ADDRESS = 786434,
559 	    _NL_IDENTIFICATION_CONTACT = 786435,
560 	    _NL_IDENTIFICATION_EMAIL = 786436,
561 	    _NL_IDENTIFICATION_TEL = 786437,
562 	    _NL_IDENTIFICATION_FAX = 786438,
563 	    _NL_IDENTIFICATION_LANGUAGE = 786439,
564 	    _NL_IDENTIFICATION_TERRITORY = 786440,
565 	    _NL_IDENTIFICATION_AUDIENCE = 786441,
566 	    _NL_IDENTIFICATION_APPLICATION = 786442,
567 	    _NL_IDENTIFICATION_ABBREVIATION = 786443,
568 	    _NL_IDENTIFICATION_REVISION = 786444,
569 	    _NL_IDENTIFICATION_DATE = 786445,
570 	    _NL_IDENTIFICATION_CATEGORY = 786446,
571 	    _NL_IDENTIFICATION_CODESET = 786447,
572 	    _NL_NUM_LC_IDENTIFICATION = 786448,
573 	
574 	    /// This marks the highest value used.
575 	    _NL_NUM = 786449
576 	}
577 	
578 	/** Return the current locale's value for ITEM.
579 	   If ITEM is invalid, an empty string is returned.
580 	
581 	   The string returned will not change until `setlocale' is called;
582 	   it is usually in read-only memory and cannot be modified.  */
583 	char* nl_langinfo (nl_item __item);
584 	
585 }