#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 |