diff options
author | Roland McGrath <roland@gnu.org> | 1995-03-06 03:00:08 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-03-06 03:00:08 +0000 |
commit | 933e73facc338fb81f1f72af416ea57fbf439a2f (patch) | |
tree | 1a91e86bb27602a860b65afca47cbc6a38223df4 /locale/langinfo.h | |
parent | 6408bdde65cac02ef96ae9f2b77f222b534c0e75 (diff) | |
download | glibc-933e73facc338fb81f1f72af416ea57fbf439a2f.tar glibc-933e73facc338fb81f1f72af416ea57fbf439a2f.tar.gz glibc-933e73facc338fb81f1f72af416ea57fbf439a2f.tar.bz2 glibc-933e73facc338fb81f1f72af416ea57fbf439a2f.zip |
Sun Mar 5 19:40:13 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* locale/localeinfo.h: Rewritten for new locale system, using
locale data files and with <langinfo.h> interface.
* locale/setlocale.c: Rewritten to use locale data files.
* langinfo.h: New file.
* locale/langinfo.h: New file.
* locale/nl_langinfo.c: New file.
* locale/loadlocale.c: New file.
* locale/lc-ctype.c: New file.
* locale/lc-messages.c: New file.
* locale/lc-monetary.c: New file.
* locale/lc-numeric.c: New file.
* locale/lc-time.c: New file.
* locale/categories.def: New file.
* locale/Makefile (headers): Remove localeinfo.h.
(distribute): New variable; put localeinfo.h here, and categories.def.
(routines): Add loadlocale.
(categories): New variable.
(aux): Use that to get C-category and lc-category.
* ctype/ctype.h (_IS*): Use independent bits for all but _ISalnum.
* locale/C-ctype.c, locale/C-messages.c: New files.
* locale/C-monetary.c, locale/C-numeric.c, locale/C-time.c:
Default "C" locale data updated for new locale system.
* locale/C-collate.c: File removed.
* locale/C-ctype_ct.c: File removed.
* locale/C-ctype_mb.c: File removed.
* locale/C-response.c: File removed.
* locale/localeconv.c: Use _NL_CURRENT macro to access locale data.
* stdio/printf_fp.c, stdio/vfprintf.c, stdio/vfscanf.c,
stdlib/strtod.c, time/asctime.c, time/strftime.c:
Include ../locale/localeinfo.h and use _NL_CURRENT macro to access
locale data.
* time/localtime.c: Don't include <localeinfo.h>.
* time/tzset.c: Don't use locale items for default TZ value or
"GMT" string (use "UTC").
* stdio/vfprintf.c [USE_IN_LIBIO] (PAD): Only call the function if
WIDTH>0; update DONE.
* malloc/malloc.c (morecore): Fix last change to calculate by
blocks instead of bytes.
Diffstat (limited to 'locale/langinfo.h')
-rw-r--r-- | locale/langinfo.h | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/locale/langinfo.h b/locale/langinfo.h new file mode 100644 index 0000000000..cf3b8c054b --- /dev/null +++ b/locale/langinfo.h @@ -0,0 +1,165 @@ +/* nl_langinfo -- Access to locale-dependent parameters. +Copyright (C) 1995 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 Library General Public License as +published by the Free Software Foundation; either version 2 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +#ifndef _LANGINFO_H +#define _LANGINFO_H 1 + +#include <locale.h> /* Define the LC_* category names. */ + +__BEGIN_DECLS + +/* 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 + indices. */ +#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'. */ +typedef enum +{ + /* LC_TIME category: date and time formatting. */ + + /* Abbreviated days of the week. */ + ABDAY_1 = _NL_ITEM (LC_TIME, 0), /* Sun */ + ABDAY_2, + ABDAY_3, + ABDAY_4, + ABDAY_5, + ABDAY_6, + ABDAY_7, + + /* Long-named days of the week. */ + DAY_1, /* Sunday */ + DAY_2, /* Monday */ + DAY_3, /* Tuesday */ + DAY_4, /* Wednesday */ + DAY_5, /* Thursday */ + DAY_6, /* Friday */ + DAY_7, /* Saturday */ + + /* Abbreviated month names. */ + ABMON_1, /* Jan */ + ABMON_2, + ABMON_3, + ABMON_4, + ABMON_5, + ABMON_6, + ABMON_7, + ABMON_8, + ABMON_9, + ABMON_10, + ABMON_11, + ABMON_12, + + /* Long month names. */ + MON_1, /* January */ + MON_2, + MON_3, + MON_4, + MON_5, + MON_6, + MON_7, + MON_8, + MON_9, + MON_10, + MON_11, + MON_12, + + AM_STR, /* Ante meridian string. */ + PM_STR, /* Post meridian 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. */ + + ERA, /* Alternate era. */ + ERA_YEAR, /* Year in alternate era format. */ + ERA_D_FMT, /* Date in alternate ear format. */ + ALT_DIGITS, /* Alternate symbols for digits. */ + + _NL_NUM_LC_TIME, /* Number of indices in LC_TIME category. */ + + /* LC_CTYPE category: character classification. + This information is accessed by the functions in <ctype.h>. + These `nl_langinfo' names are used internally. */ + _NL_CTYPE_CLASS_EB = _NL_ITEM (LC_CTYPE, 0), + _NL_CTYPE_TOUPPER_EB, + _NL_CTYPE_TOLOWER_EB, + _NL_CTYPE_CLASS_EL, + _NL_CTYPE_TOUPPER_EL, + _NL_CTYPE_TOLOWER_EL, + _NL_NUM_LC_CTYPE, + + /* 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), + CURRENCY_SYMBOL, + MON_DECIMAL_POINT, + MON_THOUSANDS_SEP, + MON_GROUPING, + POSITIVE_SIGN, + NEGATIVE_SIGN, + INT_FRAC_DIGITS, + FRAC_DIGITS, + P_CS_PRECEDES, + P_SEP_BY_SPACE, + N_CS_PRECEDES, + N_SEP_BY_SPACE, + P_SIGN_POSN, + N_SIGN_POSN, + _NL_NUM_LC_MONETARY, + + /* LC_NUMERIC category: formatting of numbers. + These also correspond to members of `struct lconv'; see <locale.h>. */ + DECIMAL_POINT = _NL_ITEM (LC_NUMERIC, 0), + THOUSANDS_SEP, + GROUPING, + _NL_NUM_LC_NUMERIC, + + YESEXPR = _NL_ITEM (LC_MESSAGES, 0), /* Regex matching ``yes'' input. */ + NOEXPR, /* Regex matching ``no'' input. */ + YESSTR, /* Output string for ``yes''. */ + NOSTR, /* Output string for ``no''. */ + _NL_NUM_LC_MESSAGES, + + /* Stubs for unfinished categories. */ + _NL_NUM_LC_COLLATE = 0, + +} nl_item; + + +/* Return the current locale's value for ITEM. + If ITEM is invalid, an empty string is returned. + + The string returned will not change until `setlocale' is called; + it is usually in read-only memory and cannot be modified. */ + +extern char *nl_langinfo __P ((nl_item item)); + + +__END_DECLS + +#endif /* langinfo.h */ |