source: trunk/lib/unicode/cptable.c

Last change on this file was 21927, checked in by dmik, 14 years ago

Fix build breaks with the newest GCC 4.4.6 from GIT.

In particular, GCC is now strict about matching the calling convention
of the prototype (argument) and the real function used.

File size: 4.5 KB
Line 
1/*
2 * Codepage tables
3 *
4 * Copyright 2000 Alexandre Julliard
5 */
6
7#include <stdlib.h>
8
9#include "wine/unicode.h"
10
11/* Everything below this line is generated automatically by cpmap.pl */
12/* ### cpmap begin ### */
13extern union cptable cptable_037;
14extern union cptable cptable_042;
15extern union cptable cptable_424;
16extern union cptable cptable_437;
17extern union cptable cptable_500;
18extern union cptable cptable_737;
19extern union cptable cptable_775;
20extern union cptable cptable_850;
21extern union cptable cptable_852;
22extern union cptable cptable_855;
23extern union cptable cptable_856;
24extern union cptable cptable_857;
25extern union cptable cptable_860;
26extern union cptable cptable_861;
27extern union cptable cptable_862;
28extern union cptable cptable_863;
29extern union cptable cptable_864;
30extern union cptable cptable_865;
31extern union cptable cptable_866;
32extern union cptable cptable_1125;
33extern union cptable cptable_869;
34extern union cptable cptable_874;
35extern union cptable cptable_875;
36extern union cptable cptable_878;
37extern union cptable cptable_932;
38extern union cptable cptable_936;
39extern union cptable cptable_949;
40extern union cptable cptable_950;
41extern union cptable cptable_1006;
42extern union cptable cptable_1026;
43extern union cptable cptable_1250;
44extern union cptable cptable_1251;
45extern union cptable cptable_1252;
46extern union cptable cptable_1253;
47extern union cptable cptable_1254;
48extern union cptable cptable_1255;
49extern union cptable cptable_1256;
50extern union cptable cptable_1257;
51extern union cptable cptable_1258;
52extern union cptable cptable_10000;
53extern union cptable cptable_10006;
54extern union cptable cptable_10007;
55extern union cptable cptable_10029;
56extern union cptable cptable_10079;
57extern union cptable cptable_10081;
58extern union cptable cptable_20866;
59extern union cptable cptable_28591;
60extern union cptable cptable_28592;
61extern union cptable cptable_28593;
62extern union cptable cptable_28594;
63extern union cptable cptable_28595;
64extern union cptable cptable_28596;
65extern union cptable cptable_28597;
66extern union cptable cptable_28598;
67extern union cptable cptable_28599;
68extern union cptable cptable_28600;
69extern union cptable cptable_28603;
70extern union cptable cptable_28604;
71extern union cptable cptable_28605;
72
73static const union cptable * const cptables[59] =
74{
75 &cptable_037,
76 &cptable_042,
77 &cptable_424,
78 &cptable_437,
79 &cptable_500,
80 &cptable_737,
81 &cptable_775,
82 &cptable_850,
83 &cptable_852,
84 &cptable_855,
85 &cptable_856,
86 &cptable_857,
87 &cptable_860,
88 &cptable_861,
89 &cptable_862,
90 &cptable_863,
91 &cptable_864,
92 &cptable_865,
93 &cptable_866,
94 &cptable_1125,
95 &cptable_869,
96 &cptable_874,
97 &cptable_875,
98 &cptable_878,
99 &cptable_932,
100 &cptable_936,
101 &cptable_949,
102 &cptable_950,
103 &cptable_1006,
104 &cptable_1026,
105 &cptable_1250,
106 &cptable_1251,
107 &cptable_1252,
108 &cptable_1253,
109 &cptable_1254,
110 &cptable_1255,
111 &cptable_1256,
112 &cptable_1257,
113 &cptable_1258,
114 &cptable_10000,
115 &cptable_10006,
116 &cptable_10007,
117 &cptable_10029,
118 &cptable_10079,
119 &cptable_10081,
120 &cptable_20866,
121 &cptable_28591,
122 &cptable_28592,
123 &cptable_28593,
124 &cptable_28594,
125 &cptable_28595,
126 &cptable_28596,
127 &cptable_28597,
128 &cptable_28598,
129 &cptable_28599,
130 &cptable_28600,
131 &cptable_28603,
132 &cptable_28604,
133 &cptable_28605,
134};
135/* ### cpmap end ### */
136/* Everything above this line is generated automatically by cpmap.pl */
137
138#define NB_CODEPAGES (sizeof(cptables)/sizeof(cptables[0]))
139
140
141#if defined(__IBMCPP__) || defined(__IBMC__)
142static int _LNK_CONV cmp_codepage( const void *codepage, const void *entry )
143#else
144static int cmp_codepage( const void *codepage, const void *entry )
145#endif
146{
147 return (unsigned int)codepage - (*(union cptable **)entry)->info.codepage;
148}
149
150
151/* get the table of a given code page */
152_K32CONV const union cptable *cp_get_table( unsigned int codepage )
153{
154 const union cptable **res;
155
156#ifdef __WIN32OS2__
157 if (!(res = (const union cptable **)bsearch( (void *)codepage, cptables, NB_CODEPAGES,
158 sizeof(cptables[0]), cmp_codepage ))) return NULL;
159#else
160 if (!(res = bsearch( (void *)codepage, cptables, NB_CODEPAGES,
161 sizeof(cptables[0]), cmp_codepage ))) return NULL;
162#endif
163 return *res;
164}
165
166
167/* enum valid codepages */
168_K32CONV const union cptable *cp_enum_table( unsigned int index )
169{
170 if (index >= NB_CODEPAGES) return NULL;
171 return cptables[index];
172}
Note: See TracBrowser for help on using the repository browser.