64 lines
1.3 KiB
C
64 lines
1.3 KiB
C
|
#pragma once
|
||
|
|
||
|
#include <stddef.h>
|
||
|
#include <sys/cdefs.h>
|
||
|
|
||
|
// https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/locale.h.html#tag_13_24
|
||
|
|
||
|
#define LC_ALL 1
|
||
|
#define LC_COLLATE 2
|
||
|
#define LC_CTYPE 3
|
||
|
#define LC_MESSAGES 4
|
||
|
#define LC_MONETARY 5
|
||
|
#define LC_NUMERIC 6
|
||
|
#define LC_TIME 7
|
||
|
|
||
|
#define LC_COLLATE_MASK 0x01
|
||
|
#define LC_CTYPE_MASK 0x02
|
||
|
#define LC_MESSAGES_MASK 0x04
|
||
|
#define LC_MONETARY_MASK 0x08
|
||
|
#define LC_NUMERIC_MASK 0x10
|
||
|
#define LC_TIME_MASK 0x20
|
||
|
#define LC_ALL_MASK 0x3F
|
||
|
|
||
|
__BEGIN_DECLS
|
||
|
|
||
|
struct lconv
|
||
|
{
|
||
|
char* currency_symbol;
|
||
|
char* decimal_point;
|
||
|
char frac_digits;
|
||
|
char* grouping;
|
||
|
char* int_curr_symbol;
|
||
|
char int_frac_digits;
|
||
|
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;
|
||
|
char* mon_decimal_point;
|
||
|
char* mon_grouping;
|
||
|
char* mon_thousands_sep;
|
||
|
char* negative_sign;
|
||
|
char n_cs_precedes;
|
||
|
char n_sep_by_space;
|
||
|
char n_sign_posn;
|
||
|
char* positive_sign;
|
||
|
char p_cs_precedes;
|
||
|
char p_sep_by_space;
|
||
|
char p_sign_posn;
|
||
|
char* thousands_sep;
|
||
|
};
|
||
|
|
||
|
typedef int locale_t;
|
||
|
|
||
|
locale_t duplocale(locale_t);
|
||
|
void freelocale(locale_t);
|
||
|
struct lconv localeconv(void);
|
||
|
locale_t newlocale(int, const char*, locale_t);
|
||
|
char* setlocale(int, const char*);
|
||
|
locale_t uselocale(locale_t);
|
||
|
|
||
|
__END_DECLS
|