/* Access to locale-dependent parameters.
Copyright (C) 1995-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/* Get the type definition. */
#include <bits/locale.h> /* Define the __LC_* category names. */
/* Construct an `nl_item' value for `nl_langinfo' from a locale category
(LC_*) and an item index within the category. Some code may depend on
the item values within a category increasing monotonically with the
#define _NL_ITEM(category, index) (((category) << 16) | (index))
/* Extract the category and item index from a constructed `nl_item' value. */
#define _NL_ITEM_CATEGORY(item) ((int) (item) >> 16)
#define _NL_ITEM_INDEX(item) ((int) (item) & 0xffff)
/* Enumeration of locale items that can be queried with `nl_langinfo'. */
/* LC_TIME category: date and time formatting. */
/* Abbreviated days of the week. */
ABDAY_1 = _NL_ITEM (__LC_TIME, 0), /* Sun */
/* Long-named days of the week. */
/* Abbreviated month names, in the grammatical form used when the month
is a part of a complete date. */
#define ABMON_10 ABMON_10
#define ABMON_11 ABMON_11
#define ABMON_12 ABMON_12
/* Long month names, in the grammatical form used when the month
is a part of a complete date. */
AM_STR, /* Ante meridiem string. */
PM_STR, /* Post meridiem string. */
D_T_FMT, /* Date and time format for strftime. */
D_FMT, /* Date format for strftime. */
T_FMT, /* Time format for strftime. */
T_FMT_AMPM, /* 12-hour time format for strftime. */
#define T_FMT_AMPM T_FMT_AMPM
ERA, /* Alternate era. */
__ERA_YEAR, /* Year in alternate era format. */
# define ERA_YEAR __ERA_YEAR
ERA_D_FMT, /* Date in alternate era format. */
#define ERA_D_FMT ERA_D_FMT
ALT_DIGITS, /* Alternate symbols for digits. */
#define ALT_DIGITS ALT_DIGITS
ERA_D_T_FMT, /* Date and time in alternate era format. */
#define ERA_D_T_FMT ERA_D_T_FMT
ERA_T_FMT, /* Time in alternate era format. */
#define ERA_T_FMT ERA_T_FMT
_NL_TIME_ERA_NUM_ENTRIES, /* Number entries in the era arrays. */
_NL_TIME_ERA_ENTRIES, /* Structure with era entries in usable form.*/
/* Long-named days of the week. */
_NL_WDAY_3, /* Tuesday */
_NL_WDAY_4, /* Wednesday */
_NL_WDAY_5, /* Thursday */
_NL_WDAY_7, /* Saturday */
/* Abbreviated month names, in the grammatical form used when the month
is a part of a complete date. */
/* Long month names, in the grammatical form used when the month
is a part of a complete date. */
_NL_WMON_1, /* January */
_NL_WAM_STR, /* Ante meridiem string. */
_NL_WPM_STR, /* Post meridiem string. */
_NL_WD_T_FMT, /* Date and time format for strftime. */
_NL_WD_FMT, /* Date format for strftime. */
_NL_WT_FMT, /* Time format for strftime. */
_NL_WT_FMT_AMPM, /* 12-hour time format for strftime. */
_NL_WERA_YEAR, /* Year in alternate era format. */
_NL_WERA_D_FMT, /* Date in alternate era format. */
_NL_WALT_DIGITS, /* Alternate symbols for digits. */
_NL_WERA_D_T_FMT, /* Date and time in alternate era format. */
_NL_WERA_T_FMT, /* Time in alternate era format. */
_DATE_FMT, /* strftime format for date. */
#define _DATE_FMT _DATE_FMT
/* Long month names, in the grammatical form used when the month
__ALTMON_1, /* January */
# define ALTMON_1 __ALTMON_1
# define ALTMON_2 __ALTMON_2
# define ALTMON_3 __ALTMON_3
# define ALTMON_4 __ALTMON_4
# define ALTMON_5 __ALTMON_5
# define ALTMON_6 __ALTMON_6
# define ALTMON_7 __ALTMON_7
# define ALTMON_8 __ALTMON_8
# define ALTMON_9 __ALTMON_9
# define ALTMON_10 __ALTMON_10
# define ALTMON_11 __ALTMON_11
# define ALTMON_12 __ALTMON_12
/* Long month names, in the grammatical form used when the month
_NL_WALTMON_1, /* January */
/* Abbreviated month names, in the grammatical form used when the month
_NL_ABALTMON_1, /* Jan */
/* Abbreviated month names, in the grammatical form used when the month
_NL_WABALTMON_1, /* Jan */
_NL_NUM_LC_TIME, /* Number of indices in LC_TIME category. */
/* LC_COLLATE category: text sorting.
This information is accessed by the strcoll and strxfrm functions.
These `nl_langinfo' names are used only internally. */
_NL_COLLATE_NRULES = _NL_ITEM (__LC_COLLATE, 0),
_NL_COLLATE_SYMB_HASH_SIZEMB,
_NL_COLLATE_SYMB_TABLEMB,
_NL_COLLATE_SYMB_EXTRAMB,
/* LC_CTYPE category: character classification.
This information is accessed by the functions in <ctype.h>.
These `nl_langinfo' names are used only internally. */
_NL_CTYPE_CLASS = _NL_ITEM (__LC_CTYPE, 0),
CODESET = _NL_CTYPE_CODESET_NAME,
_NL_CTYPE_INDIGITS_MB_LEN,
_NL_CTYPE_INDIGITS_WC_LEN,
_NL_CTYPE_TRANSLIT_TAB_SIZE,
_NL_CTYPE_TRANSLIT_FROM_IDX,
_NL_CTYPE_TRANSLIT_FROM_TBL,
_NL_CTYPE_TRANSLIT_TO_IDX,
_NL_CTYPE_TRANSLIT_TO_TBL,
_NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN,
_NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
_NL_CTYPE_TRANSLIT_IGNORE_LEN,
_NL_CTYPE_TRANSLIT_IGNORE,
_NL_CTYPE_MAP_TO_NONASCII,
/* LC_MONETARY category: formatting of monetary quantities.
These items each correspond to a member of `struct lconv',
defined in <locale.h>. */
__INT_CURR_SYMBOL = _NL_ITEM (__LC_MONETARY, 0),
# define INT_CURR_SYMBOL __INT_CURR_SYMBOL
# define CURRENCY_SYMBOL __CURRENCY_SYMBOL
# define MON_DECIMAL_POINT __MON_DECIMAL_POINT
# define MON_THOUSANDS_SEP __MON_THOUSANDS_SEP
# define MON_GROUPING __MON_GROUPING
# define POSITIVE_SIGN __POSITIVE_SIGN
# define NEGATIVE_SIGN __NEGATIVE_SIGN
# define INT_FRAC_DIGITS __INT_FRAC_DIGITS
# define FRAC_DIGITS __FRAC_DIGITS
# define P_CS_PRECEDES __P_CS_PRECEDES
# define P_SEP_BY_SPACE __P_SEP_BY_SPACE
# define N_CS_PRECEDES __N_CS_PRECEDES
# define N_SEP_BY_SPACE __N_SEP_BY_SPACE
# define P_SIGN_POSN __P_SIGN_POSN
# define N_SIGN_POSN __N_SIGN_POSN
#define CRNCYSTR _NL_MONETARY_CRNCYSTR
# define INT_P_CS_PRECEDES __INT_P_CS_PRECEDES