|  | #ifndef _LOCALE_H | 
|  | #define _LOCALE_H | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #include <features.h> | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | #define NULL 0L | 
|  | #else | 
|  | #define NULL ((void*)0) | 
|  | #endif | 
|  |  | 
|  | #define LC_CTYPE 0 | 
|  | #define LC_NUMERIC 1 | 
|  | #define LC_TIME 2 | 
|  | #define LC_COLLATE 3 | 
|  | #define LC_MONETARY 4 | 
|  | #define LC_MESSAGES 5 | 
|  | #define LC_ALL 6 | 
|  |  | 
|  | 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_p_cs_precedes; | 
|  | char int_p_sep_by_space; | 
|  | char int_n_cs_precedes; | 
|  | char int_n_sep_by_space; | 
|  | char int_p_sign_posn; | 
|  | char int_n_sign_posn; | 
|  | }; | 
|  |  | 
|  | char* setlocale(int, const char*); | 
|  | struct lconv* localeconv(void); | 
|  |  | 
|  | #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) || \ | 
|  | defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) | 
|  |  | 
|  | #define __NEED_locale_t | 
|  |  | 
|  | #include <bits/alltypes.h> | 
|  |  | 
|  | #define LC_GLOBAL_LOCALE ((locale_t)-1) | 
|  |  | 
|  | #define LC_CTYPE_MASK (1 << LC_CTYPE) | 
|  | #define LC_NUMERIC_MASK (1 << LC_NUMERIC) | 
|  | #define LC_TIME_MASK (1 << LC_TIME) | 
|  | #define LC_COLLATE_MASK (1 << LC_COLLATE) | 
|  | #define LC_MONETARY_MASK (1 << LC_MONETARY) | 
|  | #define LC_MESSAGES_MASK (1 << LC_MESSAGES) | 
|  | #define LC_ALL_MASK 0x7fffffff | 
|  |  | 
|  | locale_t duplocale(locale_t); | 
|  | void freelocale(locale_t); | 
|  | locale_t newlocale(int, const char*, locale_t); | 
|  | locale_t uselocale(locale_t); | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif |