glibc (2.38)

(root)/
include/
langinfo.h
       1  /* Access to locale-dependent parameters.
       2     Copyright (C) 1995-2023 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     <https://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, in the grammatical form used when the month
      78       is a part of a complete date.  */
      79    ABMON_1,			/* Jan */
      80  #define ABMON_1			ABMON_1
      81    ABMON_2,
      82  #define ABMON_2			ABMON_2
      83    ABMON_3,
      84  #define ABMON_3			ABMON_3
      85    ABMON_4,
      86  #define ABMON_4			ABMON_4
      87    ABMON_5,
      88  #define ABMON_5			ABMON_5
      89    ABMON_6,
      90  #define ABMON_6			ABMON_6
      91    ABMON_7,
      92  #define ABMON_7			ABMON_7
      93    ABMON_8,
      94  #define ABMON_8			ABMON_8
      95    ABMON_9,
      96  #define ABMON_9			ABMON_9
      97    ABMON_10,
      98  #define ABMON_10		ABMON_10
      99    ABMON_11,
     100  #define ABMON_11		ABMON_11
     101    ABMON_12,
     102  #define ABMON_12		ABMON_12
     103  
     104    /* Long month names, in the grammatical form used when the month
     105       is a part of a complete date.  */
     106    MON_1,			/* January */
     107  #define MON_1			MON_1
     108    MON_2,
     109  #define MON_2			MON_2
     110    MON_3,
     111  #define MON_3			MON_3
     112    MON_4,
     113  #define MON_4			MON_4
     114    MON_5,
     115  #define MON_5			MON_5
     116    MON_6,
     117  #define MON_6			MON_6
     118    MON_7,
     119  #define MON_7			MON_7
     120    MON_8,
     121  #define MON_8			MON_8
     122    MON_9,
     123  #define MON_9			MON_9
     124    MON_10,
     125  #define MON_10			MON_10
     126    MON_11,
     127  #define MON_11			MON_11
     128    MON_12,
     129  #define MON_12			MON_12
     130  
     131    AM_STR,			/* Ante meridiem string.  */
     132  #define AM_STR			AM_STR
     133    PM_STR,			/* Post meridiem string.  */
     134  #define PM_STR			PM_STR
     135  
     136    D_T_FMT,			/* Date and time format for strftime.  */
     137  #define D_T_FMT			D_T_FMT
     138    D_FMT,			/* Date format for strftime.  */
     139  #define D_FMT			D_FMT
     140    T_FMT,			/* Time format for strftime.  */
     141  #define T_FMT			T_FMT
     142    T_FMT_AMPM,			/* 12-hour time format for strftime.  */
     143  #define T_FMT_AMPM		T_FMT_AMPM
     144  
     145    ERA,				/* Alternate era.  */
     146  #define ERA			ERA
     147    __ERA_YEAR,			/* Year in alternate era format.  */
     148  #ifdef __USE_GNU
     149  # define ERA_YEAR		__ERA_YEAR
     150  #endif
     151    ERA_D_FMT,			/* Date in alternate era format.  */
     152  #define ERA_D_FMT		ERA_D_FMT
     153    ALT_DIGITS,			/* Alternate symbols for digits.  */
     154  #define ALT_DIGITS		ALT_DIGITS
     155    ERA_D_T_FMT,			/* Date and time in alternate era format.  */
     156  #define ERA_D_T_FMT		ERA_D_T_FMT
     157    ERA_T_FMT,			/* Time in alternate era format.  */
     158  #define ERA_T_FMT		ERA_T_FMT
     159  
     160    _NL_TIME_ERA_NUM_ENTRIES,	/* Number entries in the era arrays.  */
     161    _NL_TIME_ERA_ENTRIES,		/* Structure with era entries in usable form.*/
     162  
     163    _NL_WABDAY_1,		/* Sun */
     164    _NL_WABDAY_2,
     165    _NL_WABDAY_3,
     166    _NL_WABDAY_4,
     167    _NL_WABDAY_5,
     168    _NL_WABDAY_6,
     169    _NL_WABDAY_7,
     170  
     171    /* Long-named days of the week. */
     172    _NL_WDAY_1,		/* Sunday */
     173    _NL_WDAY_2,		/* Monday */
     174    _NL_WDAY_3,		/* Tuesday */
     175    _NL_WDAY_4,		/* Wednesday */
     176    _NL_WDAY_5,		/* Thursday */
     177    _NL_WDAY_6,		/* Friday */
     178    _NL_WDAY_7,		/* Saturday */
     179  
     180    /* Abbreviated month names, in the grammatical form used when the month
     181       is a part of a complete date.  */
     182    _NL_WABMON_1,		/* Jan */
     183    _NL_WABMON_2,
     184    _NL_WABMON_3,
     185    _NL_WABMON_4,
     186    _NL_WABMON_5,
     187    _NL_WABMON_6,
     188    _NL_WABMON_7,
     189    _NL_WABMON_8,
     190    _NL_WABMON_9,
     191    _NL_WABMON_10,
     192    _NL_WABMON_11,
     193    _NL_WABMON_12,
     194  
     195    /* Long month names, in the grammatical form used when the month
     196       is a part of a complete date.  */
     197    _NL_WMON_1,		/* January */
     198    _NL_WMON_2,
     199    _NL_WMON_3,
     200    _NL_WMON_4,
     201    _NL_WMON_5,
     202    _NL_WMON_6,
     203    _NL_WMON_7,
     204    _NL_WMON_8,
     205    _NL_WMON_9,
     206    _NL_WMON_10,
     207    _NL_WMON_11,
     208    _NL_WMON_12,
     209  
     210    _NL_WAM_STR,		/* Ante meridiem string.  */
     211    _NL_WPM_STR,		/* Post meridiem string.  */
     212  
     213    _NL_WD_T_FMT,		/* Date and time format for strftime.  */
     214    _NL_WD_FMT,		/* Date format for strftime.  */
     215    _NL_WT_FMT,		/* Time format for strftime.  */
     216    _NL_WT_FMT_AMPM,	/* 12-hour time format for strftime.  */
     217  
     218    _NL_WERA_YEAR,	/* Year in alternate era format.  */
     219    _NL_WERA_D_FMT,	/* Date in alternate era format.  */
     220    _NL_WALT_DIGITS,	/* Alternate symbols for digits.  */
     221    _NL_WERA_D_T_FMT,	/* Date and time in alternate era format.  */
     222    _NL_WERA_T_FMT,	/* Time in alternate era format.  */
     223  
     224    _NL_TIME_WEEK_NDAYS,
     225    _NL_TIME_WEEK_1STDAY,
     226    _NL_TIME_WEEK_1STWEEK,
     227    _NL_TIME_FIRST_WEEKDAY,
     228    _NL_TIME_FIRST_WORKDAY,
     229    _NL_TIME_CAL_DIRECTION,
     230    _NL_TIME_TIMEZONE,
     231  
     232    _DATE_FMT,		/* strftime format for date.  */
     233  #define _DATE_FMT	_DATE_FMT
     234    _NL_W_DATE_FMT,
     235  
     236    _NL_TIME_CODESET,
     237  
     238    /* Long month names, in the grammatical form used when the month
     239       is named by itself.  */
     240    __ALTMON_1,			/* January */
     241    __ALTMON_2,
     242    __ALTMON_3,
     243    __ALTMON_4,
     244    __ALTMON_5,
     245    __ALTMON_6,
     246    __ALTMON_7,
     247    __ALTMON_8,
     248    __ALTMON_9,
     249    __ALTMON_10,
     250    __ALTMON_11,
     251    __ALTMON_12,
     252  #ifdef __USE_GNU
     253  # define ALTMON_1		__ALTMON_1
     254  # define ALTMON_2		__ALTMON_2
     255  # define ALTMON_3		__ALTMON_3
     256  # define ALTMON_4		__ALTMON_4
     257  # define ALTMON_5		__ALTMON_5
     258  # define ALTMON_6		__ALTMON_6
     259  # define ALTMON_7		__ALTMON_7
     260  # define ALTMON_8		__ALTMON_8
     261  # define ALTMON_9		__ALTMON_9
     262  # define ALTMON_10		__ALTMON_10
     263  # define ALTMON_11		__ALTMON_11
     264  # define ALTMON_12		__ALTMON_12
     265  #endif
     266  
     267    /* Long month names, in the grammatical form used when the month
     268       is named by itself.  */
     269    _NL_WALTMON_1,			/* January */
     270    _NL_WALTMON_2,
     271    _NL_WALTMON_3,
     272    _NL_WALTMON_4,
     273    _NL_WALTMON_5,
     274    _NL_WALTMON_6,
     275    _NL_WALTMON_7,
     276    _NL_WALTMON_8,
     277    _NL_WALTMON_9,
     278    _NL_WALTMON_10,
     279    _NL_WALTMON_11,
     280    _NL_WALTMON_12,
     281  
     282    /* Abbreviated month names, in the grammatical form used when the month
     283       is named by itself.  */
     284    _NL_ABALTMON_1,			/* Jan */
     285    _NL_ABALTMON_2,
     286    _NL_ABALTMON_3,
     287    _NL_ABALTMON_4,
     288    _NL_ABALTMON_5,
     289    _NL_ABALTMON_6,
     290    _NL_ABALTMON_7,
     291    _NL_ABALTMON_8,
     292    _NL_ABALTMON_9,
     293    _NL_ABALTMON_10,
     294    _NL_ABALTMON_11,
     295    _NL_ABALTMON_12,
     296  
     297    /* Abbreviated month names, in the grammatical form used when the month
     298       is named by itself.  */
     299    _NL_WABALTMON_1,			/* Jan */
     300    _NL_WABALTMON_2,
     301    _NL_WABALTMON_3,
     302    _NL_WABALTMON_4,
     303    _NL_WABALTMON_5,
     304    _NL_WABALTMON_6,
     305    _NL_WABALTMON_7,
     306    _NL_WABALTMON_8,
     307    _NL_WABALTMON_9,
     308    _NL_WABALTMON_10,
     309    _NL_WABALTMON_11,
     310    _NL_WABALTMON_12,
     311  
     312    _NL_NUM_LC_TIME,	/* Number of indices in LC_TIME category.  */
     313  
     314    /* LC_COLLATE category: text sorting.
     315       This information is accessed by the strcoll and strxfrm functions.
     316       These `nl_langinfo' names are used only internally.  */
     317    _NL_COLLATE_NRULES = _NL_ITEM (__LC_COLLATE, 0),
     318    _NL_COLLATE_RULESETS,
     319    _NL_COLLATE_TABLEMB,
     320    _NL_COLLATE_WEIGHTMB,
     321    _NL_COLLATE_EXTRAMB,
     322    _NL_COLLATE_INDIRECTMB,
     323    _NL_COLLATE_GAP1,
     324    _NL_COLLATE_GAP2,
     325    _NL_COLLATE_GAP3,
     326    _NL_COLLATE_TABLEWC,
     327    _NL_COLLATE_WEIGHTWC,
     328    _NL_COLLATE_EXTRAWC,
     329    _NL_COLLATE_INDIRECTWC,
     330    _NL_COLLATE_SYMB_HASH_SIZEMB,
     331    _NL_COLLATE_SYMB_TABLEMB,
     332    _NL_COLLATE_SYMB_EXTRAMB,
     333    _NL_COLLATE_COLLSEQMB,
     334    _NL_COLLATE_COLLSEQWC,
     335    _NL_COLLATE_CODESET,
     336    _NL_NUM_LC_COLLATE,
     337  
     338    /* LC_CTYPE category: character classification.
     339       This information is accessed by the functions in <ctype.h>.
     340       These `nl_langinfo' names are used only internally.  */
     341    _NL_CTYPE_CLASS = _NL_ITEM (__LC_CTYPE, 0),
     342    _NL_CTYPE_TOUPPER,
     343    _NL_CTYPE_GAP1,
     344    _NL_CTYPE_TOLOWER,
     345    _NL_CTYPE_GAP2,
     346    _NL_CTYPE_CLASS32,
     347    _NL_CTYPE_GAP3,
     348    _NL_CTYPE_GAP4,
     349    _NL_CTYPE_GAP5,
     350    _NL_CTYPE_GAP6,
     351    _NL_CTYPE_CLASS_NAMES,
     352    _NL_CTYPE_MAP_NAMES,
     353    _NL_CTYPE_WIDTH,
     354    _NL_CTYPE_MB_CUR_MAX,
     355    _NL_CTYPE_CODESET_NAME,
     356    CODESET = _NL_CTYPE_CODESET_NAME,
     357  #define CODESET			CODESET
     358    _NL_CTYPE_TOUPPER32,
     359    _NL_CTYPE_TOLOWER32,
     360    _NL_CTYPE_CLASS_OFFSET,
     361    _NL_CTYPE_MAP_OFFSET,
     362    _NL_CTYPE_INDIGITS_MB_LEN,
     363    _NL_CTYPE_INDIGITS0_MB,
     364    _NL_CTYPE_INDIGITS1_MB,
     365    _NL_CTYPE_INDIGITS2_MB,
     366    _NL_CTYPE_INDIGITS3_MB,
     367    _NL_CTYPE_INDIGITS4_MB,
     368    _NL_CTYPE_INDIGITS5_MB,
     369    _NL_CTYPE_INDIGITS6_MB,
     370    _NL_CTYPE_INDIGITS7_MB,
     371    _NL_CTYPE_INDIGITS8_MB,
     372    _NL_CTYPE_INDIGITS9_MB,
     373    _NL_CTYPE_INDIGITS_WC_LEN,
     374    _NL_CTYPE_INDIGITS0_WC,
     375    _NL_CTYPE_INDIGITS1_WC,
     376    _NL_CTYPE_INDIGITS2_WC,
     377    _NL_CTYPE_INDIGITS3_WC,
     378    _NL_CTYPE_INDIGITS4_WC,
     379    _NL_CTYPE_INDIGITS5_WC,
     380    _NL_CTYPE_INDIGITS6_WC,
     381    _NL_CTYPE_INDIGITS7_WC,
     382    _NL_CTYPE_INDIGITS8_WC,
     383    _NL_CTYPE_INDIGITS9_WC,
     384    _NL_CTYPE_OUTDIGIT0_MB,
     385    _NL_CTYPE_OUTDIGIT1_MB,
     386    _NL_CTYPE_OUTDIGIT2_MB,
     387    _NL_CTYPE_OUTDIGIT3_MB,
     388    _NL_CTYPE_OUTDIGIT4_MB,
     389    _NL_CTYPE_OUTDIGIT5_MB,
     390    _NL_CTYPE_OUTDIGIT6_MB,
     391    _NL_CTYPE_OUTDIGIT7_MB,
     392    _NL_CTYPE_OUTDIGIT8_MB,
     393    _NL_CTYPE_OUTDIGIT9_MB,
     394    _NL_CTYPE_OUTDIGIT0_WC,
     395    _NL_CTYPE_OUTDIGIT1_WC,
     396    _NL_CTYPE_OUTDIGIT2_WC,
     397    _NL_CTYPE_OUTDIGIT3_WC,
     398    _NL_CTYPE_OUTDIGIT4_WC,
     399    _NL_CTYPE_OUTDIGIT5_WC,
     400    _NL_CTYPE_OUTDIGIT6_WC,
     401    _NL_CTYPE_OUTDIGIT7_WC,
     402    _NL_CTYPE_OUTDIGIT8_WC,
     403    _NL_CTYPE_OUTDIGIT9_WC,
     404    _NL_CTYPE_TRANSLIT_TAB_SIZE,
     405    _NL_CTYPE_TRANSLIT_FROM_IDX,
     406    _NL_CTYPE_TRANSLIT_FROM_TBL,
     407    _NL_CTYPE_TRANSLIT_TO_IDX,
     408    _NL_CTYPE_TRANSLIT_TO_TBL,
     409    _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN,
     410    _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
     411    _NL_CTYPE_TRANSLIT_IGNORE_LEN,
     412    _NL_CTYPE_TRANSLIT_IGNORE,
     413    _NL_CTYPE_MAP_TO_NONASCII,
     414    _NL_CTYPE_NONASCII_CASE,
     415    _NL_CTYPE_EXTRA_MAP_1,
     416    _NL_CTYPE_EXTRA_MAP_2,
     417    _NL_CTYPE_EXTRA_MAP_3,
     418    _NL_CTYPE_EXTRA_MAP_4,
     419    _NL_CTYPE_EXTRA_MAP_5,
     420    _NL_CTYPE_EXTRA_MAP_6,
     421    _NL_CTYPE_EXTRA_MAP_7,
     422    _NL_CTYPE_EXTRA_MAP_8,
     423    _NL_CTYPE_EXTRA_MAP_9,
     424    _NL_CTYPE_EXTRA_MAP_10,
     425    _NL_CTYPE_EXTRA_MAP_11,
     426    _NL_CTYPE_EXTRA_MAP_12,
     427    _NL_CTYPE_EXTRA_MAP_13,
     428    _NL_CTYPE_EXTRA_MAP_14,
     429    _NL_NUM_LC_CTYPE,
     430  
     431    /* LC_MONETARY category: formatting of monetary quantities.
     432       These items each correspond to a member of `struct lconv',
     433       defined in <locale.h>.  */
     434    __INT_CURR_SYMBOL = _NL_ITEM (__LC_MONETARY, 0),
     435  #ifdef __USE_GNU
     436  # define INT_CURR_SYMBOL	__INT_CURR_SYMBOL
     437  #endif
     438    __CURRENCY_SYMBOL,
     439  #ifdef __USE_GNU
     440  # define CURRENCY_SYMBOL	__CURRENCY_SYMBOL
     441  #endif
     442    __MON_DECIMAL_POINT,
     443  #ifdef __USE_GNU
     444  # define MON_DECIMAL_POINT	__MON_DECIMAL_POINT
     445  #endif
     446    __MON_THOUSANDS_SEP,
     447  #ifdef __USE_GNU
     448  # define MON_THOUSANDS_SEP	__MON_THOUSANDS_SEP
     449  #endif
     450    __MON_GROUPING,
     451  #ifdef __USE_GNU
     452  # define MON_GROUPING		__MON_GROUPING
     453  #endif
     454    __POSITIVE_SIGN,
     455  #ifdef __USE_GNU
     456  # define POSITIVE_SIGN		__POSITIVE_SIGN
     457  #endif
     458    __NEGATIVE_SIGN,
     459  #ifdef __USE_GNU
     460  # define NEGATIVE_SIGN		__NEGATIVE_SIGN
     461  #endif
     462    __INT_FRAC_DIGITS,
     463  #ifdef __USE_GNU
     464  # define INT_FRAC_DIGITS	__INT_FRAC_DIGITS
     465  #endif
     466    __FRAC_DIGITS,
     467  #ifdef __USE_GNU
     468  # define FRAC_DIGITS		__FRAC_DIGITS
     469  #endif
     470    __P_CS_PRECEDES,
     471  #ifdef __USE_GNU
     472  # define P_CS_PRECEDES		__P_CS_PRECEDES
     473  #endif
     474    __P_SEP_BY_SPACE,
     475  #ifdef __USE_GNU
     476  # define P_SEP_BY_SPACE		__P_SEP_BY_SPACE
     477  #endif
     478    __N_CS_PRECEDES,
     479  #ifdef __USE_GNU
     480  # define N_CS_PRECEDES		__N_CS_PRECEDES
     481  #endif
     482    __N_SEP_BY_SPACE,
     483  #ifdef __USE_GNU
     484  # define N_SEP_BY_SPACE		__N_SEP_BY_SPACE
     485  #endif
     486    __P_SIGN_POSN,
     487  #ifdef __USE_GNU
     488  # define P_SIGN_POSN		__P_SIGN_POSN
     489  #endif
     490    __N_SIGN_POSN,
     491  #ifdef __USE_GNU
     492  # define N_SIGN_POSN		__N_SIGN_POSN
     493  #endif
     494    _NL_MONETARY_CRNCYSTR,
     495  #define CRNCYSTR		_NL_MONETARY_CRNCYSTR
     496    __INT_P_CS_PRECEDES,
     497  #ifdef __USE_GNU
     498  # define INT_P_CS_PRECEDES	__INT_P_CS_PRECEDES
     499  #endif
     500    __INT_P_SEP_BY_SPACE,
     501  #ifdef __USE_GNU
     502  # define INT_P_SEP_BY_SPACE	__INT_P_SEP_BY_SPACE
     503  #endif
     504    __INT_N_CS_PRECEDES,
     505  #ifdef __USE_GNU
     506  # define INT_N_CS_PRECEDES	__INT_N_CS_PRECEDES
     507  #endif
     508    __INT_N_SEP_BY_SPACE,
     509  #ifdef __USE_GNU
     510  # define INT_N_SEP_BY_SPACE	__INT_N_SEP_BY_SPACE
     511  #endif
     512    __INT_P_SIGN_POSN,
     513  #ifdef __USE_GNU
     514  # define INT_P_SIGN_POSN	__INT_P_SIGN_POSN
     515  #endif
     516    __INT_N_SIGN_POSN,
     517  #ifdef __USE_GNU
     518  # define INT_N_SIGN_POSN	__INT_N_SIGN_POSN
     519  #endif
     520    _NL_MONETARY_DUO_INT_CURR_SYMBOL,
     521    _NL_MONETARY_DUO_CURRENCY_SYMBOL,
     522    _NL_MONETARY_DUO_INT_FRAC_DIGITS,
     523    _NL_MONETARY_DUO_FRAC_DIGITS,
     524    _NL_MONETARY_DUO_P_CS_PRECEDES,
     525    _NL_MONETARY_DUO_P_SEP_BY_SPACE,
     526    _NL_MONETARY_DUO_N_CS_PRECEDES,
     527    _NL_MONETARY_DUO_N_SEP_BY_SPACE,
     528    _NL_MONETARY_DUO_INT_P_CS_PRECEDES,
     529    _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE,
     530    _NL_MONETARY_DUO_INT_N_CS_PRECEDES,
     531    _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE,
     532    _NL_MONETARY_DUO_P_SIGN_POSN,
     533    _NL_MONETARY_DUO_N_SIGN_POSN,
     534    _NL_MONETARY_DUO_INT_P_SIGN_POSN,
     535    _NL_MONETARY_DUO_INT_N_SIGN_POSN,
     536    _NL_MONETARY_UNO_VALID_FROM,
     537    _NL_MONETARY_UNO_VALID_TO,
     538    _NL_MONETARY_DUO_VALID_FROM,
     539    _NL_MONETARY_DUO_VALID_TO,
     540    _NL_MONETARY_CONVERSION_RATE,
     541    _NL_MONETARY_DECIMAL_POINT_WC,
     542    _NL_MONETARY_THOUSANDS_SEP_WC,
     543    _NL_MONETARY_CODESET,
     544    _NL_NUM_LC_MONETARY,
     545  
     546    /* LC_NUMERIC category: formatting of numbers.
     547       These also correspond to members of `struct lconv'; see <locale.h>.  */
     548    __DECIMAL_POINT = _NL_ITEM (__LC_NUMERIC, 0),
     549  #ifdef __USE_GNU
     550  # define DECIMAL_POINT		__DECIMAL_POINT
     551  #endif
     552    RADIXCHAR = __DECIMAL_POINT,
     553  #define RADIXCHAR		RADIXCHAR
     554    __THOUSANDS_SEP,
     555  #ifdef __USE_GNU
     556  # define THOUSANDS_SEP		__THOUSANDS_SEP
     557  #endif
     558    THOUSEP = __THOUSANDS_SEP,
     559  #define THOUSEP			THOUSEP
     560    __GROUPING,
     561  #ifdef __USE_GNU
     562  # define GROUPING		__GROUPING
     563  #endif
     564    _NL_NUMERIC_DECIMAL_POINT_WC,
     565    _NL_NUMERIC_THOUSANDS_SEP_WC,
     566    _NL_NUMERIC_CODESET,
     567    _NL_NUM_LC_NUMERIC,
     568  
     569    __YESEXPR = _NL_ITEM (__LC_MESSAGES, 0), /* Regex matching ``yes'' input.  */
     570  #define YESEXPR			__YESEXPR
     571    __NOEXPR,			/* Regex matching ``no'' input.  */
     572  #define NOEXPR			__NOEXPR
     573    __YESSTR,			/* Output string for ``yes''.  */
     574  #if defined __USE_GNU || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
     575  # define YESSTR			__YESSTR
     576  #endif
     577    __NOSTR,			/* Output string for ``no''.  */
     578  #if defined __USE_GNU || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
     579  # define NOSTR			__NOSTR
     580  #endif
     581    _NL_MESSAGES_CODESET,
     582    _NL_NUM_LC_MESSAGES,
     583  
     584    _NL_PAPER_HEIGHT = _NL_ITEM (__LC_PAPER, 0),
     585    _NL_PAPER_WIDTH,
     586    _NL_PAPER_CODESET,
     587    _NL_NUM_LC_PAPER,
     588  
     589    _NL_NAME_NAME_FMT = _NL_ITEM (__LC_NAME, 0),
     590    _NL_NAME_NAME_GEN,
     591    _NL_NAME_NAME_MR,
     592    _NL_NAME_NAME_MRS,
     593    _NL_NAME_NAME_MISS,
     594    _NL_NAME_NAME_MS,
     595    _NL_NAME_CODESET,
     596    _NL_NUM_LC_NAME,
     597  
     598    _NL_ADDRESS_POSTAL_FMT = _NL_ITEM (__LC_ADDRESS, 0),
     599    _NL_ADDRESS_COUNTRY_NAME,
     600    _NL_ADDRESS_COUNTRY_POST,
     601    _NL_ADDRESS_COUNTRY_AB2,
     602    _NL_ADDRESS_COUNTRY_AB3,
     603    _NL_ADDRESS_COUNTRY_CAR,
     604    _NL_ADDRESS_COUNTRY_NUM,
     605    _NL_ADDRESS_COUNTRY_ISBN,
     606    _NL_ADDRESS_LANG_NAME,
     607    _NL_ADDRESS_LANG_AB,
     608    _NL_ADDRESS_LANG_TERM,
     609    _NL_ADDRESS_LANG_LIB,
     610    _NL_ADDRESS_CODESET,
     611    _NL_NUM_LC_ADDRESS,
     612  
     613    _NL_TELEPHONE_TEL_INT_FMT = _NL_ITEM (__LC_TELEPHONE, 0),
     614    _NL_TELEPHONE_TEL_DOM_FMT,
     615    _NL_TELEPHONE_INT_SELECT,
     616    _NL_TELEPHONE_INT_PREFIX,
     617    _NL_TELEPHONE_CODESET,
     618    _NL_NUM_LC_TELEPHONE,
     619  
     620    _NL_MEASUREMENT_MEASUREMENT = _NL_ITEM (__LC_MEASUREMENT, 0),
     621    _NL_MEASUREMENT_CODESET,
     622    _NL_NUM_LC_MEASUREMENT,
     623  
     624    _NL_IDENTIFICATION_TITLE = _NL_ITEM (__LC_IDENTIFICATION, 0),
     625    _NL_IDENTIFICATION_SOURCE,
     626    _NL_IDENTIFICATION_ADDRESS,
     627    _NL_IDENTIFICATION_CONTACT,
     628    _NL_IDENTIFICATION_EMAIL,
     629    _NL_IDENTIFICATION_TEL,
     630    _NL_IDENTIFICATION_FAX,
     631    _NL_IDENTIFICATION_LANGUAGE,
     632    _NL_IDENTIFICATION_TERRITORY,
     633    _NL_IDENTIFICATION_AUDIENCE,
     634    _NL_IDENTIFICATION_APPLICATION,
     635    _NL_IDENTIFICATION_ABBREVIATION,
     636    _NL_IDENTIFICATION_REVISION,
     637    _NL_IDENTIFICATION_DATE,
     638    _NL_IDENTIFICATION_CATEGORY,
     639    _NL_IDENTIFICATION_CODESET,
     640    _NL_NUM_LC_IDENTIFICATION,
     641  
     642    /* This marks the highest value used.  */
     643    _NL_NUM
     644  };
     645  
     646  /* This macro produces an item you can pass to `nl_langinfo' or
     647     `nl_langinfo_l' to get the name of the locale in use for CATEGORY.  */
     648  #define _NL_LOCALE_NAME(category)	_NL_ITEM ((category),		      \
     649  						  _NL_ITEM_INDEX (-1))
     650  #ifdef __USE_GNU
     651  # define NL_LOCALE_NAME(category)	_NL_LOCALE_NAME (category)
     652  #endif
     653  
     654  
     655  /* Return the current locale's value for ITEM.
     656     If ITEM is invalid, an empty string is returned.
     657  
     658     The string returned will not change until `setlocale' is called;
     659     it is usually in read-only memory and cannot be modified.  */
     660  
     661  extern char *nl_langinfo (nl_item __item) __THROW;
     662  
     663  
     664  #ifdef __USE_XOPEN2K8
     665  /* POSIX.1-2008 extended locale interface (see locale.h).  */
     666  # include <bits/types/locale_t.h>
     667  
     668  /* Just like nl_langinfo but get the information from the locale object L.  */
     669  extern char *nl_langinfo_l (nl_item __item, locale_t __l);
     670  #endif
     671  
     672  __END_DECLS
     673  
     674  #endif	/* langinfo.h */