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