1 | /* Access to locale-dependent parameters. |
2 | Copyright (C) 1995-2016 Free Software Foundation, Inc. |
3 | This file is part of the GNU C Library. |
4 | |
5 | The GNU C Library is free software; you can redistribute it and/or |
6 | modify it under the terms of the GNU Lesser General Public |
7 | License as published by the Free Software Foundation; either |
8 | version 2.1 of the License, or (at your option) any later version. |
9 | |
10 | The GNU C Library is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | Lesser General Public License for more details. |
14 | |
15 | You should have received a copy of the GNU Lesser General Public |
16 | License along with the GNU C Library; if not, see |
17 | <http://www.gnu.org/licenses/>. */ |
18 | |
19 | #ifndef _LANGINFO_H |
20 | #define _LANGINFO_H 1 |
21 | |
22 | /* Get the type definition. */ |
23 | #include <nl_types.h> |
24 | |
25 | #include <bits/locale.h> /* Define the __LC_* category names. */ |
26 | |
27 | |
28 | __BEGIN_DECLS |
29 | |
30 | /* Construct an `nl_item' value for `nl_langinfo' from a locale category |
31 | (LC_*) and an item index within the category. Some code may depend on |
32 | the item values within a category increasing monotonically with the |
33 | indices. */ |
34 | #define _NL_ITEM(category, index) (((category) << 16) | (index)) |
35 | |
36 | /* Extract the category and item index from a constructed `nl_item' value. */ |
37 | #define _NL_ITEM_CATEGORY(item) ((int) (item) >> 16) |
38 | #define _NL_ITEM_INDEX(item) ((int) (item) & 0xffff) |
39 | |
40 | /* Enumeration of locale items that can be queried with `nl_langinfo'. */ |
41 | enum |
42 | { |
43 | /* LC_TIME category: date and time formatting. */ |
44 | |
45 | /* Abbreviated days of the week. */ |
46 | ABDAY_1 = _NL_ITEM (__LC_TIME, 0), /* Sun */ |
47 | #define ABDAY_1 ABDAY_1 |
48 | ABDAY_2, |
49 | #define ABDAY_2 ABDAY_2 |
50 | ABDAY_3, |
51 | #define ABDAY_3 ABDAY_3 |
52 | ABDAY_4, |
53 | #define ABDAY_4 ABDAY_4 |
54 | ABDAY_5, |
55 | #define ABDAY_5 ABDAY_5 |
56 | ABDAY_6, |
57 | #define ABDAY_6 ABDAY_6 |
58 | ABDAY_7, |
59 | #define ABDAY_7 ABDAY_7 |
60 | |
61 | /* Long-named days of the week. */ |
62 | DAY_1, /* Sunday */ |
63 | #define DAY_1 DAY_1 |
64 | DAY_2, /* Monday */ |
65 | #define DAY_2 DAY_2 |
66 | DAY_3, /* Tuesday */ |
67 | #define DAY_3 DAY_3 |
68 | DAY_4, /* Wednesday */ |
69 | #define DAY_4 DAY_4 |
70 | DAY_5, /* Thursday */ |
71 | #define DAY_5 DAY_5 |
72 | DAY_6, /* Friday */ |
73 | #define DAY_6 DAY_6 |
74 | DAY_7, /* Saturday */ |
75 | #define DAY_7 DAY_7 |
76 | |
77 | /* Abbreviated month names. */ |
78 | ABMON_1, /* Jan */ |
79 | #define ABMON_1 ABMON_1 |
80 | ABMON_2, |
81 | #define ABMON_2 ABMON_2 |
82 | ABMON_3, |
83 | #define ABMON_3 ABMON_3 |
84 | ABMON_4, |
85 | #define ABMON_4 ABMON_4 |
86 | ABMON_5, |
87 | #define ABMON_5 ABMON_5 |
88 | ABMON_6, |
89 | #define ABMON_6 ABMON_6 |
90 | ABMON_7, |
91 | #define ABMON_7 ABMON_7 |
92 | ABMON_8, |
93 | #define ABMON_8 ABMON_8 |
94 | ABMON_9, |
95 | #define ABMON_9 ABMON_9 |
96 | ABMON_10, |
97 | #define ABMON_10 ABMON_10 |
98 | ABMON_11, |
99 | #define ABMON_11 ABMON_11 |
100 | ABMON_12, |
101 | #define ABMON_12 ABMON_12 |
102 | |
103 | /* Long month names. */ |
104 | MON_1, /* January */ |
105 | #define MON_1 MON_1 |
106 | MON_2, |
107 | #define MON_2 MON_2 |
108 | MON_3, |
109 | #define MON_3 MON_3 |
110 | MON_4, |
111 | #define MON_4 MON_4 |
112 | MON_5, |
113 | #define MON_5 MON_5 |
114 | MON_6, |
115 | #define MON_6 MON_6 |
116 | MON_7, |
117 | #define MON_7 MON_7 |
118 | MON_8, |
119 | #define MON_8 MON_8 |
120 | MON_9, |
121 | #define MON_9 MON_9 |
122 | MON_10, |
123 | #define MON_10 MON_10 |
124 | MON_11, |
125 | #define MON_11 MON_11 |
126 | MON_12, |
127 | #define MON_12 MON_12 |
128 | |
129 | AM_STR, /* Ante meridiem string. */ |
130 | #define AM_STR AM_STR |
131 | PM_STR, /* Post meridiem string. */ |
132 | #define PM_STR PM_STR |
133 | |
134 | D_T_FMT, /* Date and time format for strftime. */ |
135 | #define D_T_FMT D_T_FMT |
136 | D_FMT, /* Date format for strftime. */ |
137 | #define D_FMT D_FMT |
138 | T_FMT, /* Time format for strftime. */ |
139 | #define T_FMT T_FMT |
140 | T_FMT_AMPM, /* 12-hour time format for strftime. */ |
141 | #define T_FMT_AMPM T_FMT_AMPM |
142 | |
143 | ERA, /* Alternate era. */ |
144 | #define ERA ERA |
145 | __ERA_YEAR, /* Year in alternate era format. */ |
146 | #ifdef __USE_GNU |
147 | # define ERA_YEAR __ERA_YEAR |
148 | #endif |
149 | ERA_D_FMT, /* Date in alternate era format. */ |
150 | #define ERA_D_FMT ERA_D_FMT |
151 | ALT_DIGITS, /* Alternate symbols for digits. */ |
152 | #define ALT_DIGITS ALT_DIGITS |
153 | ERA_D_T_FMT, /* Date and time in alternate era format. */ |
154 | #define ERA_D_T_FMT ERA_D_T_FMT |
155 | ERA_T_FMT, /* Time in alternate era format. */ |
156 | #define ERA_T_FMT ERA_T_FMT |
157 | |
158 | _NL_TIME_ERA_NUM_ENTRIES, /* Number entries in the era arrays. */ |
159 | _NL_TIME_ERA_ENTRIES, /* Structure with era entries in usable form.*/ |
160 | |
161 | _NL_WABDAY_1, /* Sun */ |
162 | _NL_WABDAY_2, |
163 | _NL_WABDAY_3, |
164 | _NL_WABDAY_4, |
165 | _NL_WABDAY_5, |
166 | _NL_WABDAY_6, |
167 | _NL_WABDAY_7, |
168 | |
169 | /* Long-named days of the week. */ |
170 | _NL_WDAY_1, /* Sunday */ |
171 | _NL_WDAY_2, /* Monday */ |
172 | _NL_WDAY_3, /* Tuesday */ |
173 | _NL_WDAY_4, /* Wednesday */ |
174 | _NL_WDAY_5, /* Thursday */ |
175 | _NL_WDAY_6, /* Friday */ |
176 | _NL_WDAY_7, /* Saturday */ |
177 | |
178 | /* Abbreviated month names. */ |
179 | _NL_WABMON_1, /* Jan */ |
180 | _NL_WABMON_2, |
181 | _NL_WABMON_3, |
182 | _NL_WABMON_4, |
183 | _NL_WABMON_5, |
184 | _NL_WABMON_6, |
185 | _NL_WABMON_7, |
186 | _NL_WABMON_8, |
187 | _NL_WABMON_9, |
188 | _NL_WABMON_10, |
189 | _NL_WABMON_11, |
190 | _NL_WABMON_12, |
191 | |
192 | /* Long month names. */ |
193 | _NL_WMON_1, /* January */ |
194 | _NL_WMON_2, |
195 | _NL_WMON_3, |
196 | _NL_WMON_4, |
197 | _NL_WMON_5, |
198 | _NL_WMON_6, |
199 | _NL_WMON_7, |
200 | _NL_WMON_8, |
201 | _NL_WMON_9, |
202 | _NL_WMON_10, |
203 | _NL_WMON_11, |
204 | _NL_WMON_12, |
205 | |
206 | _NL_WAM_STR, /* Ante meridiem string. */ |
207 | _NL_WPM_STR, /* Post meridiem string. */ |
208 | |
209 | _NL_WD_T_FMT, /* Date and time format for strftime. */ |
210 | _NL_WD_FMT, /* Date format for strftime. */ |
211 | _NL_WT_FMT, /* Time format for strftime. */ |
212 | _NL_WT_FMT_AMPM, /* 12-hour time format for strftime. */ |
213 | |
214 | _NL_WERA_YEAR, /* Year in alternate era format. */ |
215 | _NL_WERA_D_FMT, /* Date in alternate era format. */ |
216 | _NL_WALT_DIGITS, /* Alternate symbols for digits. */ |
217 | _NL_WERA_D_T_FMT, /* Date and time in alternate era format. */ |
218 | _NL_WERA_T_FMT, /* Time in alternate era format. */ |
219 | |
220 | _NL_TIME_WEEK_NDAYS, |
221 | _NL_TIME_WEEK_1STDAY, |
222 | _NL_TIME_WEEK_1STWEEK, |
223 | _NL_TIME_FIRST_WEEKDAY, |
224 | _NL_TIME_FIRST_WORKDAY, |
225 | _NL_TIME_CAL_DIRECTION, |
226 | _NL_TIME_TIMEZONE, |
227 | |
228 | _DATE_FMT, /* strftime format for date. */ |
229 | #define _DATE_FMT _DATE_FMT |
230 | _NL_W_DATE_FMT, |
231 | |
232 | _NL_TIME_CODESET, |
233 | |
234 | _NL_NUM_LC_TIME, /* Number of indices in LC_TIME category. */ |
235 | |
236 | /* LC_COLLATE category: text sorting. |
237 | This information is accessed by the strcoll and strxfrm functions. |
238 | These `nl_langinfo' names are used only internally. */ |
239 | _NL_COLLATE_NRULES = _NL_ITEM (__LC_COLLATE, 0), |
240 | _NL_COLLATE_RULESETS, |
241 | _NL_COLLATE_TABLEMB, |
242 | _NL_COLLATE_WEIGHTMB, |
243 | , |
244 | _NL_COLLATE_INDIRECTMB, |
245 | _NL_COLLATE_GAP1, |
246 | _NL_COLLATE_GAP2, |
247 | _NL_COLLATE_GAP3, |
248 | _NL_COLLATE_TABLEWC, |
249 | _NL_COLLATE_WEIGHTWC, |
250 | , |
251 | _NL_COLLATE_INDIRECTWC, |
252 | _NL_COLLATE_SYMB_HASH_SIZEMB, |
253 | _NL_COLLATE_SYMB_TABLEMB, |
254 | , |
255 | _NL_COLLATE_COLLSEQMB, |
256 | _NL_COLLATE_COLLSEQWC, |
257 | _NL_COLLATE_CODESET, |
258 | _NL_NUM_LC_COLLATE, |
259 | |
260 | /* LC_CTYPE category: character classification. |
261 | This information is accessed by the functions in <ctype.h>. |
262 | These `nl_langinfo' names are used only internally. */ |
263 | _NL_CTYPE_CLASS = _NL_ITEM (__LC_CTYPE, 0), |
264 | _NL_CTYPE_TOUPPER, |
265 | _NL_CTYPE_GAP1, |
266 | _NL_CTYPE_TOLOWER, |
267 | _NL_CTYPE_GAP2, |
268 | _NL_CTYPE_CLASS32, |
269 | _NL_CTYPE_GAP3, |
270 | _NL_CTYPE_GAP4, |
271 | _NL_CTYPE_GAP5, |
272 | _NL_CTYPE_GAP6, |
273 | _NL_CTYPE_CLASS_NAMES, |
274 | _NL_CTYPE_MAP_NAMES, |
275 | _NL_CTYPE_WIDTH, |
276 | _NL_CTYPE_MB_CUR_MAX, |
277 | _NL_CTYPE_CODESET_NAME, |
278 | CODESET = _NL_CTYPE_CODESET_NAME, |
279 | #define CODESET CODESET |
280 | _NL_CTYPE_TOUPPER32, |
281 | _NL_CTYPE_TOLOWER32, |
282 | _NL_CTYPE_CLASS_OFFSET, |
283 | _NL_CTYPE_MAP_OFFSET, |
284 | _NL_CTYPE_INDIGITS_MB_LEN, |
285 | _NL_CTYPE_INDIGITS0_MB, |
286 | _NL_CTYPE_INDIGITS1_MB, |
287 | _NL_CTYPE_INDIGITS2_MB, |
288 | _NL_CTYPE_INDIGITS3_MB, |
289 | _NL_CTYPE_INDIGITS4_MB, |
290 | _NL_CTYPE_INDIGITS5_MB, |
291 | _NL_CTYPE_INDIGITS6_MB, |
292 | _NL_CTYPE_INDIGITS7_MB, |
293 | _NL_CTYPE_INDIGITS8_MB, |
294 | _NL_CTYPE_INDIGITS9_MB, |
295 | _NL_CTYPE_INDIGITS_WC_LEN, |
296 | _NL_CTYPE_INDIGITS0_WC, |
297 | _NL_CTYPE_INDIGITS1_WC, |
298 | _NL_CTYPE_INDIGITS2_WC, |
299 | _NL_CTYPE_INDIGITS3_WC, |
300 | _NL_CTYPE_INDIGITS4_WC, |
301 | _NL_CTYPE_INDIGITS5_WC, |
302 | _NL_CTYPE_INDIGITS6_WC, |
303 | _NL_CTYPE_INDIGITS7_WC, |
304 | _NL_CTYPE_INDIGITS8_WC, |
305 | _NL_CTYPE_INDIGITS9_WC, |
306 | _NL_CTYPE_OUTDIGIT0_MB, |
307 | _NL_CTYPE_OUTDIGIT1_MB, |
308 | _NL_CTYPE_OUTDIGIT2_MB, |
309 | _NL_CTYPE_OUTDIGIT3_MB, |
310 | _NL_CTYPE_OUTDIGIT4_MB, |
311 | _NL_CTYPE_OUTDIGIT5_MB, |
312 | _NL_CTYPE_OUTDIGIT6_MB, |
313 | _NL_CTYPE_OUTDIGIT7_MB, |
314 | _NL_CTYPE_OUTDIGIT8_MB, |
315 | _NL_CTYPE_OUTDIGIT9_MB, |
316 | _NL_CTYPE_OUTDIGIT0_WC, |
317 | _NL_CTYPE_OUTDIGIT1_WC, |
318 | _NL_CTYPE_OUTDIGIT2_WC, |
319 | _NL_CTYPE_OUTDIGIT3_WC, |
320 | _NL_CTYPE_OUTDIGIT4_WC, |
321 | _NL_CTYPE_OUTDIGIT5_WC, |
322 | _NL_CTYPE_OUTDIGIT6_WC, |
323 | _NL_CTYPE_OUTDIGIT7_WC, |
324 | _NL_CTYPE_OUTDIGIT8_WC, |
325 | _NL_CTYPE_OUTDIGIT9_WC, |
326 | _NL_CTYPE_TRANSLIT_TAB_SIZE, |
327 | _NL_CTYPE_TRANSLIT_FROM_IDX, |
328 | _NL_CTYPE_TRANSLIT_FROM_TBL, |
329 | _NL_CTYPE_TRANSLIT_TO_IDX, |
330 | _NL_CTYPE_TRANSLIT_TO_TBL, |
331 | _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN, |
332 | _NL_CTYPE_TRANSLIT_DEFAULT_MISSING, |
333 | _NL_CTYPE_TRANSLIT_IGNORE_LEN, |
334 | _NL_CTYPE_TRANSLIT_IGNORE, |
335 | _NL_CTYPE_MAP_TO_NONASCII, |
336 | _NL_CTYPE_NONASCII_CASE, |
337 | , |
338 | , |
339 | , |
340 | , |
341 | , |
342 | , |
343 | , |
344 | , |
345 | , |
346 | , |
347 | , |
348 | , |
349 | , |
350 | , |
351 | _NL_NUM_LC_CTYPE, |
352 | |
353 | /* LC_MONETARY category: formatting of monetary quantities. |
354 | These items each correspond to a member of `struct lconv', |
355 | defined in <locale.h>. */ |
356 | __INT_CURR_SYMBOL = _NL_ITEM (__LC_MONETARY, 0), |
357 | #ifdef __USE_GNU |
358 | # define INT_CURR_SYMBOL __INT_CURR_SYMBOL |
359 | #endif |
360 | __CURRENCY_SYMBOL, |
361 | #ifdef __USE_GNU |
362 | # define CURRENCY_SYMBOL __CURRENCY_SYMBOL |
363 | #endif |
364 | __MON_DECIMAL_POINT, |
365 | #ifdef __USE_GNU |
366 | # define MON_DECIMAL_POINT __MON_DECIMAL_POINT |
367 | #endif |
368 | __MON_THOUSANDS_SEP, |
369 | #ifdef __USE_GNU |
370 | # define MON_THOUSANDS_SEP __MON_THOUSANDS_SEP |
371 | #endif |
372 | __MON_GROUPING, |
373 | #ifdef __USE_GNU |
374 | # define MON_GROUPING __MON_GROUPING |
375 | #endif |
376 | __POSITIVE_SIGN, |
377 | #ifdef __USE_GNU |
378 | # define POSITIVE_SIGN __POSITIVE_SIGN |
379 | #endif |
380 | __NEGATIVE_SIGN, |
381 | #ifdef __USE_GNU |
382 | # define NEGATIVE_SIGN __NEGATIVE_SIGN |
383 | #endif |
384 | __INT_FRAC_DIGITS, |
385 | #ifdef __USE_GNU |
386 | # define INT_FRAC_DIGITS __INT_FRAC_DIGITS |
387 | #endif |
388 | __FRAC_DIGITS, |
389 | #ifdef __USE_GNU |
390 | # define FRAC_DIGITS __FRAC_DIGITS |
391 | #endif |
392 | __P_CS_PRECEDES, |
393 | #ifdef __USE_GNU |
394 | # define P_CS_PRECEDES __P_CS_PRECEDES |
395 | #endif |
396 | __P_SEP_BY_SPACE, |
397 | #ifdef __USE_GNU |
398 | # define P_SEP_BY_SPACE __P_SEP_BY_SPACE |
399 | #endif |
400 | __N_CS_PRECEDES, |
401 | #ifdef __USE_GNU |
402 | # define N_CS_PRECEDES __N_CS_PRECEDES |
403 | #endif |
404 | __N_SEP_BY_SPACE, |
405 | #ifdef __USE_GNU |
406 | # define N_SEP_BY_SPACE __N_SEP_BY_SPACE |
407 | #endif |
408 | __P_SIGN_POSN, |
409 | #ifdef __USE_GNU |
410 | # define P_SIGN_POSN __P_SIGN_POSN |
411 | #endif |
412 | __N_SIGN_POSN, |
413 | #ifdef __USE_GNU |
414 | # define N_SIGN_POSN __N_SIGN_POSN |
415 | #endif |
416 | _NL_MONETARY_CRNCYSTR, |
417 | #define CRNCYSTR _NL_MONETARY_CRNCYSTR |
418 | __INT_P_CS_PRECEDES, |
419 | #ifdef __USE_GNU |
420 | # define INT_P_CS_PRECEDES __INT_P_CS_PRECEDES |
421 | #endif |
422 | __INT_P_SEP_BY_SPACE, |
423 | #ifdef __USE_GNU |
424 | # define INT_P_SEP_BY_SPACE __INT_P_SEP_BY_SPACE |
425 | #endif |
426 | __INT_N_CS_PRECEDES, |
427 | #ifdef __USE_GNU |
428 | # define INT_N_CS_PRECEDES __INT_N_CS_PRECEDES |
429 | #endif |
430 | __INT_N_SEP_BY_SPACE, |
431 | #ifdef __USE_GNU |
432 | # define INT_N_SEP_BY_SPACE __INT_N_SEP_BY_SPACE |
433 | #endif |
434 | __INT_P_SIGN_POSN, |
435 | #ifdef __USE_GNU |
436 | # define INT_P_SIGN_POSN __INT_P_SIGN_POSN |
437 | #endif |
438 | __INT_N_SIGN_POSN, |
439 | #ifdef __USE_GNU |
440 | # define INT_N_SIGN_POSN __INT_N_SIGN_POSN |
441 | #endif |
442 | _NL_MONETARY_DUO_INT_CURR_SYMBOL, |
443 | _NL_MONETARY_DUO_CURRENCY_SYMBOL, |
444 | _NL_MONETARY_DUO_INT_FRAC_DIGITS, |
445 | _NL_MONETARY_DUO_FRAC_DIGITS, |
446 | _NL_MONETARY_DUO_P_CS_PRECEDES, |
447 | _NL_MONETARY_DUO_P_SEP_BY_SPACE, |
448 | _NL_MONETARY_DUO_N_CS_PRECEDES, |
449 | _NL_MONETARY_DUO_N_SEP_BY_SPACE, |
450 | _NL_MONETARY_DUO_INT_P_CS_PRECEDES, |
451 | _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE, |
452 | _NL_MONETARY_DUO_INT_N_CS_PRECEDES, |
453 | _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE, |
454 | _NL_MONETARY_DUO_P_SIGN_POSN, |
455 | _NL_MONETARY_DUO_N_SIGN_POSN, |
456 | _NL_MONETARY_DUO_INT_P_SIGN_POSN, |
457 | _NL_MONETARY_DUO_INT_N_SIGN_POSN, |
458 | _NL_MONETARY_UNO_VALID_FROM, |
459 | _NL_MONETARY_UNO_VALID_TO, |
460 | _NL_MONETARY_DUO_VALID_FROM, |
461 | _NL_MONETARY_DUO_VALID_TO, |
462 | _NL_MONETARY_CONVERSION_RATE, |
463 | _NL_MONETARY_DECIMAL_POINT_WC, |
464 | _NL_MONETARY_THOUSANDS_SEP_WC, |
465 | _NL_MONETARY_CODESET, |
466 | _NL_NUM_LC_MONETARY, |
467 | |
468 | /* LC_NUMERIC category: formatting of numbers. |
469 | These also correspond to members of `struct lconv'; see <locale.h>. */ |
470 | __DECIMAL_POINT = _NL_ITEM (__LC_NUMERIC, 0), |
471 | #ifdef __USE_GNU |
472 | # define DECIMAL_POINT __DECIMAL_POINT |
473 | #endif |
474 | RADIXCHAR = __DECIMAL_POINT, |
475 | #define RADIXCHAR RADIXCHAR |
476 | __THOUSANDS_SEP, |
477 | #ifdef __USE_GNU |
478 | # define THOUSANDS_SEP __THOUSANDS_SEP |
479 | #endif |
480 | THOUSEP = __THOUSANDS_SEP, |
481 | #define THOUSEP THOUSEP |
482 | __GROUPING, |
483 | #ifdef __USE_GNU |
484 | # define GROUPING __GROUPING |
485 | #endif |
486 | _NL_NUMERIC_DECIMAL_POINT_WC, |
487 | _NL_NUMERIC_THOUSANDS_SEP_WC, |
488 | _NL_NUMERIC_CODESET, |
489 | _NL_NUM_LC_NUMERIC, |
490 | |
491 | __YESEXPR = _NL_ITEM (__LC_MESSAGES, 0), /* Regex matching ``yes'' input. */ |
492 | #define YESEXPR __YESEXPR |
493 | __NOEXPR, /* Regex matching ``no'' input. */ |
494 | #define NOEXPR __NOEXPR |
495 | __YESSTR, /* Output string for ``yes''. */ |
496 | #if defined __USE_GNU || (defined __USE_XOPEN && !defined __USE_XOPEN2K) |
497 | # define YESSTR __YESSTR |
498 | #endif |
499 | __NOSTR, /* Output string for ``no''. */ |
500 | #if defined __USE_GNU || (defined __USE_XOPEN && !defined __USE_XOPEN2K) |
501 | # define NOSTR __NOSTR |
502 | #endif |
503 | _NL_MESSAGES_CODESET, |
504 | _NL_NUM_LC_MESSAGES, |
505 | |
506 | _NL_PAPER_HEIGHT = _NL_ITEM (__LC_PAPER, 0), |
507 | _NL_PAPER_WIDTH, |
508 | _NL_PAPER_CODESET, |
509 | _NL_NUM_LC_PAPER, |
510 | |
511 | _NL_NAME_NAME_FMT = _NL_ITEM (__LC_NAME, 0), |
512 | _NL_NAME_NAME_GEN, |
513 | _NL_NAME_NAME_MR, |
514 | _NL_NAME_NAME_MRS, |
515 | _NL_NAME_NAME_MISS, |
516 | _NL_NAME_NAME_MS, |
517 | _NL_NAME_CODESET, |
518 | _NL_NUM_LC_NAME, |
519 | |
520 | _NL_ADDRESS_POSTAL_FMT = _NL_ITEM (__LC_ADDRESS, 0), |
521 | _NL_ADDRESS_COUNTRY_NAME, |
522 | _NL_ADDRESS_COUNTRY_POST, |
523 | _NL_ADDRESS_COUNTRY_AB2, |
524 | _NL_ADDRESS_COUNTRY_AB3, |
525 | _NL_ADDRESS_COUNTRY_CAR, |
526 | _NL_ADDRESS_COUNTRY_NUM, |
527 | _NL_ADDRESS_COUNTRY_ISBN, |
528 | _NL_ADDRESS_LANG_NAME, |
529 | _NL_ADDRESS_LANG_AB, |
530 | _NL_ADDRESS_LANG_TERM, |
531 | _NL_ADDRESS_LANG_LIB, |
532 | _NL_ADDRESS_CODESET, |
533 | _NL_NUM_LC_ADDRESS, |
534 | |
535 | _NL_TELEPHONE_TEL_INT_FMT = _NL_ITEM (__LC_TELEPHONE, 0), |
536 | _NL_TELEPHONE_TEL_DOM_FMT, |
537 | _NL_TELEPHONE_INT_SELECT, |
538 | _NL_TELEPHONE_INT_PREFIX, |
539 | _NL_TELEPHONE_CODESET, |
540 | _NL_NUM_LC_TELEPHONE, |
541 | |
542 | _NL_MEASUREMENT_MEASUREMENT = _NL_ITEM (__LC_MEASUREMENT, 0), |
543 | _NL_MEASUREMENT_CODESET, |
544 | _NL_NUM_LC_MEASUREMENT, |
545 | |
546 | _NL_IDENTIFICATION_TITLE = _NL_ITEM (__LC_IDENTIFICATION, 0), |
547 | _NL_IDENTIFICATION_SOURCE, |
548 | _NL_IDENTIFICATION_ADDRESS, |
549 | _NL_IDENTIFICATION_CONTACT, |
550 | _NL_IDENTIFICATION_EMAIL, |
551 | _NL_IDENTIFICATION_TEL, |
552 | _NL_IDENTIFICATION_FAX, |
553 | _NL_IDENTIFICATION_LANGUAGE, |
554 | _NL_IDENTIFICATION_TERRITORY, |
555 | _NL_IDENTIFICATION_AUDIENCE, |
556 | _NL_IDENTIFICATION_APPLICATION, |
557 | _NL_IDENTIFICATION_ABBREVIATION, |
558 | _NL_IDENTIFICATION_REVISION, |
559 | _NL_IDENTIFICATION_DATE, |
560 | _NL_IDENTIFICATION_CATEGORY, |
561 | _NL_IDENTIFICATION_CODESET, |
562 | _NL_NUM_LC_IDENTIFICATION, |
563 | |
564 | /* This marks the highest value used. */ |
565 | _NL_NUM |
566 | }; |
567 | |
568 | /* This macro produces an item you can pass to `nl_langinfo' or |
569 | `nl_langinfo_l' to get the name of the locale in use for CATEGORY. */ |
570 | #define _NL_LOCALE_NAME(category) _NL_ITEM ((category), \ |
571 | _NL_ITEM_INDEX (-1)) |
572 | #ifdef __USE_GNU |
573 | # define NL_LOCALE_NAME(category) _NL_LOCALE_NAME (category) |
574 | #endif |
575 | |
576 | |
577 | /* Return the current locale's value for ITEM. |
578 | If ITEM is invalid, an empty string is returned. |
579 | |
580 | The string returned will not change until `setlocale' is called; |
581 | it is usually in read-only memory and cannot be modified. */ |
582 | |
583 | extern char *nl_langinfo (nl_item __item) __THROW; |
584 | |
585 | |
586 | #ifdef __USE_XOPEN2K |
587 | /* This interface is for the extended locale model. See <locale.h> for |
588 | more information. */ |
589 | |
590 | /* Get locale datatype definition. */ |
591 | # include <xlocale.h> |
592 | |
593 | /* Just like nl_langinfo but get the information from the locale object L. */ |
594 | extern char *nl_langinfo_l (nl_item __item, __locale_t __l); |
595 | #endif |
596 | |
597 | __END_DECLS |
598 | |
599 | #endif /* langinfo.h */ |
600 | |