1*b30d1939SAndy Fiddaman /* : : generated by cmd/ast/tools/lcgen : : */ 2*b30d1939SAndy Fiddaman #pragma prototyped 3*b30d1939SAndy Fiddaman 4*b30d1939SAndy Fiddaman #ifndef _LC_H 5*b30d1939SAndy Fiddaman #define _LC_H 1 6*b30d1939SAndy Fiddaman 7*b30d1939SAndy Fiddaman #include <ast.h> 8*b30d1939SAndy Fiddaman 9*b30d1939SAndy Fiddaman #define LC_abbreviated 0x00001 10*b30d1939SAndy Fiddaman #define LC_checked 0x00002 11*b30d1939SAndy Fiddaman #define LC_debug 0x00004 12*b30d1939SAndy Fiddaman #define LC_default 0x00008 13*b30d1939SAndy Fiddaman #define LC_defined 0x00010 14*b30d1939SAndy Fiddaman #define LC_local 0x00020 15*b30d1939SAndy Fiddaman #define LC_primary 0x00040 16*b30d1939SAndy Fiddaman #define LC_qualified 0x00080 17*b30d1939SAndy Fiddaman #define LC_undefined 0x00100 18*b30d1939SAndy Fiddaman #define LC_utf8 0x00200 19*b30d1939SAndy Fiddaman #define LC_verbose 0x00400 20*b30d1939SAndy Fiddaman #define LC_setlocale 0x10000 21*b30d1939SAndy Fiddaman #define LC_setenv 0x20000 22*b30d1939SAndy Fiddaman #define LC_user 0x40000 23*b30d1939SAndy Fiddaman 24*b30d1939SAndy Fiddaman #define LC_language_attribute_max 2 25*b30d1939SAndy Fiddaman #define LC_territory_language_max 4 26*b30d1939SAndy Fiddaman 27*b30d1939SAndy Fiddaman struct Lc_s; 28*b30d1939SAndy Fiddaman 29*b30d1939SAndy Fiddaman typedef struct Lc_info_s 30*b30d1939SAndy Fiddaman { 31*b30d1939SAndy Fiddaman const struct Lc_s* lc; 32*b30d1939SAndy Fiddaman unsigned long number; 33*b30d1939SAndy Fiddaman void* data; 34*b30d1939SAndy Fiddaman } Lc_info_t; 35*b30d1939SAndy Fiddaman 36*b30d1939SAndy Fiddaman typedef struct Lc_attribute_s 37*b30d1939SAndy Fiddaman { 38*b30d1939SAndy Fiddaman const char* name; 39*b30d1939SAndy Fiddaman unsigned long flags; 40*b30d1939SAndy Fiddaman unsigned long index; 41*b30d1939SAndy Fiddaman } Lc_attribute_t; 42*b30d1939SAndy Fiddaman 43*b30d1939SAndy Fiddaman typedef struct Lc_charset_s 44*b30d1939SAndy Fiddaman { 45*b30d1939SAndy Fiddaman const char* code; 46*b30d1939SAndy Fiddaman const char* alternates; 47*b30d1939SAndy Fiddaman const char* ms; 48*b30d1939SAndy Fiddaman unsigned long index; 49*b30d1939SAndy Fiddaman } Lc_charset_t; 50*b30d1939SAndy Fiddaman 51*b30d1939SAndy Fiddaman typedef struct Lc_language_s 52*b30d1939SAndy Fiddaman { 53*b30d1939SAndy Fiddaman const char* code; 54*b30d1939SAndy Fiddaman const char* name; 55*b30d1939SAndy Fiddaman const char* alternates; 56*b30d1939SAndy Fiddaman const Lc_charset_t* charset; 57*b30d1939SAndy Fiddaman unsigned long flags; 58*b30d1939SAndy Fiddaman unsigned long index; 59*b30d1939SAndy Fiddaman const Lc_attribute_t* attributes[LC_language_attribute_max]; 60*b30d1939SAndy Fiddaman } Lc_language_t; 61*b30d1939SAndy Fiddaman 62*b30d1939SAndy Fiddaman typedef struct Lc_territory_s 63*b30d1939SAndy Fiddaman { 64*b30d1939SAndy Fiddaman const char* code; 65*b30d1939SAndy Fiddaman const char* name; 66*b30d1939SAndy Fiddaman unsigned long flags; 67*b30d1939SAndy Fiddaman unsigned long index; 68*b30d1939SAndy Fiddaman const Lc_language_t* languages[LC_territory_language_max]; 69*b30d1939SAndy Fiddaman #ifdef _LC_TERRITORY_PRIVATE_ 70*b30d1939SAndy Fiddaman _LC_TERRITORY_PRIVATE_ 71*b30d1939SAndy Fiddaman #endif 72*b30d1939SAndy Fiddaman } Lc_territory_t; 73*b30d1939SAndy Fiddaman 74*b30d1939SAndy Fiddaman typedef struct Lc_map_s 75*b30d1939SAndy Fiddaman { 76*b30d1939SAndy Fiddaman const char* code; 77*b30d1939SAndy Fiddaman const Lc_language_t* language; 78*b30d1939SAndy Fiddaman const Lc_territory_t* territory; 79*b30d1939SAndy Fiddaman const Lc_charset_t* charset; 80*b30d1939SAndy Fiddaman const Lc_attribute_t* attribute; 81*b30d1939SAndy Fiddaman } Lc_map_t; 82*b30d1939SAndy Fiddaman 83*b30d1939SAndy Fiddaman typedef struct Lc_attribute_list_s 84*b30d1939SAndy Fiddaman { 85*b30d1939SAndy Fiddaman struct Lc_attribute_list_s* next; 86*b30d1939SAndy Fiddaman const Lc_attribute_t* attribute; 87*b30d1939SAndy Fiddaman } Lc_attribute_list_t; 88*b30d1939SAndy Fiddaman 89*b30d1939SAndy Fiddaman typedef struct Lc_s 90*b30d1939SAndy Fiddaman { 91*b30d1939SAndy Fiddaman const char* name; 92*b30d1939SAndy Fiddaman const char* code; 93*b30d1939SAndy Fiddaman const Lc_language_t* language; 94*b30d1939SAndy Fiddaman const Lc_territory_t* territory; 95*b30d1939SAndy Fiddaman const Lc_charset_t* charset; 96*b30d1939SAndy Fiddaman const Lc_attribute_list_t* attributes; 97*b30d1939SAndy Fiddaman unsigned long flags; 98*b30d1939SAndy Fiddaman unsigned long index; 99*b30d1939SAndy Fiddaman #ifdef _LC_PRIVATE_ 100*b30d1939SAndy Fiddaman _LC_PRIVATE_ 101*b30d1939SAndy Fiddaman #endif 102*b30d1939SAndy Fiddaman } Lc_t; 103*b30d1939SAndy Fiddaman 104*b30d1939SAndy Fiddaman struct Lc_category_s; 105*b30d1939SAndy Fiddaman 106*b30d1939SAndy Fiddaman typedef int (*Lc_category_set_f)(struct Lc_category_s*); 107*b30d1939SAndy Fiddaman 108*b30d1939SAndy Fiddaman typedef struct Lc_category_s 109*b30d1939SAndy Fiddaman { 110*b30d1939SAndy Fiddaman const char* name; 111*b30d1939SAndy Fiddaman int external; 112*b30d1939SAndy Fiddaman int internal; 113*b30d1939SAndy Fiddaman Lc_category_set_f setf; 114*b30d1939SAndy Fiddaman Lc_t* prev; 115*b30d1939SAndy Fiddaman unsigned int flags; 116*b30d1939SAndy Fiddaman } Lc_category_t; 117*b30d1939SAndy Fiddaman 118*b30d1939SAndy Fiddaman #if _BLD_ast && defined(__EXPORT__) 119*b30d1939SAndy Fiddaman #define extern __EXPORT__ 120*b30d1939SAndy Fiddaman #endif 121*b30d1939SAndy Fiddaman 122*b30d1939SAndy Fiddaman extern size_t lccanon(Lc_t*, unsigned long flags, char*, size_t); 123*b30d1939SAndy Fiddaman extern Lc_category_t* lccategories(void); 124*b30d1939SAndy Fiddaman extern int lcindex(int, int); 125*b30d1939SAndy Fiddaman extern Lc_info_t* lcinfo(int); 126*b30d1939SAndy Fiddaman extern Lc_t* lcmake(const char*); 127*b30d1939SAndy Fiddaman extern Lc_t* lcscan(Lc_t*); 128*b30d1939SAndy Fiddaman 129*b30d1939SAndy Fiddaman #undef extern 130*b30d1939SAndy Fiddaman 131*b30d1939SAndy Fiddaman #endif 132