compiler: Updated bootstrap, precompiled parsers and i18n templates
[sdk] / compiler / bootstrap / ecere / bootstrap / i18n.c
1 #if defined(__GNUC__)
2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #ifndef _WIN32
5 #define __declspec(x)
6 #endif
7 #elif defined(__TINYC__)
8 #include <stdarg.h>
9 #define __builtin_va_list va_list
10 #define __builtin_va_start va_start
11 #define __builtin_va_end va_end
12 #ifdef _WIN32
13 #define strcasecmp stricmp
14 #define strncasecmp strnicmp
15 #define __declspec(x) __attribute__((x))
16 #else
17 #define __declspec(x)
18 #endif
19 typedef long long int64;
20 typedef unsigned long long uint64;
21 #else
22 typedef __int64 int64;
23 typedef unsigned __int64 uint64;
24 #endif
25 #ifdef __BIG_ENDIAN__
26 #define __ENDIAN_PAD(x) (8 - (x))
27 #else
28 #define __ENDIAN_PAD(x) 0
29 #endif
30 #ifdef __MINGW32__
31 #ifdef _WIN64
32 typedef unsigned long long int uintptr_t;
33 typedef long long int intptr_t;
34 #else
35 typedef unsigned int uintptr_t;
36 typedef int intptr_t;
37 #endif
38 #else
39 #include <stdint.h>
40 #endif
41 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
42
43 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
44
45 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
46
47 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
48
49 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
50
51 struct __ecereNameSpace__ecere__sys__BTNode;
52
53 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
54
55 struct __ecereNameSpace__ecere__sys__BinaryTree
56 {
57 struct __ecereNameSpace__ecere__sys__BTNode * root;
58 int count;
59 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
60 void (*  FreeKey)(void *  key);
61 } __attribute__ ((gcc_struct));
62
63 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
64
65 struct __ecereNameSpace__ecere__sys__OldList
66 {
67 void *  first;
68 void *  last;
69 int count;
70 unsigned int offset;
71 unsigned int circ;
72 } __attribute__ ((gcc_struct));
73
74 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
75
76 struct __ecereNameSpace__ecere__com__Class
77 {
78 struct __ecereNameSpace__ecere__com__Class * prev;
79 struct __ecereNameSpace__ecere__com__Class * next;
80 char *  name;
81 int offset;
82 int structSize;
83 int (* *  _vTbl)();
84 int vTblSize;
85 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
86 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
87 int offsetClass;
88 int sizeClass;
89 struct __ecereNameSpace__ecere__com__Class * base;
90 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
91 struct __ecereNameSpace__ecere__sys__BinaryTree members;
92 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
93 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
94 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
95 struct __ecereNameSpace__ecere__sys__OldList derivatives;
96 int memberID;
97 int startMemberID;
98 int type;
99 struct __ecereNameSpace__ecere__com__Instance * module;
100 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
101 char *  dataTypeString;
102 struct __ecereNameSpace__ecere__com__Instance * dataType;
103 int typeSize;
104 int defaultAlignment;
105 void (*  Initialize)();
106 int memberOffset;
107 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
108 char *  designerClass;
109 unsigned int noExpansion;
110 char *  defaultProperty;
111 unsigned int comRedefinition;
112 int count;
113 unsigned int isRemote;
114 unsigned int internalDecl;
115 void *  data;
116 unsigned int computeSize;
117 int structAlignment;
118 int destructionWatchOffset;
119 unsigned int fixed;
120 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
121 int inheritanceAccess;
122 char *  fullName;
123 void *  symbol;
124 struct __ecereNameSpace__ecere__sys__OldList conversions;
125 struct __ecereNameSpace__ecere__sys__OldList templateParams;
126 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
127 struct __ecereNameSpace__ecere__com__Class * templateClass;
128 struct __ecereNameSpace__ecere__sys__OldList templatized;
129 int numParams;
130 } __attribute__ ((gcc_struct));
131
132 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name);
133
134 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
135
136 struct __ecereNameSpace__ecere__com__Instance
137 {
138 int (* *  _vTbl)();
139 struct __ecereNameSpace__ecere__com__Class * _class;
140 int _refCount;
141 } __attribute__ ((gcc_struct));
142
143 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
144
145 struct __ecereNameSpace__ecere__com__Property
146 {
147 struct __ecereNameSpace__ecere__com__Property * prev;
148 struct __ecereNameSpace__ecere__com__Property * next;
149 char *  name;
150 unsigned int isProperty;
151 int memberAccess;
152 int id;
153 struct __ecereNameSpace__ecere__com__Class * _class;
154 char *  dataTypeString;
155 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
156 struct __ecereNameSpace__ecere__com__Instance * dataType;
157 void (*  Set)();
158 int (*  Get)();
159 unsigned int (*  IsSet)();
160 void *  data;
161 void *  symbol;
162 int vid;
163 unsigned int conversion;
164 unsigned int watcherOffset;
165 char *  category;
166 unsigned int compiled;
167 unsigned int selfWatchable;
168 unsigned int isWatchable;
169 } __attribute__ ((gcc_struct));
170
171 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
172
173 struct __ecereNameSpace__ecere__com__DataMember
174 {
175 struct __ecereNameSpace__ecere__com__DataMember * prev;
176 struct __ecereNameSpace__ecere__com__DataMember * next;
177 char *  name;
178 unsigned int isProperty;
179 int memberAccess;
180 int id;
181 struct __ecereNameSpace__ecere__com__Class * _class;
182 char *  dataTypeString;
183 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
184 struct __ecereNameSpace__ecere__com__Instance * dataType;
185 int type;
186 int offset;
187 int memberID;
188 struct __ecereNameSpace__ecere__sys__OldList members;
189 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
190 int memberOffset;
191 int structAlignment;
192 } __attribute__ ((gcc_struct));
193
194 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
195
196 struct __ecereNameSpace__ecere__com__Method
197 {
198 char *  name;
199 struct __ecereNameSpace__ecere__com__Method * parent;
200 struct __ecereNameSpace__ecere__com__Method * left;
201 struct __ecereNameSpace__ecere__com__Method * right;
202 int depth;
203 int (*  function)();
204 int vid;
205 int type;
206 struct __ecereNameSpace__ecere__com__Class * _class;
207 void *  symbol;
208 char *  dataTypeString;
209 struct __ecereNameSpace__ecere__com__Instance * dataType;
210 int memberAccess;
211 } __attribute__ ((gcc_struct));
212
213 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
214
215 struct __ecereNameSpace__ecere__com__SerialBuffer
216 {
217 unsigned char *  _buffer;
218 unsigned int count;
219 unsigned int _size;
220 unsigned int pos;
221 } __attribute__ ((gcc_struct));
222
223 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
224
225 struct __ecereNameSpace__ecere__com__DataValue
226 {
227 union
228 {
229 char c;
230 unsigned char uc;
231 short s;
232 unsigned short us;
233 int i;
234 unsigned int ui;
235 void *  p;
236 float f;
237 double d;
238 long long i64;
239 uint64 ui64;
240 } __attribute__ ((gcc_struct));
241 } __attribute__ ((gcc_struct));
242
243 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
244
245 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
246 {
247 union
248 {
249 struct
250 {
251 char *  dataTypeString;
252 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
253 } __attribute__ ((gcc_struct));
254 struct __ecereNameSpace__ecere__com__DataValue expression;
255 struct
256 {
257 char *  memberString;
258 union
259 {
260 struct __ecereNameSpace__ecere__com__DataMember * member;
261 struct __ecereNameSpace__ecere__com__Property * prop;
262 struct __ecereNameSpace__ecere__com__Method * method;
263 } __attribute__ ((gcc_struct));
264 } __attribute__ ((gcc_struct));
265 } __attribute__ ((gcc_struct));
266 } __attribute__ ((gcc_struct));
267
268 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__moduleMaps;
269
270 extern char *  __ecereNameSpace__ecere__sys__GetEnvironment(char *  envName, char *  envValue, int max);
271
272 extern char *  strcpy(char * , const char * );
273
274 extern char *  strstr(char * , const char * );
275
276 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
277
278 struct __ecereNameSpace__ecere__com__NameSpace
279 {
280 char *  name;
281 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
282 struct __ecereNameSpace__ecere__com__NameSpace *  left;
283 struct __ecereNameSpace__ecere__com__NameSpace *  right;
284 int depth;
285 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
286 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
287 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
288 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
289 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
290 } __attribute__ ((gcc_struct));
291
292 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
293
294 struct __ecereNameSpace__ecere__com__Module
295 {
296 struct __ecereNameSpace__ecere__com__Instance * application;
297 struct __ecereNameSpace__ecere__sys__OldList classes;
298 struct __ecereNameSpace__ecere__sys__OldList defines;
299 struct __ecereNameSpace__ecere__sys__OldList functions;
300 struct __ecereNameSpace__ecere__sys__OldList modules;
301 struct __ecereNameSpace__ecere__com__Instance * prev;
302 struct __ecereNameSpace__ecere__com__Instance * next;
303 char *  name;
304 void *  library;
305 void *  Unload;
306 int importType;
307 int origImportType;
308 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
309 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
310 } __attribute__ ((gcc_struct));
311
312 extern int sprintf(char * , char * , ...);
313
314 extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__FileOpen(char *  fileName, int mode);
315
316 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IteratorPointer;
317
318 struct __ecereNameSpace__ecere__com__IteratorPointer;
319
320 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MapIterator;
321
322 struct __ecereNameSpace__ecere__com__MapIterator
323 {
324 struct __ecereNameSpace__ecere__com__Instance * container;
325 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
326 } __attribute__ ((gcc_struct));
327
328 extern int printf(char * , ...);
329
330 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__ecere__com__Map_TPL_String__String___;
331
332 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
333
334 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__String_;
335
336 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
337
338 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_map(struct __ecereNameSpace__ecere__com__MapIterator * this);
339
340 void __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(struct __ecereNameSpace__ecere__com__MapIterator * this, struct __ecereNameSpace__ecere__com__Instance * value);
341
342 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__com__MapIterator_map;
343
344 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 index, unsigned int create);
345
346 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
347
348 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Iterator;
349
350 struct __ecereNameSpace__ecere__com__Iterator
351 {
352 struct __ecereNameSpace__ecere__com__Instance * container;
353 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
354 } __attribute__ ((gcc_struct));
355
356 uint64 __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(struct __ecereNameSpace__ecere__com__Iterator * this);
357
358 void __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value);
359
360 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__com__Iterator_data;
361
362 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
363
364 void __ecereNameSpace__ecere__LoadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
365 {
366 struct __ecereNameSpace__ecere__com__Instance * f;
367 char fileName[797];
368 char lcAll[256];
369 char language[256];
370 char lang[256];
371 char lcMessages[256];
372 char * locale = (((void *)0));
373
374 if(__ecereNameSpace__ecere__sys__GetEnvironment("LANGUAGE", language, sizeof language))
375 locale = language;
376 else if(__ecereNameSpace__ecere__sys__GetEnvironment("LC_ALL", lcAll, sizeof lcAll))
377 locale = lcAll;
378 else if(__ecereNameSpace__ecere__sys__GetEnvironment("LC_MESSAGES", lcMessages, sizeof lcMessages))
379 locale = lcMessages;
380 else if(__ecereNameSpace__ecere__sys__GetEnvironment("LANG", lang, sizeof lang))
381 locale = lang;
382 if(locale)
383 {
384 char * dot;
385
386 if(language != locale)
387 strcpy(language, locale);
388 dot = strstr(language, ".");
389 if(dot)
390 *dot = (char)0;
391 locale = language;
392 }
393 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name)
394 sprintf(fileName, "<:%s>locale/%s/LC_MESSAGES/%s.mo", ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, locale, name);
395 else
396 sprintf(fileName, ":locale/%s/LC_MESSAGES/%s.mo", locale, name);
397 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
398 if(!f)
399 {
400 sprintf(fileName, "locale/%s/LC_MESSAGES/%s.mo", locale, name);
401 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
402 }
403 if(!f)
404 {
405 sprintf(fileName, "/usr/share/locale/%s/LC_MESSAGES/%s.mo", locale, name);
406 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
407 }
408 if(f)
409 {
410 unsigned int magic = 0;
411
412 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &magic, sizeof(unsigned int), 1);
413 if(magic == 0x950412de || magic == 0xde120495)
414 {
415 struct __ecereNameSpace__ecere__com__Instance * textMap;
416 unsigned int swap = magic != 0x950412de;
417 unsigned int revision = 0;
418 unsigned int numStrings = 0;
419 unsigned int origStrings = 0, transStrings = 0;
420 unsigned int hashingSize = 0, hashingOffset = 0;
421 int c;
422
423 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &revision, sizeof(unsigned int), 1);
424 if(swap)
425 ((((revision) & 0x000000ff) << 24) | (((revision) & 0x0000ff00) << 8) | (((revision) & 0x00ff0000) >> 8) | (((revision) & 0xff000000) >> 24));
426 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &numStrings, sizeof(unsigned int), 1);
427 if(swap)
428 ((((numStrings) & 0x000000ff) << 24) | (((numStrings) & 0x0000ff00) << 8) | (((numStrings) & 0x00ff0000) >> 8) | (((numStrings) & 0xff000000) >> 24));
429 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &origStrings, sizeof(unsigned int), 1);
430 if(swap)
431 ((((origStrings) & 0x000000ff) << 24) | (((origStrings) & 0x0000ff00) << 8) | (((origStrings) & 0x00ff0000) >> 8) | (((origStrings) & 0xff000000) >> 24));
432 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &transStrings, sizeof(unsigned int), 1);
433 if(swap)
434 ((((transStrings) & 0x000000ff) << 24) | (((transStrings) & 0x0000ff00) << 8) | (((transStrings) & 0x00ff0000) >> 8) | (((transStrings) & 0xff000000) >> 24));
435 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &hashingSize, sizeof(unsigned int), 1);
436 if(swap)
437 ((((hashingSize) & 0x000000ff) << 24) | (((hashingSize) & 0x0000ff00) << 8) | (((hashingSize) & 0x00ff0000) >> 8) | (((hashingSize) & 0xff000000) >> 24));
438 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &hashingOffset, sizeof(unsigned int), 1);
439 if(swap)
440 ((((hashingOffset) & 0x000000ff) << 24) | (((hashingOffset) & 0x0000ff00) << 8) | (((hashingOffset) & 0x00ff0000) >> 8) | (((hashingOffset) & 0xff000000) >> 24));
441 if(!__ecereNameSpace__ecere__moduleMaps)
442 __ecereNameSpace__ecere__moduleMaps = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__ecere__com__Map_TPL_String__String___);
443 {
444 struct __ecereNameSpace__ecere__com__MapIterator it = (it.container = (void *)0, it.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&it, __ecereNameSpace__ecere__moduleMaps), it);
445
446 if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&it, (uint64)(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name), 0x0))
447 (__ecereNameSpace__ecere__com__eInstance_DecRef(__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&it)), __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&it, 0));
448 }
449 __extension__ ({
450 struct __ecereNameSpace__ecere__com__Iterator __internalIterator = 
451 {
452 __ecereNameSpace__ecere__moduleMaps, 0
453 };
454
455 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name))), 0x1);
456 __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&__internalIterator, textMap = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__String_));
457 });
458 for(c = 0; c < numStrings; c++)
459 {
460 unsigned int len = 0, offset = 0;
461 char * original = (((void *)0)), * translated = (((void *)0));
462
463 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, origStrings + c * 2 * sizeof(unsigned int), 0);
464 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &len, sizeof(unsigned int), 1);
465 if(swap)
466 ((((len) & 0x000000ff) << 24) | (((len) & 0x0000ff00) << 8) | (((len) & 0x00ff0000) >> 8) | (((len) & 0xff000000) >> 24));
467 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &offset, sizeof(unsigned int), 1);
468 if(swap)
469 ((((offset) & 0x000000ff) << 24) | (((offset) & 0x0000ff00) << 8) | (((offset) & 0x00ff0000) >> 8) | (((offset) & 0xff000000) >> 24));
470 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, offset, 0);
471 original = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (len + 1));
472 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, original, 1, len + 1);
473 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, transStrings + c * 2 * sizeof(unsigned int), 0);
474 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &len, sizeof(unsigned int), 1);
475 if(swap)
476 ((((len) & 0x000000ff) << 24) | (((len) & 0x0000ff00) << 8) | (((len) & 0x00ff0000) >> 8) | (((len) & 0xff000000) >> 24));
477 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, &offset, sizeof(unsigned int), 1);
478 if(swap)
479 ((((offset) & 0x000000ff) << 24) | (((offset) & 0x0000ff00) << 8) | (((offset) & 0x00ff0000) >> 8) | (((offset) & 0xff000000) >> 24));
480 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, offset, 0);
481 translated = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (len + 1));
482 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, translated, 1, len + 1);
483 if(len)
484 {
485 struct __ecereNameSpace__ecere__com__MapIterator it = (it.container = (void *)0, it.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&it, textMap), it);
486
487 if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&it, (uint64)(original), 0x0))
488 (__ecereNameSpace__ecere__com__eSystem_Delete(translated), translated = 0);
489 else
490 __extension__ ({
491 struct __ecereNameSpace__ecere__com__Iterator __internalIterator = 
492 {
493 textMap, 0
494 };
495
496 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(original))), 0x1);
497 __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&__internalIterator, translated);
498 });
499 }
500 else
501 (__ecereNameSpace__ecere__com__eSystem_Delete(translated), translated = 0);
502 (__ecereNameSpace__ecere__com__eSystem_Delete(original), original = 0);
503 }
504 }
505 else
506 {
507 printf("Invalid format while loading %s\n", fileName);
508 }
509 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
510 }
511 }
512
513 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Free;
514
515 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Delete;
516
517 void __ecereNameSpace__ecere__UnloadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module)
518 {
519 struct __ecereNameSpace__ecere__com__MapIterator it = (it.container = (void *)0, it.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&it, __ecereNameSpace__ecere__moduleMaps), it);
520
521 if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&it, (uint64)(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name), 0x0))
522 {
523 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&it))->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Free])(((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&it)));
524 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * i))__ecereNameSpace__ecere__moduleMaps->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Delete])(__ecereNameSpace__ecere__moduleMaps, it.pointer);
525 }
526 }
527
528 char * __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char * string, char * stringAndContext)
529 {
530 struct __ecereNameSpace__ecere__com__Instance * textMap = __ecereNameSpace__ecere__moduleMaps ? (__extension__ ({
531 struct __ecereNameSpace__ecere__com__Iterator __internalIterator = 
532 {
533 __ecereNameSpace__ecere__moduleMaps, 0
534 };
535
536 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name))), 0x0);
537 ((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&__internalIterator));
538 })) : (((void *)0));
539 char * result = textMap ? (__extension__ ({
540 struct __ecereNameSpace__ecere__com__Iterator __internalIterator = 
541 {
542 textMap, 0
543 };
544
545 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(stringAndContext ? stringAndContext : string))), 0x0);
546 ((char *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&__internalIterator));
547 })) : string;
548
549 return (result && result[0]) ? result : string;
550 }
551
552 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
553
554 struct __ecereNameSpace__ecere__com__GlobalFunction;
555
556 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char *  name, char *  type, void *  func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
557
558 void __ecereRegisterModule_i18n(struct __ecereNameSpace__ecere__com__Instance * module)
559 {
560 struct __ecereNameSpace__ecere__com__Class * class;
561
562 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::LoadTranslatedStrings", "void ecere::LoadTranslatedStrings(ecere::com::Module module, char * name)", __ecereNameSpace__ecere__LoadTranslatedStrings, module, 4);
563 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::UnloadTranslatedStrings", "void ecere::UnloadTranslatedStrings(ecere::com::Module module)", __ecereNameSpace__ecere__UnloadTranslatedStrings, module, 4);
564 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::GetTranslatedString", "char * ecere::GetTranslatedString(ecere::com::Module module, char * string, char * stringAndContext)", __ecereNameSpace__ecere__GetTranslatedString, module, 4);
565 }
566
567 void __ecereUnregisterModule_i18n(struct __ecereNameSpace__ecere__com__Instance * module)
568 {
569
570 }
571
572 void __ecereCreateModuleInstances_i18n()
573 {
574 __ecereNameSpace__ecere__moduleMaps = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__ecere__com__Map_TPL_String__String___);
575 __ecereNameSpace__ecere__com__eInstance_IncRef(__ecereNameSpace__ecere__moduleMaps);
576 }
577
578 void __ecereDestroyModuleInstances_i18n()
579 {
580 (__ecereNameSpace__ecere__com__eInstance_DecRef(__ecereNameSpace__ecere__moduleMaps), __ecereNameSpace__ecere__moduleMaps = 0);
581 }
582