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