Back to index

glibc  2.9
langinfo.h
Go to the documentation of this file.
00001 /* Access to locale-dependent parameters.
00002    Copyright (C) 1995-2002,2003,2004,2005 Free Software Foundation, Inc.
00003    This file is part of the GNU C Library.
00004 
00005    The GNU C Library is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Lesser General Public
00007    License as published by the Free Software Foundation; either
00008    version 2.1 of the License, or (at your option) any later version.
00009 
00010    The GNU C Library is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Lesser General Public License for more details.
00014 
00015    You should have received a copy of the GNU Lesser General Public
00016    License along with the GNU C Library; if not, write to the Free
00017    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00018    02111-1307 USA.  */
00019 
00020 #ifndef _LANGINFO_H
00021 #define       _LANGINFO_H 1
00022 
00023 /* Get the type definition.  */
00024 #include <nl_types.h>
00025 
00026 #include <bits/locale.h>    /* Define the __LC_* category names.  */
00027 
00028 
00029 __BEGIN_DECLS
00030 
00031 /* Construct an `nl_item' value for `nl_langinfo' from a locale category
00032    (LC_*) and an item index within the category.  Some code may depend on
00033    the item values within a category increasing monotonically with the
00034    indices.  */
00035 #define _NL_ITEM(category, index)  (((category) << 16) | (index))
00036 
00037 /* Extract the category and item index from a constructed `nl_item' value.  */
00038 #define _NL_ITEM_CATEGORY(item)           ((int) (item) >> 16)
00039 #define _NL_ITEM_INDEX(item)              ((int) (item) & 0xffff)
00040 
00041 /* Enumeration of locale items that can be queried with `nl_langinfo'.  */
00042 enum
00043 {
00044   /* LC_TIME category: date and time formatting.  */
00045 
00046   /* Abbreviated days of the week. */
00047   ABDAY_1 = _NL_ITEM (__LC_TIME, 0), /* Sun */
00048 #define ABDAY_1                    ABDAY_1
00049   ABDAY_2,
00050 #define ABDAY_2                    ABDAY_2
00051   ABDAY_3,
00052 #define ABDAY_3                    ABDAY_3
00053   ABDAY_4,
00054 #define ABDAY_4                    ABDAY_4
00055   ABDAY_5,
00056 #define ABDAY_5                    ABDAY_5
00057   ABDAY_6,
00058 #define ABDAY_6                    ABDAY_6
00059   ABDAY_7,
00060 #define ABDAY_7                    ABDAY_7
00061 
00062   /* Long-named days of the week. */
00063   DAY_1,                    /* Sunday */
00064 #define DAY_1               DAY_1
00065   DAY_2,                    /* Monday */
00066 #define DAY_2               DAY_2
00067   DAY_3,                    /* Tuesday */
00068 #define DAY_3               DAY_3
00069   DAY_4,                    /* Wednesday */
00070 #define DAY_4               DAY_4
00071   DAY_5,                    /* Thursday */
00072 #define DAY_5               DAY_5
00073   DAY_6,                    /* Friday */
00074 #define DAY_6               DAY_6
00075   DAY_7,                    /* Saturday */
00076 #define DAY_7               DAY_7
00077 
00078   /* Abbreviated month names.  */
00079   ABMON_1,                  /* Jan */
00080 #define ABMON_1                    ABMON_1
00081   ABMON_2,
00082 #define ABMON_2                    ABMON_2
00083   ABMON_3,
00084 #define ABMON_3                    ABMON_3
00085   ABMON_4,
00086 #define ABMON_4                    ABMON_4
00087   ABMON_5,
00088 #define ABMON_5                    ABMON_5
00089   ABMON_6,
00090 #define ABMON_6                    ABMON_6
00091   ABMON_7,
00092 #define ABMON_7                    ABMON_7
00093   ABMON_8,
00094 #define ABMON_8                    ABMON_8
00095   ABMON_9,
00096 #define ABMON_9                    ABMON_9
00097   ABMON_10,
00098 #define ABMON_10            ABMON_10
00099   ABMON_11,
00100 #define ABMON_11            ABMON_11
00101   ABMON_12,
00102 #define ABMON_12            ABMON_12
00103 
00104   /* Long month names.  */
00105   MON_1,                    /* January */
00106 #define MON_1               MON_1
00107   MON_2,
00108 #define MON_2               MON_2
00109   MON_3,
00110 #define MON_3               MON_3
00111   MON_4,
00112 #define MON_4               MON_4
00113   MON_5,
00114 #define MON_5               MON_5
00115   MON_6,
00116 #define MON_6               MON_6
00117   MON_7,
00118 #define MON_7               MON_7
00119   MON_8,
00120 #define MON_8               MON_8
00121   MON_9,
00122 #define MON_9               MON_9
00123   MON_10,
00124 #define MON_10                     MON_10
00125   MON_11,
00126 #define MON_11                     MON_11
00127   MON_12,
00128 #define MON_12                     MON_12
00129 
00130   AM_STR,                   /* Ante meridiem string.  */
00131 #define AM_STR                     AM_STR
00132   PM_STR,                   /* Post meridiem string.  */
00133 #define PM_STR                     PM_STR
00134 
00135   D_T_FMT,                  /* Date and time format for strftime.  */
00136 #define D_T_FMT                    D_T_FMT
00137   D_FMT,                    /* Date format for strftime.  */
00138 #define D_FMT               D_FMT
00139   T_FMT,                    /* Time format for strftime.  */
00140 #define T_FMT               T_FMT
00141   T_FMT_AMPM,               /* 12-hour time format for strftime.  */
00142 #define T_FMT_AMPM          T_FMT_AMPM
00143 
00144   ERA,                      /* Alternate era.  */
00145 #define ERA                 ERA
00146   __ERA_YEAR,               /* Year in alternate era format.  */
00147 #ifdef __USE_GNU
00148 # define ERA_YEAR           __ERA_YEAR
00149 #endif
00150   ERA_D_FMT,                /* Date in alternate era format.  */
00151 #define ERA_D_FMT           ERA_D_FMT
00152   ALT_DIGITS,               /* Alternate symbols for digits.  */
00153 #define ALT_DIGITS          ALT_DIGITS
00154   ERA_D_T_FMT,                     /* Date and time in alternate era format.  */
00155 #define ERA_D_T_FMT         ERA_D_T_FMT
00156   ERA_T_FMT,                /* Time in alternate era format.  */
00157 #define ERA_T_FMT           ERA_T_FMT
00158 
00159   _NL_TIME_ERA_NUM_ENTRIES, /* Number entries in the era arrays.  */
00160   _NL_TIME_ERA_ENTRIES,            /* Structure with era entries in usable form.*/
00161 
00162   _NL_WABDAY_1,             /* Sun */
00163   _NL_WABDAY_2,
00164   _NL_WABDAY_3,
00165   _NL_WABDAY_4,
00166   _NL_WABDAY_5,
00167   _NL_WABDAY_6,
00168   _NL_WABDAY_7,
00169 
00170   /* Long-named days of the week. */
00171   _NL_WDAY_1,        /* Sunday */
00172   _NL_WDAY_2,        /* Monday */
00173   _NL_WDAY_3,        /* Tuesday */
00174   _NL_WDAY_4,        /* Wednesday */
00175   _NL_WDAY_5,        /* Thursday */
00176   _NL_WDAY_6,        /* Friday */
00177   _NL_WDAY_7,        /* Saturday */
00178 
00179   /* Abbreviated month names.  */
00180   _NL_WABMON_1,             /* Jan */
00181   _NL_WABMON_2,
00182   _NL_WABMON_3,
00183   _NL_WABMON_4,
00184   _NL_WABMON_5,
00185   _NL_WABMON_6,
00186   _NL_WABMON_7,
00187   _NL_WABMON_8,
00188   _NL_WABMON_9,
00189   _NL_WABMON_10,
00190   _NL_WABMON_11,
00191   _NL_WABMON_12,
00192 
00193   /* Long month names.  */
00194   _NL_WMON_1,        /* January */
00195   _NL_WMON_2,
00196   _NL_WMON_3,
00197   _NL_WMON_4,
00198   _NL_WMON_5,
00199   _NL_WMON_6,
00200   _NL_WMON_7,
00201   _NL_WMON_8,
00202   _NL_WMON_9,
00203   _NL_WMON_10,
00204   _NL_WMON_11,
00205   _NL_WMON_12,
00206 
00207   _NL_WAM_STR,              /* Ante meridiem string.  */
00208   _NL_WPM_STR,              /* Post meridiem string.  */
00209 
00210   _NL_WD_T_FMT,             /* Date and time format for strftime.  */
00211   _NL_WD_FMT,        /* Date format for strftime.  */
00212   _NL_WT_FMT,        /* Time format for strftime.  */
00213   _NL_WT_FMT_AMPM,   /* 12-hour time format for strftime.  */
00214 
00215   _NL_WERA_YEAR,     /* Year in alternate era format.  */
00216   _NL_WERA_D_FMT,    /* Date in alternate era format.  */
00217   _NL_WALT_DIGITS,   /* Alternate symbols for digits.  */
00218   _NL_WERA_D_T_FMT,  /* Date and time in alternate era format.  */
00219   _NL_WERA_T_FMT,    /* Time in alternate era format.  */
00220 
00221   _NL_TIME_WEEK_NDAYS,
00222   _NL_TIME_WEEK_1STDAY,
00223   _NL_TIME_WEEK_1STWEEK,
00224   _NL_TIME_FIRST_WEEKDAY,
00225   _NL_TIME_FIRST_WORKDAY,
00226   _NL_TIME_CAL_DIRECTION,
00227   _NL_TIME_TIMEZONE,
00228 
00229   _DATE_FMT,         /* strftime format for date.  */
00230 #define _DATE_FMT    _DATE_FMT
00231   _NL_W_DATE_FMT,
00232 
00233   _NL_TIME_CODESET,
00234 
00235   _NL_NUM_LC_TIME,   /* Number of indices in LC_TIME category.  */
00236 
00237   /* LC_COLLATE category: text sorting.
00238      This information is accessed by the strcoll and strxfrm functions.
00239      These `nl_langinfo' names are used only internally.  */
00240   _NL_COLLATE_NRULES = _NL_ITEM (__LC_COLLATE, 0),
00241   _NL_COLLATE_RULESETS,
00242   _NL_COLLATE_TABLEMB,
00243   _NL_COLLATE_WEIGHTMB,
00244   _NL_COLLATE_EXTRAMB,
00245   _NL_COLLATE_INDIRECTMB,
00246   _NL_COLLATE_GAP1,
00247   _NL_COLLATE_GAP2,
00248   _NL_COLLATE_GAP3,
00249   _NL_COLLATE_TABLEWC,
00250   _NL_COLLATE_WEIGHTWC,
00251   _NL_COLLATE_EXTRAWC,
00252   _NL_COLLATE_INDIRECTWC,
00253   _NL_COLLATE_SYMB_HASH_SIZEMB,
00254   _NL_COLLATE_SYMB_TABLEMB,
00255   _NL_COLLATE_SYMB_EXTRAMB,
00256   _NL_COLLATE_COLLSEQMB,
00257   _NL_COLLATE_COLLSEQWC,
00258   _NL_COLLATE_CODESET,
00259   _NL_NUM_LC_COLLATE,
00260 
00261   /* LC_CTYPE category: character classification.
00262      This information is accessed by the functions in <ctype.h>.
00263      These `nl_langinfo' names are used only internally.  */
00264   _NL_CTYPE_CLASS = _NL_ITEM (__LC_CTYPE, 0),
00265   _NL_CTYPE_TOUPPER,
00266   _NL_CTYPE_GAP1,
00267   _NL_CTYPE_TOLOWER,
00268   _NL_CTYPE_GAP2,
00269   _NL_CTYPE_CLASS32,
00270   _NL_CTYPE_GAP3,
00271   _NL_CTYPE_GAP4,
00272   _NL_CTYPE_GAP5,
00273   _NL_CTYPE_GAP6,
00274   _NL_CTYPE_CLASS_NAMES,
00275   _NL_CTYPE_MAP_NAMES,
00276   _NL_CTYPE_WIDTH,
00277   _NL_CTYPE_MB_CUR_MAX,
00278   _NL_CTYPE_CODESET_NAME,
00279   CODESET = _NL_CTYPE_CODESET_NAME,
00280 #define CODESET                    CODESET
00281   _NL_CTYPE_TOUPPER32,
00282   _NL_CTYPE_TOLOWER32,
00283   _NL_CTYPE_CLASS_OFFSET,
00284   _NL_CTYPE_MAP_OFFSET,
00285   _NL_CTYPE_INDIGITS_MB_LEN,
00286   _NL_CTYPE_INDIGITS0_MB,
00287   _NL_CTYPE_INDIGITS1_MB,
00288   _NL_CTYPE_INDIGITS2_MB,
00289   _NL_CTYPE_INDIGITS3_MB,
00290   _NL_CTYPE_INDIGITS4_MB,
00291   _NL_CTYPE_INDIGITS5_MB,
00292   _NL_CTYPE_INDIGITS6_MB,
00293   _NL_CTYPE_INDIGITS7_MB,
00294   _NL_CTYPE_INDIGITS8_MB,
00295   _NL_CTYPE_INDIGITS9_MB,
00296   _NL_CTYPE_INDIGITS_WC_LEN,
00297   _NL_CTYPE_INDIGITS0_WC,
00298   _NL_CTYPE_INDIGITS1_WC,
00299   _NL_CTYPE_INDIGITS2_WC,
00300   _NL_CTYPE_INDIGITS3_WC,
00301   _NL_CTYPE_INDIGITS4_WC,
00302   _NL_CTYPE_INDIGITS5_WC,
00303   _NL_CTYPE_INDIGITS6_WC,
00304   _NL_CTYPE_INDIGITS7_WC,
00305   _NL_CTYPE_INDIGITS8_WC,
00306   _NL_CTYPE_INDIGITS9_WC,
00307   _NL_CTYPE_OUTDIGIT0_MB,
00308   _NL_CTYPE_OUTDIGIT1_MB,
00309   _NL_CTYPE_OUTDIGIT2_MB,
00310   _NL_CTYPE_OUTDIGIT3_MB,
00311   _NL_CTYPE_OUTDIGIT4_MB,
00312   _NL_CTYPE_OUTDIGIT5_MB,
00313   _NL_CTYPE_OUTDIGIT6_MB,
00314   _NL_CTYPE_OUTDIGIT7_MB,
00315   _NL_CTYPE_OUTDIGIT8_MB,
00316   _NL_CTYPE_OUTDIGIT9_MB,
00317   _NL_CTYPE_OUTDIGIT0_WC,
00318   _NL_CTYPE_OUTDIGIT1_WC,
00319   _NL_CTYPE_OUTDIGIT2_WC,
00320   _NL_CTYPE_OUTDIGIT3_WC,
00321   _NL_CTYPE_OUTDIGIT4_WC,
00322   _NL_CTYPE_OUTDIGIT5_WC,
00323   _NL_CTYPE_OUTDIGIT6_WC,
00324   _NL_CTYPE_OUTDIGIT7_WC,
00325   _NL_CTYPE_OUTDIGIT8_WC,
00326   _NL_CTYPE_OUTDIGIT9_WC,
00327   _NL_CTYPE_TRANSLIT_TAB_SIZE,
00328   _NL_CTYPE_TRANSLIT_FROM_IDX,
00329   _NL_CTYPE_TRANSLIT_FROM_TBL,
00330   _NL_CTYPE_TRANSLIT_TO_IDX,
00331   _NL_CTYPE_TRANSLIT_TO_TBL,
00332   _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN,
00333   _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
00334   _NL_CTYPE_TRANSLIT_IGNORE_LEN,
00335   _NL_CTYPE_TRANSLIT_IGNORE,
00336   _NL_CTYPE_MAP_TO_NONASCII,
00337   _NL_CTYPE_EXTRA_MAP_1,
00338   _NL_CTYPE_EXTRA_MAP_2,
00339   _NL_CTYPE_EXTRA_MAP_3,
00340   _NL_CTYPE_EXTRA_MAP_4,
00341   _NL_CTYPE_EXTRA_MAP_5,
00342   _NL_CTYPE_EXTRA_MAP_6,
00343   _NL_CTYPE_EXTRA_MAP_7,
00344   _NL_CTYPE_EXTRA_MAP_8,
00345   _NL_CTYPE_EXTRA_MAP_9,
00346   _NL_CTYPE_EXTRA_MAP_10,
00347   _NL_CTYPE_EXTRA_MAP_11,
00348   _NL_CTYPE_EXTRA_MAP_12,
00349   _NL_CTYPE_EXTRA_MAP_13,
00350   _NL_CTYPE_EXTRA_MAP_14,
00351   _NL_NUM_LC_CTYPE,
00352 
00353   /* LC_MONETARY category: formatting of monetary quantities.
00354      These items each correspond to a member of `struct lconv',
00355      defined in <locale.h>.  */
00356   __INT_CURR_SYMBOL = _NL_ITEM (__LC_MONETARY, 0),
00357 #ifdef __USE_GNU
00358 # define INT_CURR_SYMBOL    __INT_CURR_SYMBOL
00359 #endif
00360   __CURRENCY_SYMBOL,
00361 #ifdef __USE_GNU
00362 # define CURRENCY_SYMBOL    __CURRENCY_SYMBOL
00363 #endif
00364   __MON_DECIMAL_POINT,
00365 #ifdef __USE_GNU
00366 # define MON_DECIMAL_POINT  __MON_DECIMAL_POINT
00367 #endif
00368   __MON_THOUSANDS_SEP,
00369 #ifdef __USE_GNU
00370 # define MON_THOUSANDS_SEP  __MON_THOUSANDS_SEP
00371 #endif
00372   __MON_GROUPING,
00373 #ifdef __USE_GNU
00374 # define MON_GROUPING              __MON_GROUPING
00375 #endif
00376   __POSITIVE_SIGN,
00377 #ifdef __USE_GNU
00378 # define POSITIVE_SIGN             __POSITIVE_SIGN
00379 #endif
00380   __NEGATIVE_SIGN,
00381 #ifdef __USE_GNU
00382 # define NEGATIVE_SIGN             __NEGATIVE_SIGN
00383 #endif
00384   __INT_FRAC_DIGITS,
00385 #ifdef __USE_GNU
00386 # define INT_FRAC_DIGITS    __INT_FRAC_DIGITS
00387 #endif
00388   __FRAC_DIGITS,
00389 #ifdef __USE_GNU
00390 # define FRAC_DIGITS        __FRAC_DIGITS
00391 #endif
00392   __P_CS_PRECEDES,
00393 #ifdef __USE_GNU
00394 # define P_CS_PRECEDES             __P_CS_PRECEDES
00395 #endif
00396   __P_SEP_BY_SPACE,
00397 #ifdef __USE_GNU
00398 # define P_SEP_BY_SPACE            __P_SEP_BY_SPACE
00399 #endif
00400   __N_CS_PRECEDES,
00401 #ifdef __USE_GNU
00402 # define N_CS_PRECEDES             __N_CS_PRECEDES
00403 #endif
00404   __N_SEP_BY_SPACE,
00405 #ifdef __USE_GNU
00406 # define N_SEP_BY_SPACE            __N_SEP_BY_SPACE
00407 #endif
00408   __P_SIGN_POSN,
00409 #ifdef __USE_GNU
00410 # define P_SIGN_POSN        __P_SIGN_POSN
00411 #endif
00412   __N_SIGN_POSN,
00413 #ifdef __USE_GNU
00414 # define N_SIGN_POSN        __N_SIGN_POSN
00415 #endif
00416   _NL_MONETARY_CRNCYSTR,
00417 #define CRNCYSTR            _NL_MONETARY_CRNCYSTR
00418   __INT_P_CS_PRECEDES,
00419 #ifdef __USE_GNU
00420 # define INT_P_CS_PRECEDES  __INT_P_CS_PRECEDES
00421 #endif
00422   __INT_P_SEP_BY_SPACE,
00423 #ifdef __USE_GNU
00424 # define INT_P_SEP_BY_SPACE __INT_P_SEP_BY_SPACE
00425 #endif
00426   __INT_N_CS_PRECEDES,
00427 #ifdef __USE_GNU
00428 # define INT_N_CS_PRECEDES  __INT_N_CS_PRECEDES
00429 #endif
00430   __INT_N_SEP_BY_SPACE,
00431 #ifdef __USE_GNU
00432 # define INT_N_SEP_BY_SPACE __INT_N_SEP_BY_SPACE
00433 #endif
00434   __INT_P_SIGN_POSN,
00435 #ifdef __USE_GNU
00436 # define INT_P_SIGN_POSN    __INT_P_SIGN_POSN
00437 #endif
00438   __INT_N_SIGN_POSN,
00439 #ifdef __USE_GNU
00440 # define INT_N_SIGN_POSN    __INT_N_SIGN_POSN
00441 #endif
00442   _NL_MONETARY_DUO_INT_CURR_SYMBOL,
00443   _NL_MONETARY_DUO_CURRENCY_SYMBOL,
00444   _NL_MONETARY_DUO_INT_FRAC_DIGITS,
00445   _NL_MONETARY_DUO_FRAC_DIGITS,
00446   _NL_MONETARY_DUO_P_CS_PRECEDES,
00447   _NL_MONETARY_DUO_P_SEP_BY_SPACE,
00448   _NL_MONETARY_DUO_N_CS_PRECEDES,
00449   _NL_MONETARY_DUO_N_SEP_BY_SPACE,
00450   _NL_MONETARY_DUO_INT_P_CS_PRECEDES,
00451   _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE,
00452   _NL_MONETARY_DUO_INT_N_CS_PRECEDES,
00453   _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE,
00454   _NL_MONETARY_DUO_P_SIGN_POSN,
00455   _NL_MONETARY_DUO_N_SIGN_POSN,
00456   _NL_MONETARY_DUO_INT_P_SIGN_POSN,
00457   _NL_MONETARY_DUO_INT_N_SIGN_POSN,
00458   _NL_MONETARY_UNO_VALID_FROM,
00459   _NL_MONETARY_UNO_VALID_TO,
00460   _NL_MONETARY_DUO_VALID_FROM,
00461   _NL_MONETARY_DUO_VALID_TO,
00462   _NL_MONETARY_CONVERSION_RATE,
00463   _NL_MONETARY_DECIMAL_POINT_WC,
00464   _NL_MONETARY_THOUSANDS_SEP_WC,
00465   _NL_MONETARY_CODESET,
00466   _NL_NUM_LC_MONETARY,
00467 
00468   /* LC_NUMERIC category: formatting of numbers.
00469      These also correspond to members of `struct lconv'; see <locale.h>.  */
00470   __DECIMAL_POINT = _NL_ITEM (__LC_NUMERIC, 0),
00471 #ifdef __USE_GNU
00472 # define DECIMAL_POINT             __DECIMAL_POINT
00473 #endif
00474   RADIXCHAR = __DECIMAL_POINT,
00475 #define RADIXCHAR           RADIXCHAR
00476   __THOUSANDS_SEP,
00477 #ifdef __USE_GNU
00478 # define THOUSANDS_SEP             __THOUSANDS_SEP
00479 #endif
00480   THOUSEP = __THOUSANDS_SEP,
00481 #define THOUSEP                    THOUSEP
00482   __GROUPING,
00483 #ifdef __USE_GNU
00484 # define GROUPING           __GROUPING
00485 #endif
00486   _NL_NUMERIC_DECIMAL_POINT_WC,
00487   _NL_NUMERIC_THOUSANDS_SEP_WC,
00488   _NL_NUMERIC_CODESET,
00489   _NL_NUM_LC_NUMERIC,
00490 
00491   __YESEXPR = _NL_ITEM (__LC_MESSAGES, 0), /* Regex matching ``yes'' input.  */
00492 #define YESEXPR                    __YESEXPR
00493   __NOEXPR,                 /* Regex matching ``no'' input.  */
00494 #define NOEXPR                     __NOEXPR
00495   __YESSTR,                 /* Output string for ``yes''.  */
00496 #if defined __USE_GNU || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
00497 # define YESSTR                    __YESSTR
00498 #endif
00499   __NOSTR,                  /* Output string for ``no''.  */
00500 #if defined __USE_GNU || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
00501 # define NOSTR                     __NOSTR
00502 #endif
00503   _NL_MESSAGES_CODESET,
00504   _NL_NUM_LC_MESSAGES,
00505 
00506   _NL_PAPER_HEIGHT = _NL_ITEM (__LC_PAPER, 0),
00507   _NL_PAPER_WIDTH,
00508   _NL_PAPER_CODESET,
00509   _NL_NUM_LC_PAPER,
00510 
00511   _NL_NAME_NAME_FMT = _NL_ITEM (__LC_NAME, 0),
00512   _NL_NAME_NAME_GEN,
00513   _NL_NAME_NAME_MR,
00514   _NL_NAME_NAME_MRS,
00515   _NL_NAME_NAME_MISS,
00516   _NL_NAME_NAME_MS,
00517   _NL_NAME_CODESET,
00518   _NL_NUM_LC_NAME,
00519 
00520   _NL_ADDRESS_POSTAL_FMT = _NL_ITEM (__LC_ADDRESS, 0),
00521   _NL_ADDRESS_COUNTRY_NAME,
00522   _NL_ADDRESS_COUNTRY_POST,
00523   _NL_ADDRESS_COUNTRY_AB2,
00524   _NL_ADDRESS_COUNTRY_AB3,
00525   _NL_ADDRESS_COUNTRY_CAR,
00526   _NL_ADDRESS_COUNTRY_NUM,
00527   _NL_ADDRESS_COUNTRY_ISBN,
00528   _NL_ADDRESS_LANG_NAME,
00529   _NL_ADDRESS_LANG_AB,
00530   _NL_ADDRESS_LANG_TERM,
00531   _NL_ADDRESS_LANG_LIB,
00532   _NL_ADDRESS_CODESET,
00533   _NL_NUM_LC_ADDRESS,
00534 
00535   _NL_TELEPHONE_TEL_INT_FMT = _NL_ITEM (__LC_TELEPHONE, 0),
00536   _NL_TELEPHONE_TEL_DOM_FMT,
00537   _NL_TELEPHONE_INT_SELECT,
00538   _NL_TELEPHONE_INT_PREFIX,
00539   _NL_TELEPHONE_CODESET,
00540   _NL_NUM_LC_TELEPHONE,
00541 
00542   _NL_MEASUREMENT_MEASUREMENT = _NL_ITEM (__LC_MEASUREMENT, 0),
00543   _NL_MEASUREMENT_CODESET,
00544   _NL_NUM_LC_MEASUREMENT,
00545 
00546   _NL_IDENTIFICATION_TITLE = _NL_ITEM (__LC_IDENTIFICATION, 0),
00547   _NL_IDENTIFICATION_SOURCE,
00548   _NL_IDENTIFICATION_ADDRESS,
00549   _NL_IDENTIFICATION_CONTACT,
00550   _NL_IDENTIFICATION_EMAIL,
00551   _NL_IDENTIFICATION_TEL,
00552   _NL_IDENTIFICATION_FAX,
00553   _NL_IDENTIFICATION_LANGUAGE,
00554   _NL_IDENTIFICATION_TERRITORY,
00555   _NL_IDENTIFICATION_AUDIENCE,
00556   _NL_IDENTIFICATION_APPLICATION,
00557   _NL_IDENTIFICATION_ABBREVIATION,
00558   _NL_IDENTIFICATION_REVISION,
00559   _NL_IDENTIFICATION_DATE,
00560   _NL_IDENTIFICATION_CATEGORY,
00561   _NL_IDENTIFICATION_CODESET,
00562   _NL_NUM_LC_IDENTIFICATION,
00563 
00564   /* This marks the highest value used.  */
00565   _NL_NUM
00566 };
00567 
00568 /* This macro produces an item you can pass to `nl_langinfo' or
00569    `nl_langinfo_l' to get the name of the locale in use for CATEGORY.  */
00570 #define _NL_LOCALE_NAME(category)  _NL_ITEM ((category), -1)
00571 #ifdef __USE_GNU
00572 # define NL_LOCALE_NAME(category)  _NL_LOCALE_NAME (category)
00573 #endif
00574 
00575 
00576 /* Return the current locale's value for ITEM.
00577    If ITEM is invalid, an empty string is returned.
00578 
00579    The string returned will not change until `setlocale' is called;
00580    it is usually in read-only memory and cannot be modified.  */
00581 
00582 extern char *nl_langinfo (nl_item __item) __THROW;
00583 
00584 
00585 #ifdef __USE_GNU
00586 /* This interface is for the extended locale model.  See <locale.h> for
00587    more information.  */
00588 
00589 /* Get locale datatype definition.  */
00590 # include <xlocale.h>
00591 
00592 /* Just like nl_langinfo but get the information from the locale object L.  */
00593 extern char *nl_langinfo_l (nl_item __item, __locale_t l);
00594 #endif
00595 
00596 __END_DECLS
00597 
00598 #endif /* langinfo.h */