(linenum→info "unix/slp.c:2238")

glibc/2.7/locale/langinfo.h

    1: /* Access to locale-dependent parameters.
    2:    Copyright (C) 1995-2002,2003,2004,2005 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, write to the Free
   17:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   18:    02111-1307 USA.  */
   19: 
   20: #ifndef _LANGINFO_H
   21: #define _LANGINFO_H 1
   22: 
   23: /* Get the type definition.  */
   24: #include <nl_types.h>
   25: 
   26: #include <bits/locale.h>        /* Define the __LC_* category names.  */
   27: 
   28: 
   29: __BEGIN_DECLS
   30: 
   31: /* Construct an `nl_item' value for `nl_langinfo' from a locale category
   32:    (LC_*) and an item index within the category.  Some code may depend on
   33:    the item values within a category increasing monotonically with the
   34:    indices.  */
   35: #define _NL_ITEM(category, index)       (((category) << 16) | (index))
   36: 
   37: /* Extract the category and item index from a constructed `nl_item' value.  */
   38: #define _NL_ITEM_CATEGORY(item)         ((int) (item) >> 16)
   39: #define _NL_ITEM_INDEX(item)            ((int) (item) & 0xffff)
   40: 
   41: /* Enumeration of locale items that can be queried with `nl_langinfo'.  */
   42: enum
   43: {
   44:   /* LC_TIME category: date and time formatting.  */
   45: 
   46:   /* Abbreviated days of the week. */
   47:   ABDAY_1 = _NL_ITEM (__LC_TIME, 0), /* Sun */
   48: #define ABDAY_1                 ABDAY_1
   49:   ABDAY_2,
   50: #define ABDAY_2                 ABDAY_2
   51:   ABDAY_3,
   52: #define ABDAY_3                 ABDAY_3
   53:   ABDAY_4,
   54: #define ABDAY_4                 ABDAY_4
   55:   ABDAY_5,
   56: #define ABDAY_5                 ABDAY_5
   57:   ABDAY_6,
   58: #define ABDAY_6                 ABDAY_6
   59:   ABDAY_7,
   60: #define ABDAY_7                 ABDAY_7
   61: 
   62:   /* Long-named days of the week. */
   63:   DAY_1,                        /* Sunday */
   64: #define DAY_1                   DAY_1
   65:   DAY_2,                        /* Monday */
   66: #define DAY_2                   DAY_2
   67:   DAY_3,                        /* Tuesday */
   68: #define DAY_3                   DAY_3
   69:   DAY_4,                        /* Wednesday */
   70: #define DAY_4                   DAY_4
   71:   DAY_5,                        /* Thursday */
   72: #define DAY_5                   DAY_5
   73:   DAY_6,                        /* Friday */
   74: #define DAY_6                   DAY_6
   75:   DAY_7,                        /* Saturday */
   76: #define DAY_7                   DAY_7
   77: 
   78:   /* Abbreviated month names.  */
   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.  */
  105:   MON_1,                        /* January */
  106: #define MON_1                   MON_1
  107:   MON_2,
  108: #define MON_2                   MON_2
  109:   MON_3,
  110: #define MON_3                   MON_3
  111:   MON_4,
  112: #define MON_4                   MON_4
  113:   MON_5,
  114: #define MON_5                   MON_5
  115:   MON_6,
  116: #define MON_6                   MON_6
  117:   MON_7,
  118: #define MON_7                   MON_7
  119:   MON_8,
  120: #define MON_8                   MON_8
  121:   MON_9,
  122: #define MON_9                   MON_9
  123:   MON_10,
  124: #define MON_10                  MON_10
  125:   MON_11,
  126: #define MON_11                  MON_11
  127:   MON_12,
  128: #define MON_12                  MON_12
  129: 
  130:   AM_STR,                       /* Ante meridiem string.  */
  131: #define AM_STR                  AM_STR
  132:   PM_STR,                       /* Post meridiem string.  */
  133: #define PM_STR                  PM_STR
  134: 
  135:   D_T_FMT,                      /* Date and time format for strftime.  */
  136: #define D_T_FMT                 D_T_FMT
  137:   D_FMT,                        /* Date format for strftime.  */
  138: #define D_FMT                   D_FMT
  139:   T_FMT,                        /* Time format for strftime.  */
  140: #define T_FMT                   T_FMT
  141:   T_FMT_AMPM,                   /* 12-hour time format for strftime.  */
  142: #define T_FMT_AMPM              T_FMT_AMPM
  143: 
  144:   ERA,                          /* Alternate era.  */
  145: #define ERA                     ERA
  146:   __ERA_YEAR,                   /* Year in alternate era format.  */
  147: #ifdef __USE_GNU
  148: # define ERA_YEAR               __ERA_YEAR
  149: #endif
  150:   ERA_D_FMT,                    /* Date in alternate era format.  */
  151: #define ERA_D_FMT               ERA_D_FMT
  152:   ALT_DIGITS,                   /* Alternate symbols for digits.  */
  153: #define ALT_DIGITS              ALT_DIGITS
  154:   ERA_D_T_FMT,                  /* Date and time in alternate era format.  */
  155: #define ERA_D_T_FMT             ERA_D_T_FMT
  156:   ERA_T_FMT,                    /* Time in alternate era format.  */
  157: #define ERA_T_FMT               ERA_T_FMT
  158: 
  159:   _NL_TIME_ERA_NUM_ENTRIES,     /* Number entries in the era arrays.  */
  160:   _NL_TIME_ERA_ENTRIES,         /* Structure with era entries in usable form.*/
  161: 
  162:   _NL_WABDAY_1,         /* Sun */
  163:   _NL_WABDAY_2,
  164:   _NL_WABDAY_3,
  165:   _NL_WABDAY_4,
  166:   _NL_WABDAY_5,
  167:   _NL_WABDAY_6,
  168:   _NL_WABDAY_7,
  169: 
  170:   /* Long-named days of the week. */
  171:   _NL_WDAY_1,           /* Sunday */
  172:   _NL_WDAY_2,           /* Monday */
  173:   _NL_WDAY_3,           /* Tuesday */
  174:   _NL_WDAY_4,           /* Wednesday */
  175:   _NL_WDAY_5,           /* Thursday */
  176:   _NL_WDAY_6,           /* Friday */
  177:   _NL_WDAY_7,           /* Saturday */
  178: 
  179:   /* Abbreviated month names.  */
  180:   _NL_WABMON_1,         /* Jan */
  181:   _NL_WABMON_2,
  182:   _NL_WABMON_3,
  183:   _NL_WABMON_4,
  184:   _NL_WABMON_5,
  185:   _NL_WABMON_6,
  186:   _NL_WABMON_7,
  187:   _NL_WABMON_8,
  188:   _NL_WABMON_9,
  189:   _NL_WABMON_10,
  190:   _NL_WABMON_11,
  191:   _NL_WABMON_12,
  192: 
  193:   /* Long month names.  */
  194:   _NL_WMON_1,           /* January */
  195:   _NL_WMON_2,
  196:   _NL_WMON_3,
  197:   _NL_WMON_4,
  198:   _NL_WMON_5,
  199:   _NL_WMON_6,
  200:   _NL_WMON_7,
  201:   _NL_WMON_8,
  202:   _NL_WMON_9,
  203:   _NL_WMON_10,
  204:   _NL_WMON_11,
  205:   _NL_WMON_12,
  206: 
  207:   _NL_WAM_STR,          /* Ante meridiem string.  */
  208:   _NL_WPM_STR,          /* Post meridiem string.  */
  209: 
  210:   _NL_WD_T_FMT,         /* Date and time format for strftime.  */
  211:   _NL_WD_FMT,           /* Date format for strftime.  */
  212:   _NL_WT_FMT,           /* Time format for strftime.  */
  213:   _NL_WT_FMT_AMPM,      /* 12-hour time format for strftime.  */
  214: 
  215:   _NL_WERA_YEAR,        /* Year in alternate era format.  */
  216:   _NL_WERA_D_FMT,       /* Date in alternate era format.  */
  217:   _NL_WALT_DIGITS,      /* Alternate symbols for digits.  */
  218:   _NL_WERA_D_T_FMT,     /* Date and time in alternate era format.  */
  219:   _NL_WERA_T_FMT,       /* Time in alternate era format.  */
  220: 
  221:   _NL_TIME_WEEK_NDAYS,
  222:   _NL_TIME_WEEK_1STDAY,
  223:   _NL_TIME_WEEK_1STWEEK,
  224:   _NL_TIME_FIRST_WEEKDAY,
  225:   _NL_TIME_FIRST_WORKDAY,
  226:   _NL_TIME_CAL_DIRECTION,
  227:   _NL_TIME_TIMEZONE,
  228: 
  229:   _DATE_FMT,            /* strftime format for date.  */
  230: #define _DATE_FMT       _DATE_FMT
  231:   _NL_W_DATE_FMT,
  232: 
  233:   _NL_TIME_CODESET,
  234: 
  235:   _NL_NUM_LC_TIME,      /* Number of indices in LC_TIME category.  */
  236: 
  237:   /* LC_COLLATE category: text sorting.
  238:      This information is accessed by the strcoll and strxfrm functions.
  239:      These `nl_langinfo' names are used only internally.  */
  240:   _NL_COLLATE_NRULES = _NL_ITEM (__LC_COLLATE, 0),
  241:   _NL_COLLATE_RULESETS,
  242:   _NL_COLLATE_TABLEMB,
  243:   _NL_COLLATE_WEIGHTMB,
  244:   _NL_COLLATE_EXTRAMB,
  245:   _NL_COLLATE_INDIRECTMB,
  246:   _NL_COLLATE_GAP1,
  247:   _NL_COLLATE_GAP2,
  248:   _NL_COLLATE_GAP3,
  249:   _NL_COLLATE_TABLEWC,
  250:   _NL_COLLATE_WEIGHTWC,
  251:   _NL_COLLATE_EXTRAWC,
  252:   _NL_COLLATE_INDIRECTWC,
  253:   _NL_COLLATE_SYMB_HASH_SIZEMB,
  254:   _NL_COLLATE_SYMB_TABLEMB,
  255:   _NL_COLLATE_SYMB_EXTRAMB,
  256:   _NL_COLLATE_COLLSEQMB,
  257:   _NL_COLLATE_COLLSEQWC,
  258:   _NL_COLLATE_CODESET,
  259:   _NL_NUM_LC_COLLATE,
  260: 
  261:   /* LC_CTYPE category: character classification.
  262:      This information is accessed by the functions in <ctype.h>.
  263:      These `nl_langinfo' names are used only internally.  */
  264:   _NL_CTYPE_CLASS = _NL_ITEM (__LC_CTYPE, 0),
  265:   _NL_CTYPE_TOUPPER,
  266:   _NL_CTYPE_GAP1,
  267:   _NL_CTYPE_TOLOWER,
  268:   _NL_CTYPE_GAP2,
  269:   _NL_CTYPE_CLASS32,
  270:   _NL_CTYPE_GAP3,
  271:   _NL_CTYPE_GAP4,
  272:   _NL_CTYPE_GAP5,
  273:   _NL_CTYPE_GAP6,
  274:   _NL_CTYPE_CLASS_NAMES,
  275:   _NL_CTYPE_MAP_NAMES,
  276:   _NL_CTYPE_WIDTH,
  277:   _NL_CTYPE_MB_CUR_MAX,
  278:   _NL_CTYPE_CODESET_NAME,
  279:   CODESET = _NL_CTYPE_CODESET_NAME,
  280: #define CODESET                 CODESET
  281:   _NL_CTYPE_TOUPPER32,
  282:   _NL_CTYPE_TOLOWER32,
  283:   _NL_CTYPE_CLASS_OFFSET,
  284:   _NL_CTYPE_MAP_OFFSET,
  285:   _NL_CTYPE_INDIGITS_MB_LEN,
  286:   _NL_CTYPE_INDIGITS0_MB,
  287:   _NL_CTYPE_INDIGITS1_MB,
  288:   _NL_CTYPE_INDIGITS2_MB,
  289:   _NL_CTYPE_INDIGITS3_MB,
  290:   _NL_CTYPE_INDIGITS4_MB,
  291:   _NL_CTYPE_INDIGITS5_MB,
  292:   _NL_CTYPE_INDIGITS6_MB,
  293:   _NL_CTYPE_INDIGITS7_MB,
  294:   _NL_CTYPE_INDIGITS8_MB,
  295:   _NL_CTYPE_INDIGITS9_MB,
  296:   _NL_CTYPE_INDIGITS_WC_LEN,
  297:   _NL_CTYPE_INDIGITS0_WC,
  298:   _NL_CTYPE_INDIGITS1_WC,
  299:   _NL_CTYPE_INDIGITS2_WC,
  300:   _NL_CTYPE_INDIGITS3_WC,
  301:   _NL_CTYPE_INDIGITS4_WC,
  302:   _NL_CTYPE_INDIGITS5_WC,
  303:   _NL_CTYPE_INDIGITS6_WC,
  304:   _NL_CTYPE_INDIGITS7_WC,
  305:   _NL_CTYPE_INDIGITS8_WC,
  306:   _NL_CTYPE_INDIGITS9_WC,
  307:   _NL_CTYPE_OUTDIGIT0_MB,
  308:   _NL_CTYPE_OUTDIGIT1_MB,
  309:   _NL_CTYPE_OUTDIGIT2_MB,
  310:   _NL_CTYPE_OUTDIGIT3_MB,
  311:   _NL_CTYPE_OUTDIGIT4_MB,
  312:   _NL_CTYPE_OUTDIGIT5_MB,
  313:   _NL_CTYPE_OUTDIGIT6_MB,
  314:   _NL_CTYPE_OUTDIGIT7_MB,
  315:   _NL_CTYPE_OUTDIGIT8_MB,
  316:   _NL_CTYPE_OUTDIGIT9_MB,
  317:   _NL_CTYPE_OUTDIGIT0_WC,
  318:   _NL_CTYPE_OUTDIGIT1_WC,
  319:   _NL_CTYPE_OUTDIGIT2_WC,
  320:   _NL_CTYPE_OUTDIGIT3_WC,
  321:   _NL_CTYPE_OUTDIGIT4_WC,
  322:   _NL_CTYPE_OUTDIGIT5_WC,
  323:   _NL_CTYPE_OUTDIGIT6_WC,
  324:   _NL_CTYPE_OUTDIGIT7_WC,
  325:   _NL_CTYPE_OUTDIGIT8_WC,
  326:   _NL_CTYPE_OUTDIGIT9_WC,
  327:   _NL_CTYPE_TRANSLIT_TAB_SIZE,
  328:   _NL_CTYPE_TRANSLIT_FROM_IDX,
  329:   _NL_CTYPE_TRANSLIT_FROM_TBL,
  330:   _NL_CTYPE_TRANSLIT_TO_IDX,
  331:   _NL_CTYPE_TRANSLIT_TO_TBL,
  332:   _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN,
  333:   _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
  334:   _NL_CTYPE_TRANSLIT_IGNORE_LEN,
  335:   _NL_CTYPE_TRANSLIT_IGNORE,
  336:   _NL_CTYPE_MAP_TO_NONASCII,
  337:   _NL_CTYPE_EXTRA_MAP_1,
  338:   _NL_CTYPE_EXTRA_MAP_2,
  339:   _NL_CTYPE_EXTRA_MAP_3,
  340:   _NL_CTYPE_EXTRA_MAP_4,
  341:   _NL_CTYPE_EXTRA_MAP_5,
  342:   _NL_CTYPE_EXTRA_MAP_6,
  343:   _NL_CTYPE_EXTRA_MAP_7,
  344:   _NL_CTYPE_EXTRA_MAP_8,
  345:   _NL_CTYPE_EXTRA_MAP_9,
  346:   _NL_CTYPE_EXTRA_MAP_10,
  347:   _NL_CTYPE_EXTRA_MAP_11,
  348:   _NL_CTYPE_EXTRA_MAP_12,
  349:   _NL_CTYPE_EXTRA_MAP_13,
  350:   _NL_CTYPE_EXTRA_MAP_14,
  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), -1)
  571: #ifdef __USE_GNU
  572: # define NL_LOCALE_NAME(category)       _NL_LOCALE_NAME (category)
  573: #endif
  574: 
  575: 
  576: /* Return the current locale's value for ITEM.
  577:    If ITEM is invalid, an empty string is returned.
  578: 
  579:    The string returned will not change until `setlocale' is called;
  580:    it is usually in read-only memory and cannot be modified.  */
  581: 
  582: extern char *nl_langinfo (nl_item __item) __THROW;
  583: 
  584: 
  585: #ifdef  __USE_GNU
  586: /* This interface is for the extended locale model.  See <locale.h> for
  587:    more information.  */
  588: 
  589: /* Get locale datatype definition.  */
  590: # include <xlocale.h>