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