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