Files
2025-06-23 20:33:48 +03:00

122 lines
2.7 KiB
C

#ifndef _LOCALE_H
#define _LOCALE_H
#include "MSL_C/wchar_io.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef int (*__decode_mbyte)(wchar_t*, const char*, size_t);
typedef int (*__encode_mbyte)(char*, wchar_t);
struct lconv {
char* decimal_point;
char* thousands_sep;
char* grouping;
char* mon_decimal_point;
char* mon_thousands_sep;
char* mon_grouping;
char* positive_sign;
char* negative_sign;
char* currency_symbol;
char frac_digits;
char p_cs_precedes;
char n_cs_precedes;
char p_sep_by_space;
char n_sep_by_space;
char p_sign_posn;
char n_sign_posn;
char* int_curr_symbol;
char int_frac_digits;
char int_p_cs_precedes;
char int_n_cs_precedes;
char int_p_sep_by_space;
char int_n_sep_by_space;
char int_p_sign_posn;
char int_n_sign_posn;
};
struct _loc_mon_cmpt {
char CmptName[8];
char* mon_decimal_point;
char* mon_thousands_sep;
char* mon_grouping;
char* positive_sign;
char* negative_sign;
char* currency_symbol;
char frac_digits;
char p_cs_precedes;
char n_cs_precedes;
char p_sep_by_space;
char n_sep_by_space;
char p_sign_posn;
char n_sign_posn;
char* int_curr_symbol;
char int_frac_digits;
char int_p_cs_precedes;
char int_n_cs_precedes;
char int_p_sep_by_space;
char int_n_sep_by_space;
char int_p_sign_posn;
char int_n_sign_posn;
};
struct _loc_num_cmpt {
char CmptName[8];
char* decimal_point;
char* thousands_sep;
char* grouping;
};
struct _loc_time_cmpt {
char CmptName[8];
char* am_pm;
char* DateTime_Format;
char* Twelve_hr_format;
char* Date_Format;
char* Time_Format;
char* Day_Names;
char* MonthNames;
char* TimeZone;
};
struct _loc_coll_cmpt {
char CmptName[8];
int char_start_value;
int char_coll_tab_size;
short char_spec_accents;
unsigned short* char_coll_table_ptr;
unsigned short* wchar_coll_seq_ptr;
};
struct _loc_ctype_cmpt {
char CmptName[8];
const unsigned short* ctype_map_ptr;
const unsigned char* upper_map_ptr;
const unsigned char* lower_map_ptr;
const unsigned short* wctype_map_ptr;
const wchar_t* wupper_map_ptr;
const wchar_t* wlower_map_ptr;
__decode_mbyte decode_mb;
__encode_mbyte encode_wc;
};
struct __locale {
struct __locale* next_locale;
char locale_name[48];
struct _loc_coll_cmpt* coll_cmpt_ptr;
struct _loc_ctype_cmpt* ctype_cmpt_ptr;
struct _loc_mon_cmpt* mon_cmpt_ptr;
struct _loc_num_cmpt* num_cmpt_ptr;
struct _loc_time_cmpt* time_cmpt_ptr;
};
extern struct __locale _current_locale;
extern struct lconv __lconv;
#ifdef __cplusplus
}
#endif
#endif