1 #ifndef _LOCALE_H 2 #define _LOCALE_H 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 #include <features.h> 9 10 #ifdef __cplusplus 11 #define NULL 0L 12 #else 13 #define NULL ((void*)0) 14 #endif 15 16 #define LC_CTYPE 0 17 #define LC_NUMERIC 1 18 #define LC_TIME 2 19 #define LC_COLLATE 3 20 #define LC_MONETARY 4 21 #define LC_MESSAGES 5 22 #define LC_PAPER 6 23 #define LC_NAME 7 24 #define LC_ADDRESS 8 25 #define LC_TELEPHONE 9 26 #define LC_MEASUREMENT 10 27 #define LC_IDENTIFICATION 11 28 #define LC_ALL 12 29 30 struct lconv { 31 char *decimal_point; 32 char *thousands_sep; 33 char *grouping; 34 35 char *int_curr_symbol; 36 char *currency_symbol; 37 char *mon_decimal_point; 38 char *mon_thousands_sep; 39 char *mon_grouping; 40 char *positive_sign; 41 char *negative_sign; 42 char int_frac_digits; 43 char frac_digits; 44 char p_cs_precedes; 45 char p_sep_by_space; 46 char n_cs_precedes; 47 char n_sep_by_space; 48 char p_sign_posn; 49 char n_sign_posn; 50 char int_p_cs_precedes; 51 char int_p_sep_by_space; 52 char int_n_cs_precedes; 53 char int_n_sep_by_space; 54 char int_p_sign_posn; 55 char int_n_sign_posn; 56 }; 57 58 char *setlocale (int, const char *); 59 struct lconv *localeconv(void); 60 61 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 62 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 63 64 #define __NEED_locale_t 65 66 #include <bits/alltypes.h> 67 68 #define LC_GLOBAL_LOCALE ((locale_t)-1) 69 70 #define LC_CTYPE_MASK (1<<LC_CTYPE) 71 #define LC_NUMERIC_MASK (1<<LC_NUMERIC) 72 #define LC_TIME_MASK (1<<LC_TIME) 73 #define LC_COLLATE_MASK (1<<LC_COLLATE) 74 #define LC_MONETARY_MASK (1<<LC_MONETARY) 75 #define LC_MESSAGES_MASK (1<<LC_MESSAGES) 76 #define LC_PAPER_MASK (1<<LC_PAPER) 77 #define LC_NAME_MASK (1<<LC_NAME) 78 #define LC_ADDRESS_MASK (1<<LC_ADDRESS) 79 #define LC_TELEPHONE_MASK (1<<LC_TELEPHONE) 80 #define LC_MEASUREMENT_MASK (1<<LC_MEASUREMENT) 81 #define LC_IDENTIFICATION_MASK (1<<LC_IDENTIFICATION) 82 #define LC_ALL_MASK 0x7fffffff 83 84 locale_t duplocale(locale_t); 85 void freelocale(locale_t); 86 locale_t newlocale(int, const char *, locale_t); 87 locale_t uselocale(locale_t); 88 89 #endif 90 #ifdef __cplusplus 91 } 92 #endif 93 #endif 94