banan-os/libc/include/locale.h

64 lines
1.3 KiB
C
Raw Normal View History

2023-05-10 22:56:41 +03:00
#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