mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-19 12:59:21 +08:00
a6a477fa81
Introduce first cut of struct _thr_locale_t used for the locale_t definition. Introduce global instance called __global_locale used by default. Introduce internal inline functions __get_global_locale, __get_locale_r, __get_current_locale. Remove usage of global variables in favor of accessor functions pointing to __global_locale for now. Include all local headers in locale subdir from setlocale.h to get single include for internal locale access. Introduce __CTYPE_PTR macro to replace direct access to __ctype_ptr__ and use throughout in isxxx functions. Signed-off by: Corinna Vinschen <corinna@vinschen.de>
80 lines
1.7 KiB
C
80 lines
1.7 KiB
C
/*
|
|
locale.h
|
|
Values appropriate for the formatting of monetary and other
|
|
numberic quantities.
|
|
*/
|
|
|
|
#ifndef _LOCALE_H_
|
|
#define _LOCALE_H_
|
|
|
|
#include "_ansi.h"
|
|
|
|
#define __need_NULL
|
|
#include <stddef.h>
|
|
|
|
#define LC_ALL 0
|
|
#define LC_COLLATE 1
|
|
#define LC_CTYPE 2
|
|
#define LC_MONETARY 3
|
|
#define LC_NUMERIC 4
|
|
#define LC_TIME 5
|
|
#define LC_MESSAGES 6
|
|
|
|
#if __POSIX_VISIBLE >= 200809
|
|
#define LC_ALL_MASK (1 << LC_ALL)
|
|
#define LC_COLLATE_MASK (1 << LC_COLLATE)
|
|
#define LC_CTYPE_MASK (1 << LC_CTYPE)
|
|
#define LC_MONETARY_MASK (1 << LC_MONETARY)
|
|
#define LC_NUMERIC_MASK (1 << LC_NUMERIC)
|
|
#define LC_TIME_MASK (1 << LC_TIME)
|
|
#define LC_MESSAGES_MASK (1 << LC_MESSAGES)
|
|
|
|
#define LC_GLOBAL_LOCALE ((struct _thr_locale_t *) -1)
|
|
|
|
struct _thr_locale_t;
|
|
typedef struct _thr_locale_t *locale_t;
|
|
#endif
|
|
|
|
_BEGIN_STD_C
|
|
|
|
struct lconv
|
|
{
|
|
char *decimal_point;
|
|
char *thousands_sep;
|
|
char *grouping;
|
|
char *int_curr_symbol;
|
|
char *currency_symbol;
|
|
char *mon_decimal_point;
|
|
char *mon_thousands_sep;
|
|
char *mon_grouping;
|
|
char *positive_sign;
|
|
char *negative_sign;
|
|
char int_frac_digits;
|
|
char frac_digits;
|
|
char p_cs_precedes;
|
|
char p_sep_by_space;
|
|
char n_cs_precedes;
|
|
char n_sep_by_space;
|
|
char p_sign_posn;
|
|
char n_sign_posn;
|
|
char int_n_cs_precedes;
|
|
char int_n_sep_by_space;
|
|
char int_n_sign_posn;
|
|
char int_p_cs_precedes;
|
|
char int_p_sep_by_space;
|
|
char int_p_sign_posn;
|
|
};
|
|
|
|
#ifndef _REENT_ONLY
|
|
char *_EXFUN(setlocale,(int category, const char *locale));
|
|
struct lconv *_EXFUN(localeconv,(void));
|
|
#endif
|
|
|
|
struct _reent;
|
|
char *_EXFUN(_setlocale_r,(struct _reent *, int category, const char *locale));
|
|
struct lconv *_EXFUN(_localeconv_r,(struct _reent *));
|
|
|
|
_END_STD_C
|
|
|
|
#endif /* _LOCALE_H_ */
|