i18n: (#858) Handling localization for libraries within static executables
authorJerome St-Louis <jerome@ecere.com>
Fri, 21 Mar 2014 02:33:52 +0000 (22:33 -0400)
committerJerome St-Louis <jerome@ecere.com>
Fri, 21 Mar 2014 02:35:12 +0000 (22:35 -0400)
- Changed i18n functions to use String instead of Module
- Changed layout back to e.g. ide/locale/zh_CN.po

203 files changed:
compiler/bootstrap/ecc/bootstrap/ecc.c
compiler/bootstrap/ecc/bootstrap/ecc.main.c
compiler/bootstrap/ecere/bootstrap/System.c
compiler/bootstrap/ecere/bootstrap/ecere.main.c
compiler/bootstrap/ecere/bootstrap/i18n.c
compiler/bootstrap/ecp/bootstrap/ecp.c
compiler/bootstrap/ecp/bootstrap/ecp.main.c
compiler/bootstrap/ecs/bootstrap/ecs.c
compiler/bootstrap/ecs/bootstrap/ecs.main.c
compiler/bootstrap/libec/bootstrap/ast.c
compiler/bootstrap/libec/bootstrap/dbpass.c
compiler/bootstrap/libec/bootstrap/ec.main.c
compiler/bootstrap/libec/bootstrap/ecdefs.c
compiler/bootstrap/libec/bootstrap/firstPass.c
compiler/bootstrap/libec/bootstrap/grammar.c
compiler/bootstrap/libec/bootstrap/lexer.c
compiler/bootstrap/libec/bootstrap/loadSymbols.c
compiler/bootstrap/libec/bootstrap/pass0.c
compiler/bootstrap/libec/bootstrap/pass1.c
compiler/bootstrap/libec/bootstrap/pass15.c
compiler/bootstrap/libec/bootstrap/pass16.c
compiler/bootstrap/libec/bootstrap/pass2.c
compiler/bootstrap/libec/bootstrap/pass3.c
compiler/bootstrap/libec/bootstrap/shortcuts.c
compiler/ecc/Makefile
compiler/ecc/ecc.ec
compiler/ecc/ecc.epj
compiler/ecc/locale/ecc.pot [moved from compiler/ecc/locale/ecc/ecc.pot with 100% similarity]
compiler/ecc/locale/es.mo [moved from compiler/ecc/locale/ecc/es.mo with 100% similarity]
compiler/ecc/locale/es.po [moved from compiler/ecc/locale/ecc/es.po with 100% similarity]
compiler/ecc/locale/he.mo [moved from compiler/ecc/locale/ecc/he.mo with 100% similarity]
compiler/ecc/locale/he.po [moved from compiler/ecc/locale/ecc/he.po with 100% similarity]
compiler/ecc/locale/pt_BR.mo [moved from compiler/ecc/locale/ecc/pt_BR.mo with 100% similarity]
compiler/ecc/locale/pt_BR.po [moved from compiler/ecc/locale/ecc/pt_BR.po with 100% similarity]
compiler/ecc/locale/ru.mo [moved from compiler/ecc/locale/ecc/ru.mo with 100% similarity]
compiler/ecc/locale/ru.po [moved from compiler/ecc/locale/ecc/ru.po with 100% similarity]
compiler/ecc/locale/vi.mo [moved from compiler/ecc/locale/ecc/vi.mo with 100% similarity]
compiler/ecc/locale/vi.po [moved from compiler/ecc/locale/ecc/vi.po with 100% similarity]
compiler/ecc/locale/zh_CN.mo [moved from compiler/ecc/locale/ecc/zh_CN.mo with 100% similarity]
compiler/ecc/locale/zh_CN.po [moved from compiler/ecc/locale/ecc/zh_CN.po with 100% similarity]
compiler/ecp/Makefile
compiler/ecp/ecp.ec
compiler/ecp/ecp.epj
compiler/ecp/locale/ecp.pot [moved from compiler/ecp/locale/ecp/ecp.pot with 100% similarity]
compiler/ecp/locale/es.mo [moved from compiler/ecp/locale/ecp/es.mo with 100% similarity]
compiler/ecp/locale/es.po [moved from compiler/ecp/locale/ecp/es.po with 100% similarity]
compiler/ecp/locale/he.mo [moved from compiler/ecp/locale/ecp/he.mo with 100% similarity]
compiler/ecp/locale/he.po [moved from compiler/ecp/locale/ecp/he.po with 100% similarity]
compiler/ecp/locale/pt_BR.mo [moved from compiler/ecp/locale/ecp/pt_BR.mo with 100% similarity]
compiler/ecp/locale/pt_BR.po [moved from compiler/ecp/locale/ecp/pt_BR.po with 100% similarity]
compiler/ecp/locale/ru.mo [moved from compiler/ecp/locale/ecp/ru.mo with 100% similarity]
compiler/ecp/locale/ru.po [moved from compiler/ecp/locale/ecp/ru.po with 100% similarity]
compiler/ecp/locale/zh_CN.mo [moved from compiler/ecp/locale/ecp/zh_CN.mo with 100% similarity]
compiler/ecp/locale/zh_CN.po [moved from compiler/ecp/locale/ecp/zh_CN.po with 100% similarity]
compiler/ecs/Makefile
compiler/ecs/ecs.ec
compiler/ecs/ecs.epj
compiler/ecs/locale/ecs.pot [moved from compiler/ecs/locale/ecs/ecs.pot with 100% similarity]
compiler/ecs/locale/es.mo [moved from compiler/ecs/locale/ecs/es.mo with 100% similarity]
compiler/ecs/locale/es.po [moved from compiler/ecs/locale/ecs/es.po with 100% similarity]
compiler/ecs/locale/he.mo [moved from compiler/ecs/locale/ecs/he.mo with 100% similarity]
compiler/ecs/locale/he.po [moved from compiler/ecs/locale/ecs/he.po with 100% similarity]
compiler/ecs/locale/pt_BR.mo [moved from compiler/ecs/locale/ecs/pt_BR.mo with 100% similarity]
compiler/ecs/locale/pt_BR.po [moved from compiler/ecs/locale/ecs/pt_BR.po with 100% similarity]
compiler/ecs/locale/ru.mo [moved from compiler/ecs/locale/ecs/ru.mo with 100% similarity]
compiler/ecs/locale/ru.po [moved from compiler/ecs/locale/ecs/ru.po with 100% similarity]
compiler/ecs/locale/zh_CN.mo [moved from compiler/ecs/locale/ecs/zh_CN.mo with 100% similarity]
compiler/ecs/locale/zh_CN.po [moved from compiler/ecs/locale/ecs/zh_CN.po with 100% similarity]
compiler/libec/Makefile
compiler/libec/ec.epj
compiler/libec/locale/ec.pot [moved from compiler/libec/locale/ec/ec.pot with 100% similarity]
compiler/libec/locale/es.mo [moved from compiler/libec/locale/ec/es.mo with 100% similarity]
compiler/libec/locale/es.po [moved from compiler/libec/locale/ec/es.po with 100% similarity]
compiler/libec/locale/mr.mo [moved from compiler/libec/locale/ec/mr.mo with 100% similarity]
compiler/libec/locale/mr.po [moved from compiler/libec/locale/ec/mr.po with 100% similarity]
compiler/libec/locale/zh_CN.mo [moved from compiler/libec/locale/ec/zh_CN.mo with 100% similarity]
compiler/libec/locale/zh_CN.po [moved from compiler/libec/locale/ec/zh_CN.po with 100% similarity]
compiler/libec/precompiled/grammar.c
compiler/libec/src/ast.ec
compiler/libec/src/ecdefs.ec
documentor/Makefile
documentor/documentor.epj
documentor/locale/documentor.pot [moved from documentor/locale/documentor/documentor.pot with 100% similarity]
documentor/locale/es.mo [moved from documentor/locale/documentor/es.mo with 100% similarity]
documentor/locale/es.po [moved from documentor/locale/documentor/es.po with 100% similarity]
documentor/locale/pt_BR.mo [moved from documentor/locale/documentor/pt_BR.mo with 100% similarity]
documentor/locale/pt_BR.po [moved from documentor/locale/documentor/pt_BR.po with 100% similarity]
documentor/locale/zh_CN.mo [moved from documentor/locale/documentor/zh_CN.mo with 100% similarity]
documentor/locale/zh_CN.po [moved from documentor/locale/documentor/zh_CN.po with 100% similarity]
ear/cmd/Makefile
ear/cmd/ear.epj
ear/cmd/locale/ear.pot [moved from ear/cmd/locale/ear/ear.pot with 100% similarity]
ear/cmd/locale/es.mo [moved from ear/cmd/locale/ear/es.mo with 100% similarity]
ear/cmd/locale/es.po [moved from ear/cmd/locale/ear/es.po with 100% similarity]
ear/cmd/locale/ru.mo [moved from ear/cmd/locale/ear/ru.mo with 100% similarity]
ear/cmd/locale/ru.po [moved from ear/cmd/locale/ear/ru.po with 100% similarity]
ear/cmd/locale/zh_CN.mo [moved from ear/cmd/locale/ear/zh_CN.mo with 100% similarity]
ear/cmd/locale/zh_CN.po [moved from ear/cmd/locale/ear/zh_CN.po with 100% similarity]
ear/extract/Makefile
ear/extract/extract.epj
ear/extract/locale/es.mo [moved from ear/extract/locale/extract/es.mo with 100% similarity]
ear/extract/locale/es.po [moved from ear/extract/locale/extract/es.po with 100% similarity]
ear/extract/locale/extract.pot [moved from ear/extract/locale/extract/extract.pot with 100% similarity]
ear/extract/locale/he.mo [moved from ear/extract/locale/extract/he.mo with 100% similarity]
ear/extract/locale/he.po [moved from ear/extract/locale/extract/he.po with 100% similarity]
ear/extract/locale/ru.mo [moved from ear/extract/locale/extract/ru.mo with 100% similarity]
ear/extract/locale/ru.po [moved from ear/extract/locale/extract/ru.po with 100% similarity]
ear/extract/locale/zh_CN.mo [moved from ear/extract/locale/extract/zh_CN.mo with 100% similarity]
ear/extract/locale/zh_CN.po [moved from ear/extract/locale/extract/zh_CN.po with 100% similarity]
ecere/Makefile
ecere/Makefile.ecereCOM
ecere/Makefile.installer
ecere/Makefile.vanilla
ecere/ecere.epj
ecere/locale/ecere.pot [moved from ecere/locale/ecere/ecere.pot with 100% similarity]
ecere/locale/es.mo [moved from ecere/locale/ecere/es.mo with 100% similarity]
ecere/locale/es.po [moved from ecere/locale/ecere/es.po with 100% similarity]
ecere/locale/hu.mo [moved from ecere/locale/ecere/hu.mo with 100% similarity]
ecere/locale/hu.po [moved from ecere/locale/ecere/hu.po with 100% similarity]
ecere/locale/mr.mo [moved from ecere/locale/ecere/mr.mo with 100% similarity]
ecere/locale/mr.po [moved from ecere/locale/ecere/mr.po with 100% similarity]
ecere/locale/nl.mo [moved from ecere/locale/ecere/nl.mo with 100% similarity]
ecere/locale/nl.po [moved from ecere/locale/ecere/nl.po with 100% similarity]
ecere/locale/pt_BR.mo [moved from ecere/locale/ecere/pt_BR.mo with 100% similarity]
ecere/locale/pt_BR.po [moved from ecere/locale/ecere/pt_BR.po with 100% similarity]
ecere/locale/ru.mo [moved from ecere/locale/ecere/ru.mo with 100% similarity]
ecere/locale/ru.po [moved from ecere/locale/ecere/ru.po with 100% similarity]
ecere/locale/zh_CN.mo [moved from ecere/locale/ecere/zh_CN.mo with 100% similarity]
ecere/locale/zh_CN.po [moved from ecere/locale/ecere/zh_CN.po with 100% similarity]
ecere/src/sys/i18n.ec
eda/drivers/sqlite/EDASQLite.epj
eda/drivers/sqlite/Makefile
eda/drivers/sqlite/locale/EDASQLite.pot [moved from eda/drivers/sqlite/locale/EDASQLite/EDASQLite.pot with 100% similarity]
eda/drivers/sqlite/locale/es.mo [moved from eda/drivers/sqlite/locale/EDASQLite/es.mo with 100% similarity]
eda/drivers/sqlite/locale/es.po [moved from eda/drivers/sqlite/locale/EDASQLite/es.po with 100% similarity]
eda/drivers/sqlite/locale/he.mo [moved from eda/drivers/sqlite/locale/EDASQLite/he.mo with 100% similarity]
eda/drivers/sqlite/locale/he.po [moved from eda/drivers/sqlite/locale/EDASQLite/he.po with 100% similarity]
eda/drivers/sqlite/locale/pt_BR.mo [moved from eda/drivers/sqlite/locale/EDASQLite/pt_BR.mo with 100% similarity]
eda/drivers/sqlite/locale/pt_BR.po [moved from eda/drivers/sqlite/locale/EDASQLite/pt_BR.po with 100% similarity]
eda/drivers/sqlite/locale/ru.mo [moved from eda/drivers/sqlite/locale/EDASQLite/ru.mo with 100% similarity]
eda/drivers/sqlite/locale/ru.po [moved from eda/drivers/sqlite/locale/EDASQLite/ru.po with 100% similarity]
eda/drivers/sqlite/locale/zh_CN.mo [moved from eda/drivers/sqlite/locale/EDASQLite/zh_CN.mo with 100% similarity]
eda/drivers/sqlite/locale/zh_CN.po [moved from eda/drivers/sqlite/locale/EDASQLite/zh_CN.po with 100% similarity]
eda/drivers/sqliteCipher/EDASQLiteCipher.epj
eda/drivers/sqliteCipher/Makefile
eda/drivers/sqliteCipher/locale/EDASQLiteCipher.pot [moved from eda/drivers/sqliteCipher/locale/EDASQLiteCipher/EDASQLiteCipher.pot with 100% similarity]
eda/drivers/sqliteCipher/locale/es.mo [moved from eda/drivers/sqliteCipher/locale/EDASQLiteCipher/es.mo with 100% similarity]
eda/drivers/sqliteCipher/locale/es.po [moved from eda/drivers/sqliteCipher/locale/EDASQLiteCipher/es.po with 100% similarity]
eda/drivers/sqliteCipher/locale/he.mo [moved from eda/drivers/sqliteCipher/locale/EDASQLiteCipher/he.mo with 100% similarity]
eda/drivers/sqliteCipher/locale/he.po [moved from eda/drivers/sqliteCipher/locale/EDASQLiteCipher/he.po with 100% similarity]
eda/drivers/sqliteCipher/locale/pt_BR.mo [moved from eda/drivers/sqliteCipher/locale/EDASQLiteCipher/pt_BR.mo with 100% similarity]
eda/drivers/sqliteCipher/locale/pt_BR.po [moved from eda/drivers/sqliteCipher/locale/EDASQLiteCipher/pt_BR.po with 100% similarity]
eda/drivers/sqliteCipher/locale/ru.mo [moved from eda/drivers/sqliteCipher/locale/EDASQLiteCipher/ru.mo with 100% similarity]
eda/drivers/sqliteCipher/locale/ru.po [moved from eda/drivers/sqliteCipher/locale/EDASQLiteCipher/ru.po with 100% similarity]
eda/drivers/sqliteCipher/locale/zh_CN.mo [moved from eda/drivers/sqliteCipher/locale/EDASQLiteCipher/zh_CN.mo with 100% similarity]
eda/drivers/sqliteCipher/locale/zh_CN.po [moved from eda/drivers/sqliteCipher/locale/EDASQLiteCipher/zh_CN.po with 100% similarity]
eda/libeda/EDA.epj
eda/libeda/Makefile
eda/libeda/locale/EDA.pot [moved from eda/libeda/locale/EDA/EDA.pot with 100% similarity]
eda/libeda/locale/es.mo [moved from eda/libeda/locale/EDA/es.mo with 100% similarity]
eda/libeda/locale/es.po [moved from eda/libeda/locale/EDA/es.po with 100% similarity]
eda/libeda/locale/he.mo [moved from eda/libeda/locale/EDA/he.mo with 100% similarity]
eda/libeda/locale/he.po [moved from eda/libeda/locale/EDA/he.po with 100% similarity]
eda/libeda/locale/ru.mo [moved from eda/libeda/locale/EDA/ru.mo with 100% similarity]
eda/libeda/locale/ru.po [moved from eda/libeda/locale/EDA/ru.po with 100% similarity]
eda/libeda/locale/zh_CN.mo [moved from eda/libeda/locale/EDA/zh_CN.mo with 100% similarity]
eda/libeda/locale/zh_CN.po [moved from eda/libeda/locale/EDA/zh_CN.po with 100% similarity]
epj2make/Makefile
epj2make/epj2make.epj
epj2make/locale/epj2make.pot [moved from epj2make/locale/epj2make/epj2make.pot with 100% similarity]
epj2make/locale/es.mo [moved from epj2make/locale/epj2make/es.mo with 100% similarity]
epj2make/locale/es.po [moved from epj2make/locale/epj2make/es.po with 100% similarity]
epj2make/locale/he.mo [moved from epj2make/locale/epj2make/he.mo with 100% similarity]
epj2make/locale/he.po [moved from epj2make/locale/epj2make/he.po with 100% similarity]
epj2make/locale/ru.mo [moved from epj2make/locale/epj2make/ru.mo with 100% similarity]
epj2make/locale/ru.po [moved from epj2make/locale/epj2make/ru.po with 100% similarity]
epj2make/locale/zh_CN.mo [moved from epj2make/locale/epj2make/zh_CN.mo with 100% similarity]
epj2make/locale/zh_CN.po [moved from epj2make/locale/epj2make/zh_CN.po with 100% similarity]
ide/Makefile
ide/ide.epj
ide/locale/es.mo [moved from ide/locale/ide/es.mo with 100% similarity]
ide/locale/es.po [moved from ide/locale/ide/es.po with 100% similarity]
ide/locale/ide.pot [moved from ide/locale/ide/ide.pot with 100% similarity]
ide/locale/pt_BR.mo [moved from ide/locale/ide/pt_BR.mo with 100% similarity]
ide/locale/pt_BR.po [moved from ide/locale/ide/pt_BR.po with 100% similarity]
ide/locale/ru.mo [moved from ide/locale/ide/ru.mo with 100% similarity]
ide/locale/ru.po [moved from ide/locale/ide/ru.po with 100% similarity]
ide/locale/vi.mo [moved from ide/locale/ide/vi.mo with 100% similarity]
ide/locale/vi.po [moved from ide/locale/ide/vi.po with 100% similarity]
ide/locale/zh_CN.mo [moved from ide/locale/ide/zh_CN.mo with 100% similarity]
ide/locale/zh_CN.po [moved from ide/locale/ide/zh_CN.po with 100% similarity]
ide/src/project/Project.ec
installer/Installer.epj
installer/Makefile
installer/locale/Installer.pot [moved from installer/locale/Installer/Installer.pot with 100% similarity]
installer/locale/es.mo [moved from installer/locale/Installer/es.mo with 100% similarity]
installer/locale/es.po [moved from installer/locale/Installer/es.po with 100% similarity]
installer/locale/pt_BR.mo [moved from installer/locale/Installer/pt_BR.mo with 100% similarity]
installer/locale/pt_BR.po [moved from installer/locale/Installer/pt_BR.po with 100% similarity]
installer/locale/ru.mo [moved from installer/locale/Installer/ru.mo with 100% similarity]
installer/locale/ru.po [moved from installer/locale/Installer/ru.po with 100% similarity]
installer/locale/zh_CN.mo [moved from installer/locale/Installer/zh_CN.mo with 100% similarity]
installer/locale/zh_CN.po [moved from installer/locale/Installer/zh_CN.po with 100% similarity]

index 296a004..ae01a82 100644 (file)
@@ -662,6 +662,8 @@ extern char *  GetSourceFile(void);
 
 extern void SetSourceFile(char *  s);
 
+extern void SetI18nModuleName(char *  s);
+
 extern void SetMemoryGuard(unsigned int b);
 
 extern void SetDefaultNameSpace(char *  s);
@@ -676,9 +678,7 @@ extern char *  __ecereNameSpace__ecere__sys__ChangeExtension(char *  string, cha
 
 extern int printf(char * , ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern void SetGlobalData(struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace);
 
@@ -990,6 +990,16 @@ c++;
 else
 valid = 0x0;
 }
+else if(!strcmp(arg + 1, "module"))
+{
+if(c + 1 < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argc)
+{
+SetI18nModuleName(((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argv[c + 1]);
+c++;
+}
+else
+valid = 0x0;
+}
 else if(!strcmp(arg + 1, "memguard"))
 {
 SetMemoryGuard(0x1);
@@ -1032,7 +1042,7 @@ SetOutputFile(defaultOutputFile);
 }
 if(!valid)
 {
-printf(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Syntax:\n   ecc [-t <target platform>] [-cpp <c preprocessor>] [-o <output>] [-symbols <outputdir>] [-I<includedir>]* [-isystem <sysincludedir>]* [-D<definition>]* -c <input>\n", (((void *)0))));
+printf(__ecereNameSpace__ecere__GetTranslatedString("ecc", "Syntax:\n   ecc [-t <target platform>] [-cpp <c preprocessor>] [-o <output>] [-module <module>] [-symbols <outputdir>] [-I<includedir>]* [-isystem <sysincludedir>]* [-D<definition>]* -c <input>\n", (((void *)0))));
 }
 else
 {
@@ -1296,6 +1306,8 @@ struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
 } __attribute__ ((gcc_struct));
 
+extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+
 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, void *  function, int declMode);
 
 void __ecereRegisterModule_ecc(struct __ecereNameSpace__ecere__com__Instance * module)
index d3d371c..4b3be91 100644 (file)
@@ -514,7 +514,7 @@ extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__
 
 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, struct __ecereNameSpace__ecere__com__Instance * module);
 
-extern void __ecereNameSpace__ecere__LoadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module, char *  name);
+extern void __ecereNameSpace__ecere__LoadTranslatedStrings(char * moduleName, char *  name);
 
 extern void __ecereNameSpace__ecere__com__eInstance_Evolve(struct __ecereNameSpace__ecere__com__Instance **  instancePtr, struct __ecereNameSpace__ecere__com__Class * _class);
 
@@ -554,7 +554,7 @@ struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
 } __attribute__ ((gcc_struct));
 
-extern void __ecereNameSpace__ecere__UnloadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module);
+extern void __ecereNameSpace__ecere__UnloadTranslatedStrings(char * name);
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
 
@@ -645,14 +645,14 @@ if(method)
 __ecereVMethodID___ecereNameSpace__ecere__sys__File_Write = method->vid;
 __ecereClass___ecereNameSpace__ecere__sys__OldList = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::sys::OldList");
 __ecereClass___ecereNameSpace__ecere__sys__TempFile = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::sys::TempFile");
-__ecereNameSpace__ecere__LoadTranslatedStrings(module, "ecc");
+__ecereNameSpace__ecere__LoadTranslatedStrings((((void *)0)), "ecc");
 _class = __ecereNameSpace__ecere__com__eSystem_FindClass(__currentModule, "CompilerApp");
 __ecereNameSpace__ecere__com__eInstance_Evolve((struct __ecereNameSpace__ecere__com__Instance **)&__currentModule, _class);
 __thisModule = __currentModule;
 __ecereCreateModuleInstances_ecc();
 ((void (*)(void *))(void *)((struct __ecereNameSpace__ecere__com__Instance *)(char *)__currentModule)->_vTbl[12])(__currentModule);
 __ecereDestroyModuleInstances_ecc();
-__ecereNameSpace__ecere__UnloadTranslatedStrings(__currentModule);
+__ecereNameSpace__ecere__UnloadTranslatedStrings("ecc");
 _class = __ecereNameSpace__ecere__com__eSystem_FindClass(__currentModule, "ecere::com::Application");
 exitCode = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Instance *)__currentModule) + structSize_Module)))->exitCode;
 (__ecereNameSpace__ecere__com__eInstance_DecRef(__currentModule), __currentModule = 0);
index 1eea82e..c9b5229 100644 (file)
@@ -377,9 +377,7 @@ unsigned int count;
 unsigned int minAllocSize;
 } __attribute__ ((gcc_struct));
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BuiltInContainer;
 
@@ -689,6 +687,8 @@ struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
 } __attribute__ ((gcc_struct));
 
+extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+
 extern void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char *  string, int value);
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
@@ -807,7 +807,7 @@ void __ecereCreateModuleInstances_System()
 {
 __ecereClass___ecereNameSpace__ecere__com__BuiltInContainer->_vTbl, __ecereClass___ecereNameSpace__ecere__com__BuiltInContainer, 0, __extension__ (char * [])
 {
-__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "No error", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Memory allocation failed", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Inexistant string identifier specified", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Identic string identifier already exists", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Shared library loading failed", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "File not found", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Couldn't write to file", (((void *)0)))
+__ecereNameSpace__ecere__GetTranslatedString("ecere", "No error", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString("ecere", "Memory allocation failed", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString("ecere", "Inexistant string identifier specified", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString("ecere", "Identic string identifier already exists", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString("ecere", "Shared library loading failed", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString("ecere", "File not found", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString("ecere", "Couldn't write to file", (((void *)0)))
 }, 7, __ecereClass_String
 })));
 __ecereNameSpace__ecere__com__eInstance_IncRef(__ecereNameSpace__ecere__sys__errorMessages);
index 925e7da..fd03260 100644 (file)
@@ -677,7 +677,7 @@ extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__co
 
 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, struct __ecereNameSpace__ecere__com__Instance * module);
 
-extern void __ecereNameSpace__ecere__LoadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module, char *  name);
+extern void __ecereNameSpace__ecere__LoadTranslatedStrings(char * moduleName, char *  name);
 
 unsigned int __ecereDll_Load_ecere(struct __ecereNameSpace__ecere__com__Instance * module)
 {
@@ -1065,7 +1065,7 @@ __ecereClass_int64 = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "in
 __ecereClass_uint = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "uint");
 __ecereClass_uint64 = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "uint64");
 __ecereCreateModuleInstances_i18n();
-__ecereNameSpace__ecere__LoadTranslatedStrings(module, "ecere");
+__ecereNameSpace__ecere__LoadTranslatedStrings("ecere", "ecere");
 }
 if(__currentModule == module)
 {
@@ -1074,14 +1074,14 @@ __ecereCreateModuleInstances_System();
 return 0x1;
 }
 
-extern void __ecereNameSpace__ecere__UnloadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module);
+extern void __ecereNameSpace__ecere__UnloadTranslatedStrings(char * name);
 
 unsigned int __ecereDll_Unload_ecere(struct __ecereNameSpace__ecere__com__Instance * module)
 {
 if(__currentModule == module)
 {
 __ecereDestroyModuleInstances_System();
-__ecereNameSpace__ecere__UnloadTranslatedStrings(__currentModule);
+__ecereNameSpace__ecere__UnloadTranslatedStrings("ecere");
 __ecereDestroyModuleInstances_i18n();
 }
 __ecereUnregisterModule_BufferedFile(module);
index 7a1cdbb..513a3b0 100644 (file)
@@ -279,42 +279,6 @@ extern char *  strstr(const char * , const char * );
 
 extern char *  strchr(const char * , int);
 
-extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
-
-struct __ecereNameSpace__ecere__com__NameSpace
-{
-char *  name;
-struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
-struct __ecereNameSpace__ecere__com__NameSpace *  left;
-struct __ecereNameSpace__ecere__com__NameSpace *  right;
-int depth;
-struct __ecereNameSpace__ecere__com__NameSpace *  parent;
-struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
-struct __ecereNameSpace__ecere__sys__BinaryTree classes;
-struct __ecereNameSpace__ecere__sys__BinaryTree defines;
-struct __ecereNameSpace__ecere__sys__BinaryTree functions;
-} __attribute__ ((gcc_struct));
-
-extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
-
-struct __ecereNameSpace__ecere__com__Module
-{
-struct __ecereNameSpace__ecere__com__Instance * application;
-struct __ecereNameSpace__ecere__sys__OldList classes;
-struct __ecereNameSpace__ecere__sys__OldList defines;
-struct __ecereNameSpace__ecere__sys__OldList functions;
-struct __ecereNameSpace__ecere__sys__OldList modules;
-struct __ecereNameSpace__ecere__com__Instance * prev;
-struct __ecereNameSpace__ecere__com__Instance * next;
-char *  name;
-void *  library;
-void *  Unload;
-int importType;
-int origImportType;
-struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
-struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
-} __attribute__ ((gcc_struct));
-
 extern int sprintf(char * , char * , ...);
 
 extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__FileOpen(char *  fileName, int mode);
@@ -371,7 +335,7 @@ extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameS
 
 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
 
-void __ecereNameSpace__ecere__LoadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
+void __ecereNameSpace__ecere__LoadTranslatedStrings(char * moduleName, char * name)
 {
 struct __ecereNameSpace__ecere__com__Instance * f;
 char fileName[797];
@@ -411,15 +375,15 @@ under = strchr(genericLocale, '_');
 if(under)
 *under = (char)0;
 }
-if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name)
-sprintf(fileName, "<:%s>locale/%s-%s.mo", ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name, locale);
+if(moduleName)
+sprintf(fileName, "<:%s>locale/%s.mo", moduleName, locale);
 else
-sprintf(fileName, ":locale/%s-%s.mo", name, locale);
+sprintf(fileName, ":locale/%s.mo", locale);
 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
 if(!f)
 {
-if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name)
-sprintf(fileName, "<:%s>locale/%s/LC_MESSAGES/%s.mo", ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, locale, name);
+if(moduleName)
+sprintf(fileName, "<:%s>locale/%s/LC_MESSAGES/%s.mo", moduleName, locale, name);
 else
 sprintf(fileName, ":locale/%s/LC_MESSAGES/%s.mo", locale, name);
 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
@@ -436,15 +400,15 @@ f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
 }
 if(!f && locale && (strcasecmp)(locale, genericLocale))
 {
-if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name)
-sprintf(fileName, "<:%s>locale/%s-%s.mo", ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name, genericLocale);
+if(moduleName)
+sprintf(fileName, "<:%s>locale/%s.mo", moduleName, genericLocale);
 else
-sprintf(fileName, ":locale/%s-%s.mo", name, genericLocale);
+sprintf(fileName, ":locale/%s.mo", name, genericLocale);
 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
 if(!f)
 {
-if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name)
-sprintf(fileName, "<:%s>locale/%s/LC_MESSAGES/%s.mo", ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, genericLocale, name);
+if(moduleName)
+sprintf(fileName, "<:%s>locale/%s/LC_MESSAGES/%s.mo", moduleName, genericLocale, name);
 else
 sprintf(fileName, ":locale/%s/LC_MESSAGES/%s.mo", genericLocale, name);
 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
@@ -526,7 +490,7 @@ __ecereNameSpace__ecere__moduleMaps = __ecereNameSpace__ecere__com__eInstance_Ne
 {
 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);
 
-if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&it, (uint64)(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name), 0x0))
+if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&it, (uint64)(name), 0x0))
 (__ecereNameSpace__ecere__com__eInstance_DecRef(__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&it)), __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&it, 0));
 }
 __extension__ ({
@@ -535,7 +499,7 @@ struct __ecereNameSpace__ecere__com__Iterator __internalIterator =
 __ecereNameSpace__ecere__moduleMaps, 0
 };
 
-__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name))), 0x1);
+__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(name))), 0x1);
 __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&__internalIterator, textMap = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_String__String_));
 });
 for(c = 0; c < numStrings; c++)
@@ -639,11 +603,11 @@ extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpac
 
 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Delete;
 
-void __ecereNameSpace__ecere__UnloadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module)
+void __ecereNameSpace__ecere__UnloadTranslatedStrings(char * name)
 {
 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);
 
-if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&it, (uint64)(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name), 0x0))
+if(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&it, (uint64)(name), 0x0))
 {
 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = ((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&it));
@@ -658,7 +622,7 @@ __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpa
 }
 }
 
-char * __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char * string, char * stringAndContext)
+char * __ecereNameSpace__ecere__GetTranslatedString(char * name, char * string, char * stringAndContext)
 {
 struct __ecereNameSpace__ecere__com__Instance * textMap = __ecereNameSpace__ecere__moduleMaps ? (__extension__ ({
 struct __ecereNameSpace__ecere__com__Iterator __internalIterator = 
@@ -666,7 +630,7 @@ struct __ecereNameSpace__ecere__com__Iterator __internalIterator =
 __ecereNameSpace__ecere__moduleMaps, 0
 };
 
-__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name))), 0x0);
+__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(name))), 0x0);
 ((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&__internalIterator));
 })) : (((void *)0));
 char * result = textMap ? (__extension__ ({
@@ -692,9 +656,9 @@ void __ecereRegisterModule_i18n(struct __ecereNameSpace__ecere__com__Instance *
 {
 struct __ecereNameSpace__ecere__com__Class * class;
 
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::LoadTranslatedStrings", "void ecere::LoadTranslatedStrings(ecere::com::Module module, char * name)", __ecereNameSpace__ecere__LoadTranslatedStrings, module, 4);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::UnloadTranslatedStrings", "void ecere::UnloadTranslatedStrings(ecere::com::Module module)", __ecereNameSpace__ecere__UnloadTranslatedStrings, module, 4);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::GetTranslatedString", "char * ecere::GetTranslatedString(ecere::com::Module module, char * string, char * stringAndContext)", __ecereNameSpace__ecere__GetTranslatedString, module, 4);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::LoadTranslatedStrings", "void ecere::LoadTranslatedStrings(String moduleName, char * name)", __ecereNameSpace__ecere__LoadTranslatedStrings, module, 4);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::UnloadTranslatedStrings", "void ecere::UnloadTranslatedStrings(String name)", __ecereNameSpace__ecere__UnloadTranslatedStrings, module, 4);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::GetTranslatedString", "char * ecere::GetTranslatedString(String name, char * string, char * stringAndContext)", __ecereNameSpace__ecere__GetTranslatedString, module, 4);
 }
 
 void __ecereUnregisterModule_i18n(struct __ecereNameSpace__ecere__com__Instance * module)
index 4f7f5e7..2223d0e 100644 (file)
@@ -817,7 +817,7 @@ struct __ecereNameSpace__ecere__com__Method * method;
 
 enum yytokentype
 {
-IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371
+IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
 };
 
 typedef union YYSTYPE
@@ -2482,6 +2482,8 @@ extern void SetDefaultNameSpace(char *  s);
 
 extern void SetStrictNameSpaces(unsigned int b);
 
+extern void SetI18nModuleName(char *  s);
+
 extern char *  GetSymbolsDir(void);
 
 extern char *  __ecereNameSpace__ecere__sys__PathCat(char *  string, char *  addedPath);
@@ -2490,9 +2492,7 @@ extern char *  __ecereNameSpace__ecere__sys__ChangeExtension(char *  string, cha
 
 extern int printf(char * , ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern void SetGlobalData(struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace);
 
@@ -2725,6 +2725,16 @@ else if(!strcmp(arg + 1, "strictns"))
 {
 SetStrictNameSpaces(0x1);
 }
+else if(!strcmp(arg + 1, "module"))
+{
+if(c + 1 < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argc)
+{
+SetI18nModuleName(((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argv[c + 1]);
+c++;
+}
+else
+valid = 0x0;
+}
 }
 else
 valid = 0x0;
@@ -2745,7 +2755,7 @@ SetOutputFile(defaultSymFile);
 }
 if(!valid)
 {
-printf(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Syntax:\n   ecp [-t <target platform>] [-cpp <c preprocessor>] [-o <output>] [-symbols <outputdir>] [-I<includedir>]* [-isystem <sysincludedir>]* [-D<definition>]* -c <input>\n", (((void *)0))));
+printf(__ecereNameSpace__ecere__GetTranslatedString("ecp", "Syntax:\n   ecp [-t <target platform>] [-cpp <c preprocessor>] [-o <output>] [-symbols <outputdir>] [-I<includedir>]* [-isystem <sysincludedir>]* [-D<definition>]* -c <input>\n", (((void *)0))));
 }
 else
 {
@@ -2914,6 +2924,8 @@ struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
 } __attribute__ ((gcc_struct));
 
+extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
 
 struct __ecereNameSpace__ecere__com__GlobalFunction;
index 5b72533..a25d92d 100644 (file)
@@ -546,7 +546,7 @@ extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__
 
 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, struct __ecereNameSpace__ecere__com__Instance * module);
 
-extern void __ecereNameSpace__ecere__LoadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module, char *  name);
+extern void __ecereNameSpace__ecere__LoadTranslatedStrings(char * moduleName, char *  name);
 
 extern void __ecereNameSpace__ecere__com__eInstance_Evolve(struct __ecereNameSpace__ecere__com__Instance **  instancePtr, struct __ecereNameSpace__ecere__com__Class * _class);
 
@@ -586,7 +586,7 @@ struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
 } __attribute__ ((gcc_struct));
 
-extern void __ecereNameSpace__ecere__UnloadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module);
+extern void __ecereNameSpace__ecere__UnloadTranslatedStrings(char * name);
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
 
@@ -694,14 +694,14 @@ __ecereVMethodID___ecereNameSpace__ecere__sys__File_Write = method->vid;
 __ecereClass___ecereNameSpace__ecere__sys__NamedLink = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::sys::NamedLink");
 __ecereClass___ecereNameSpace__ecere__sys__OldList = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::sys::OldList");
 __ecereClass___ecereNameSpace__ecere__sys__TempFile = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::sys::TempFile");
-__ecereNameSpace__ecere__LoadTranslatedStrings(module, "ecp");
+__ecereNameSpace__ecere__LoadTranslatedStrings((((void *)0)), "ecp");
 _class = __ecereNameSpace__ecere__com__eSystem_FindClass(__currentModule, "PrecompApp");
 __ecereNameSpace__ecere__com__eInstance_Evolve((struct __ecereNameSpace__ecere__com__Instance **)&__currentModule, _class);
 __thisModule = __currentModule;
 __ecereCreateModuleInstances_ecp();
 ((void (*)(void *))(void *)((struct __ecereNameSpace__ecere__com__Instance *)(char *)__currentModule)->_vTbl[12])(__currentModule);
 __ecereDestroyModuleInstances_ecp();
-__ecereNameSpace__ecere__UnloadTranslatedStrings(__currentModule);
+__ecereNameSpace__ecere__UnloadTranslatedStrings("ecp");
 _class = __ecereNameSpace__ecere__com__eSystem_FindClass(__currentModule, "ecere::com::Application");
 exitCode = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Instance *)__currentModule) + structSize_Module)))->exitCode;
 (__ecereNameSpace__ecere__com__eInstance_DecRef(__currentModule), __currentModule = 0);
index 76a67a7..dd962a4 100644 (file)
@@ -1395,7 +1395,12 @@ if(!strcmp(defModule->name, "i18n"))
 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "   __ecereCreateModuleInstances_i18n();\n");
 }
 if(i18n)
-__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "      LoadTranslatedStrings(module, \"%s\");\n", projectName);
+{
+if(isDynamicLibrary)
+__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "      LoadTranslatedStrings(\"%s\", \"%s\");\n", projectName, projectName);
+else
+__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "      LoadTranslatedStrings(null, \"%s\");\n", projectName);
+}
 if(isDynamicLibrary)
 {
 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
@@ -1517,7 +1522,7 @@ __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "   __ecereDestroyMod
 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
 }
 if(i18n)
-__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "   UnloadTranslatedStrings(__currentModule);\n");
+__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "   UnloadTranslatedStrings(\"%s\");\n", projectName);
 if(destroyI18n)
 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "   __ecereDestroyModuleInstances_i18n();\n");
 }
@@ -2407,9 +2412,7 @@ extern void SetSymbolsDir(char *  s);
 
 extern int printf(char * , ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern char *  __ecereNameSpace__ecere__sys__GetExtension(char *  string, char *  output);
 
@@ -2650,7 +2653,7 @@ if(!output)
 valid = 0x0;
 if(!valid)
 {
-printf(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Syntax:\n   ecs [-t <target platform>] <input>[, <input>]* -o <output>\n", (((void *)0))));
+printf(__ecereNameSpace__ecere__GetTranslatedString("ecs", "Syntax:\n   ecs [-t <target platform>] <input>[, <input>]* -o <output>\n", (((void *)0))));
 }
 else
 {
@@ -3102,6 +3105,8 @@ SetSymbolsDir((((void *)0)));
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char *  name, char *  baseName, int size, int sizeClass, unsigned int (*  Constructor)(void * ), void (*  Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
 
+extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+
 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, void *  function, int declMode);
 
 void __ecereRegisterModule_ecs(struct __ecereNameSpace__ecere__com__Instance * module)
index 79c271d..43848f2 100644 (file)
@@ -556,7 +556,7 @@ extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__co
 
 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, struct __ecereNameSpace__ecere__com__Instance * module);
 
-extern void __ecereNameSpace__ecere__LoadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module, char *  name);
+extern void __ecereNameSpace__ecere__LoadTranslatedStrings(char * moduleName, char *  name);
 
 extern void __ecereNameSpace__ecere__com__eInstance_Evolve(struct __ecereNameSpace__ecere__com__Instance **  instancePtr, struct __ecereNameSpace__ecere__com__Class * _class);
 
@@ -596,7 +596,7 @@ struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
 } __attribute__ ((gcc_struct));
 
-extern void __ecereNameSpace__ecere__UnloadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module);
+extern void __ecereNameSpace__ecere__UnloadTranslatedStrings(char * name);
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
 
@@ -716,14 +716,14 @@ __ecereVMethodID___ecereNameSpace__ecere__sys__File_Write = method->vid;
 __ecereClass___ecereNameSpace__ecere__sys__OldLink = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::sys::OldLink");
 __ecereClass___ecereNameSpace__ecere__sys__OldList = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::sys::OldList");
 __ecereClass___ecereNameSpace__ecere__sys__TempFile = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::sys::TempFile");
-__ecereNameSpace__ecere__LoadTranslatedStrings(module, "ecs");
+__ecereNameSpace__ecere__LoadTranslatedStrings((((void *)0)), "ecs");
 _class = __ecereNameSpace__ecere__com__eSystem_FindClass(__currentModule, "SymbolgenApp");
 __ecereNameSpace__ecere__com__eInstance_Evolve((struct __ecereNameSpace__ecere__com__Instance **)&__currentModule, _class);
 __thisModule = __currentModule;
 __ecereCreateModuleInstances_ecs();
 ((void (*)(void *))(void *)((struct __ecereNameSpace__ecere__com__Instance *)(char *)__currentModule)->_vTbl[12])(__currentModule);
 __ecereDestroyModuleInstances_ecs();
-__ecereNameSpace__ecere__UnloadTranslatedStrings(__currentModule);
+__ecereNameSpace__ecere__UnloadTranslatedStrings("ecs");
 _class = __ecereNameSpace__ecere__com__eSystem_FindClass(__currentModule, "ecere::com::Application");
 exitCode = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Instance *)__currentModule) + structSize_Module)))->exitCode;
 (__ecereNameSpace__ecere__com__eInstance_DecRef(__currentModule), __currentModule = 0);
index 1067eeb..6592aba 100644 (file)
@@ -1541,6 +1541,10 @@ struct __ecereNameSpace__ecere__com__Instance * intlStrings;
 
 extern unsigned int inCompiler;
 
+extern char *  QMkString(char *  source);
+
+extern char *  i18nModuleName;
+
 extern struct Expression * QMkExpId(char *  id);
 
 struct Expression * MkExpCall(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * arguments);
@@ -1625,7 +1629,7 @@ struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = list;
 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl;
 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add])(list, (&yylloc));
 }
-ListAdd(list, QMkExpId("__thisModule"));
+ListAdd(list, MkExpString(QMkString(i18nModuleName ? i18nModuleName : "")));
 ListAdd(list, MkExpString(string));
 if(context)
 {
@@ -2292,9 +2296,7 @@ extern unsigned int buildingECERECOMModule;
 
 extern void Compiler_Warning(char *  format, ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 struct Declaration * MkDeclarationDefine(struct Identifier * id, struct Expression * exp)
 {
@@ -2332,7 +2334,7 @@ id->string = __ecereNameSpace__ecere__sys__CopyString(name);
 if(!__ecereNameSpace__ecere__com__eSystem_FindDefine(privateModule, id->string))
 __ecereNameSpace__ecere__com__eSystem_RegisterDefine(id->string, expString, privateModule, buildingECERECOMModule ? 4 : 1);
 else
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Redefinition of %s ignored\n", (((void *)0))), id->string);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "Redefinition of %s ignored\n", (((void *)0))), id->string);
 return decl;
 }
 
@@ -3303,7 +3305,7 @@ break;
 FreeList(specs, FreeSpecifier);
 if(!spec)
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Expecting class specifier\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Expecting class specifier\n", (((void *)0))));
 inst->_class = MkSpecifierName("");
 }
 }
@@ -4939,6 +4941,8 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char *  name, char *  baseName, int size, int sizeClass, unsigned int (*  Constructor)(void * ), void (*  Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
 
+extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+
 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, void *  function, int declMode);
 
 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, unsigned int size, unsigned int alignment, int declMode);
index ac8a584..50dcf92 100644 (file)
@@ -850,7 +850,7 @@ struct __ecereNameSpace__ecere__com__Method * method;
 
 enum yytokentype
 {
-IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371
+IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
 };
 
 typedef union YYSTYPE
@@ -1197,9 +1197,7 @@ extern struct Initializer * MkInitializerList(struct __ecereNameSpace__ecere__sy
 
 extern void Compiler_Error(char *  format, ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
 
@@ -1416,7 +1414,7 @@ tableStatements = (((void *)0));
 else
 {
 FreeExpContents(exp);
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "No database table defined in this module or database_open already used.\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "No database table defined in this module or database_open already used.\n", (((void *)0))));
 exp->type = 16;
 }
 break;
@@ -2179,7 +2177,7 @@ external->declaration->declMode = table->declMode;
 needTable = 0x1;
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Multiple field index requires a name\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Multiple field index requires a name\n", (((void *)0))));
 }
 else
 {
index 4bc7bd7..a4ce849 100644 (file)
@@ -697,7 +697,7 @@ extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__co
 
 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, struct __ecereNameSpace__ecere__com__Instance * module);
 
-extern void __ecereNameSpace__ecere__LoadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module, char *  name);
+extern void __ecereNameSpace__ecere__LoadTranslatedStrings(char * moduleName, char *  name);
 
 unsigned int __ecereDll_Load_ec(struct __ecereNameSpace__ecere__com__Instance * module)
 {
@@ -868,7 +868,7 @@ __ecereClass___ecereNameSpace__ecere__sys__NamedLink = __ecereNameSpace__ecere__
 __ecereClass___ecereNameSpace__ecere__sys__OldLink = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::sys::OldLink");
 __ecereClass___ecereNameSpace__ecere__sys__OldList = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::sys::OldList");
 __ecereClass___ecereNameSpace__ecere__sys__TempFile = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::sys::TempFile");
-__ecereNameSpace__ecere__LoadTranslatedStrings(module, "ec");
+__ecereNameSpace__ecere__LoadTranslatedStrings("ec", "ec");
 }
 if(__currentModule == module)
 {
@@ -879,7 +879,7 @@ __ecereCreateModuleInstances_pass1();
 return 0x1;
 }
 
-extern void __ecereNameSpace__ecere__UnloadTranslatedStrings(struct __ecereNameSpace__ecere__com__Instance * module);
+extern void __ecereNameSpace__ecere__UnloadTranslatedStrings(char * name);
 
 unsigned int __ecereDll_Unload_ec(struct __ecereNameSpace__ecere__com__Instance * module)
 {
@@ -888,7 +888,7 @@ if(__currentModule == module)
 __ecereDestroyModuleInstances_ast();
 __ecereDestroyModuleInstances_loadSymbols();
 __ecereDestroyModuleInstances_pass1();
-__ecereNameSpace__ecere__UnloadTranslatedStrings(__currentModule);
+__ecereNameSpace__ecere__UnloadTranslatedStrings("ec");
 }
 __ecereUnregisterModule_ast(module);
 __ecereUnregisterModule_copy(module);
index c7c42a7..16fadd2 100644 (file)
@@ -1117,6 +1117,18 @@ char * GetSourceFile()
 return sourceFile;
 }
 
+char * i18nModuleName;
+
+void SetI18nModuleName(char * s)
+{
+i18nModuleName = s;
+}
+
+char * GetI18nModuleName()
+{
+return i18nModuleName;
+}
+
 void SetGlobalContext(struct Context * context)
 {
 globalContext = context;
@@ -1675,12 +1687,12 @@ extern char *  GetIncludeFileFromID(int id);
 
 extern int printf(char * , ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern int fputs(char * , void *  stream);
 
+extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
 
 struct __ecereNameSpace__ecere__com__NameSpace
@@ -1752,7 +1764,7 @@ __ecereNameSpace__ecere__sys__GetWorkingDir(string, sizeof string);
 __ecereNameSpace__ecere__sys__PathCat(string, sourceFile);
 }
 printf(string);
-printf(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, ":%d:%d: error: ", (((void *)0))), yylloc.start.line, yylloc.start.charPos);
+printf(__ecereNameSpace__ecere__GetTranslatedString("ec", ":%d:%d: error: ", (((void *)0))), yylloc.start.line, yylloc.start.charPos);
 __builtin_va_start(args, format);
 vsnprintf(string, sizeof string, format, args);
 string[sizeof string - 1] = (char)0;
@@ -1802,7 +1814,7 @@ __ecereNameSpace__ecere__sys__GetLastDirectory(string, fileName);
 if(!strcmp(fileName, "intrin-impl.h"))
 return ;
 printf(string);
-printf(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, ":%d:%d: warning: ", (((void *)0))), yylloc.start.line, yylloc.start.charPos);
+printf(__ecereNameSpace__ecere__GetTranslatedString("ec", ":%d:%d: warning: ", (((void *)0))), yylloc.start.line, yylloc.start.charPos);
 __builtin_va_start(args, format);
 vsnprintf(string, sizeof string, format, args);
 string[sizeof string - 1] = (char)0;
@@ -1821,7 +1833,7 @@ int yyerror(char * s)
 if(!skipErrors)
 {
 parseError = 0x1;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 }
 return 0;
 }
@@ -1953,6 +1965,8 @@ __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetOutputFile", "void Se
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetOutputFile", "char * GetOutputFile(void)", GetOutputFile, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetSourceFile", "void SetSourceFile(char * s)", SetSourceFile, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetSourceFile", "char * GetSourceFile(void)", GetSourceFile, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetI18nModuleName", "void SetI18nModuleName(char * s)", SetI18nModuleName, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetI18nModuleName", "char * GetI18nModuleName(void)", GetI18nModuleName, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetGlobalContext", "void SetGlobalContext(Context context)", SetGlobalContext, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetGlobalContext", "Context GetGlobalContext(void)", GetGlobalContext, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetTopContext", "void SetTopContext(Context context)", SetTopContext, module, 1);
index a58543a..fa83fe3 100644 (file)
@@ -793,7 +793,7 @@ struct __ecereNameSpace__ecere__com__Method * method;
 
 enum yytokentype
 {
-IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371
+IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
 };
 
 typedef union YYSTYPE
@@ -986,9 +986,7 @@ extern struct __ecereNameSpace__ecere__com__BitMember * __ecereNameSpace__ecere_
 
 extern void Compiler_Error(char *  format, ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern void FreeType(struct Type * type);
 
@@ -1096,7 +1094,7 @@ if(dataMember)
 dataMember->dataType = dataType;
 else
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Member with same name already exists %s in class %s\n", (((void *)0))), declId->string, regClass->name);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Member with same name already exists %s in class %s\n", (((void *)0))), declId->string, regClass->name);
 FreeType(dataType);
 }
 }
@@ -1111,13 +1109,13 @@ if(member)
 {
 dataMember = __ecereNameSpace__ecere__com__eMember_AddDataMember(member, declId->string, typeString, 0, 0, def->memberAccess);
 if(!dataMember)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Member with same name already exists %s in member %s\n", (((void *)0))), declId->string, member->name);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Member with same name already exists %s in member %s\n", (((void *)0))), declId->string, member->name);
 }
 else if(regClass)
 {
 dataMember = __ecereNameSpace__ecere__com__eClass_AddDataMember(regClass, declId->string, typeString, 0, 0, def->memberAccess);
 if(!dataMember)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Member with same name already exists %s in class %s\n", (((void *)0))), declId->string, regClass->name);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Member with same name already exists %s in class %s\n", (((void *)0))), declId->string, regClass->name);
 }
 if(dataMember)
 dataMember->dataType = dataType;
@@ -1164,13 +1162,13 @@ if(member)
 {
 dataMember = __ecereNameSpace__ecere__com__eMember_AddDataMember(member, id->string, typeString, 0, 0, def->memberAccess);
 if(!dataMember)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Member with same name already exists %s in member %s\n", (((void *)0))), id->string, member->name);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Member with same name already exists %s in member %s\n", (((void *)0))), id->string, member->name);
 }
 else
 {
 dataMember = __ecereNameSpace__ecere__com__eClass_AddDataMember(regClass, id->string, typeString, 0, 0, def->memberAccess);
 if(!dataMember)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Member with same name already exists %s in class %s\n", (((void *)0))), id->string, regClass->name);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Member with same name already exists %s in class %s\n", (((void *)0))), id->string, regClass->name);
 }
 if(dataMember)
 dataMember->dataType = dataType;
@@ -1198,13 +1196,13 @@ if(member)
 {
 dataMember = __ecereNameSpace__ecere__com__eMember_AddDataMember(member, string, inst->_class->name, 0, 0, def->memberAccess);
 if(!dataMember)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Member with same name already exists %s in member %s\n", (((void *)0))), string, member->name);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Member with same name already exists %s in member %s\n", (((void *)0))), string, member->name);
 }
 else
 {
 dataMember = __ecereNameSpace__ecere__com__eClass_AddDataMember(regClass, string, inst->_class->name, 0, 0, def->memberAccess);
 if(!dataMember)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Member with same name already exists %s in class %s\n", (((void *)0))), string, regClass->name);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Member with same name already exists %s in class %s\n", (((void *)0))), string, regClass->name);
 }
 if(dataMember)
 dataMember->dataType = dataType;
@@ -1374,7 +1372,7 @@ redefinition = 0x1;
 if(inCompiler)
 {
 yylloc = *loc;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "redefinition of class %s\n", (((void *)0))), symbol->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "redefinition of class %s\n", (((void *)0))), symbol->string);
 return ;
 }
 }
@@ -1504,7 +1502,7 @@ char * typeString = StringFromSpecDecl(func->specifiers, func->declarator);
 
 method = __ecereNameSpace__ecere__com__eClass_AddMethod(regClass, id->string, typeString, inCompiler ? func->declarator->symbol : (((void *)0)), def->memberAccess);
 if(!method)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Redefinition of method %s in class %s\n", (((void *)0))), id->string, regClass->name);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Redefinition of method %s in class %s\n", (((void *)0))), id->string, regClass->name);
 (__ecereNameSpace__ecere__com__eSystem_Delete(typeString), typeString = 0);
 }
 if(method && (method->type != 1 || method->_class == regClass))
index 6f6bb7d..a6ac5f3 100644 (file)
@@ -2805,9 +2805,7 @@ extern struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__
 
 extern void Compiler_Error(char *  format, ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern struct AsmField * MkAsmField(char *  command, struct Expression * expression, struct Identifier * symbolic);
 
@@ -10999,49 +10997,49 @@ break;
 case 1112:
 {
 yyval.stmt = yyvsp[(1) - (1)].stmt;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 ;
 }
 break;
 case 1113:
 {
 yyval.stmt = yyvsp[(1) - (1)].stmt;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 ;
 }
 break;
 case 1114:
 {
 yyval.stmt = yyvsp[(1) - (1)].stmt;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 ;
 }
 break;
 case 1115:
 {
 yyval.stmt = yyvsp[(1) - (1)].stmt;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 ;
 }
 break;
 case 1116:
 {
 yyval.stmt = yyvsp[(1) - (1)].stmt;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 ;
 }
 break;
 case 1117:
 {
 yyval.stmt = yyvsp[(1) - (2)].stmt;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 ;
 }
 break;
 case 1118:
 {
 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (1)].list);
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 yyval.stmt->loc = (yylsp[(1) - (1)]);
 ;
 }
index 7a9511f..2cbbd62 100644 (file)
@@ -2382,9 +2382,7 @@ extern size_t strlen(const char * );
 
 extern char *  strncpy(char * , const char * , size_t n);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern unsigned int inCompiler;
 
@@ -2505,7 +2503,7 @@ break;
 }
 if(include_stack_ptr >= (30))
 {
-fprintf((bsl_stderr()), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Includes nested too deeply", (((void *)0))));
+fprintf((bsl_stderr()), __ecereNameSpace__ecere__GetTranslatedString("ec", "Includes nested too deeply", (((void *)0))));
 exit(1);
 }
 if(inCompiler || !FindIncludeFileID(includeFile))
@@ -2704,6 +2702,8 @@ struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
 } __attribute__ ((gcc_struct));
 
+extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+
 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, unsigned int size, unsigned int alignment, int declMode);
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
index 8a87947..a239150 100644 (file)
@@ -975,9 +975,7 @@ extern char *  __ecereNameSpace__ecere__sys__GetSystemPathBuffer(char *  d, char
 
 extern void Compiler_Error(char *  format, ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
 
@@ -1585,7 +1583,7 @@ else if(importType != 4)
 char sysFileName[797];
 
 __ecereNameSpace__ecere__sys__GetSystemPathBuffer(sysFileName, fileName);
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Couldn't open %s\n", (((void *)0))), sysFileName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Couldn't open %s\n", (((void *)0))), sysFileName);
 }
 return globalInstance;
 }
@@ -1638,6 +1636,8 @@ struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
 
 extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_LoadStrict(struct __ecereNameSpace__ecere__com__Instance * fromModule, char *  name, int importAccess);
 
+extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
 
 struct __ecereNameSpace__ecere__com__Module
@@ -1998,7 +1998,7 @@ char type2String[1024] = "";
 PrintType(type1, type1String, 0x0, 0x1);
 PrintType(type2, type2String, 0x0, 0x1);
 if(strcmp(type1String, type2String))
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Redefinition of %s (defining as %s, already defined as %s)\n", (((void *)0))), redefinition->name, type1String, type2String);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "Redefinition of %s (defining as %s, already defined as %s)\n", (((void *)0))), redefinition->name, type1String, type2String);
 FreeType(type1);
 FreeType(type2);
 }
index 005edc2..267673c 100644 (file)
@@ -890,7 +890,7 @@ struct __ecereNameSpace__ecere__com__Method * method;
 
 enum yytokentype
 {
-IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371
+IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
 };
 
 typedef union YYSTYPE
@@ -1218,9 +1218,7 @@ return 0x0;
 
 extern void Compiler_Error(char *  format, ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
 
@@ -1269,14 +1267,14 @@ if(regClass->templateClass)
 regClass = regClass->templateClass;
 if(classSym->isStatic && access != 3)
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Non-static %s making use of a static class\n", (((void *)0))), word);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Non-static %s making use of a static class\n", (((void *)0))), word);
 }
 else if(access == 1)
 {
 if(!NameSpaceContained(regClass->nameSpace, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)regClass->module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace))
 {
 if(NameSpaceContained(regClass->nameSpace, &((struct __ecereNameSpace__ecere__com__Module *)(((char *)regClass->module + structSize_Instance)))->privateNameSpace) || !ModuleAccess(privateModule, regClass->module))
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Public %s making use of a private class\n", (((void *)0))), word);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Public %s making use of a private class\n", (((void *)0))), word);
 }
 }
 }
@@ -1533,7 +1531,7 @@ dataMember = link ? link->data : (((void *)0));
 else
 dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(regClass, declId->string, privateModule, (((void *)0)), (((void *)0)));
 if(dataMember)
-CheckPublicDataType(dataMember->dataType, (def->memberAccess == 2) ? 2 : access, __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "class data member", (((void *)0))));
+CheckPublicDataType(dataMember->dataType, (def->memberAccess == 2) ? 2 : access, __ecereNameSpace__ecere__GetTranslatedString("ec", "class data member", (((void *)0))));
 }
 }
 }
@@ -1560,7 +1558,7 @@ dataMember = link ? link->data : (((void *)0));
 else
 dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(regClass, spec->id->string, privateModule, (((void *)0)), (((void *)0)));
 if(dataMember)
-CheckPublicDataType(dataMember->dataType, (def->memberAccess == 2) ? 2 : access, __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "class data member", (((void *)0))));
+CheckPublicDataType(dataMember->dataType, (def->memberAccess == 2) ? 2 : access, __ecereNameSpace__ecere__GetTranslatedString("ec", "class data member", (((void *)0))));
 }
 }
 }
@@ -1568,7 +1566,7 @@ CheckPublicDataType(dataMember->dataType, (def->memberAccess == 2) ? 2 : access,
 }
 else if(decl->type == 2)
 {
-CheckPublicClass(decl->inst->_class->symbol, (def->memberAccess == 2) ? 2 : access, __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "class member instance", (((void *)0))));
+CheckPublicClass(decl->inst->_class->symbol, (def->memberAccess == 2) ? 2 : access, __ecereNameSpace__ecere__GetTranslatedString("ec", "class member instance", (((void *)0))));
 }
 }
 }
@@ -1752,13 +1750,13 @@ if(!NameSpaceContained(regClass->nameSpace, &((struct __ecereNameSpace__ecere__c
 {
 if(!regClass->base->symbol)
 regClass->base->symbol = FindClass(regClass->base->fullName);
-CheckPublicClass(regClass->base->symbol, 1, __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "class", (((void *)0))));
+CheckPublicClass(regClass->base->symbol, 1, __ecereNameSpace__ecere__GetTranslatedString("ec", "class", (((void *)0))));
 }
 else if(!symbol->isStatic && regClass->base)
 {
 if(!regClass->base->symbol)
 regClass->base->symbol = FindClass(regClass->base->fullName);
-CheckPublicClass(regClass->base->symbol, 2, __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "class", (((void *)0))));
+CheckPublicClass(regClass->base->symbol, 2, __ecereNameSpace__ecere__GetTranslatedString("ec", "class", (((void *)0))));
 }
 }
 if(definitions != (((void *)0)))
@@ -1786,7 +1784,7 @@ __ecereNameSpace__ecere__com__eClass_AddMethod(regClass, def->id->string, (((voi
 else
 {
 yylloc = def->loc;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Couldn't find member %s to override\n", (((void *)0))), def->id->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Couldn't find member %s to override\n", (((void *)0))), def->id->string);
 }
 }
 }
@@ -1896,7 +1894,7 @@ if(func->isDestructor)
 if(destructor)
 {
 yylloc = *loc;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "redefinition of destructor for class %s\n", (((void *)0))), symbol->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "redefinition of destructor for class %s\n", (((void *)0))), symbol->string);
 }
 else
 {
@@ -1915,7 +1913,7 @@ if(func->isConstructor)
 if(constructor)
 {
 yylloc = *loc;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "redefinition of constructor for class %s\n", (((void *)0))), symbol->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "redefinition of constructor for class %s\n", (((void *)0))), symbol->string);
 }
 else
 {
index 961d266..e4e8919 100644 (file)
@@ -906,7 +906,7 @@ struct __ecereNameSpace__ecere__com__Method * method;
 
 enum yytokentype
 {
-IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371
+IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
 };
 
 typedef union YYSTYPE
@@ -1123,9 +1123,7 @@ extern unsigned int MatchTypes(struct Type * source, struct Type * dest, struct
 
 extern void Compiler_Error(char *  format, ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern struct Declarator * GetFuncDecl(struct Declarator * decl);
 
@@ -1243,7 +1241,7 @@ type->extraParam = 0x1;
 yylloc = func->loc;
 if(!MatchTypes(type, methodDataType, (((void *)0)), owningClass, method->_class, 0x1, 0x1, 0x1, 0x0))
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Incompatible virtual function %s\n", (((void *)0))), method->name);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Incompatible virtual function %s\n", (((void *)0))), method->name);
 }
 else
 {
@@ -2290,7 +2288,7 @@ ListAdd(args, MkExpIdentifier(MkIdentifier(watcherName)));
 ListAdd(stmt->expressions, MkExpCall(MkExpIdentifier(MkIdentifier("eProperty_SelfWatch")), args));
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Property %s not found in class %s\n", (((void *)0))), propID->string, regClass->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Property %s not found in class %s\n", (((void *)0))), propID->string, regClass->fullName);
 }
 FreePropertyWatch(def->propertyWatch);
 def->propertyWatch = (struct PropertyWatch *)stmt;
@@ -3103,6 +3101,8 @@ struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
 } __attribute__ ((gcc_struct));
 
+extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+
 void __ecereRegisterModule_pass1(struct __ecereNameSpace__ecere__com__Instance * module)
 {
 struct __ecereNameSpace__ecere__com__Class * class;
index 8717ad1..e0a176e 100644 (file)
@@ -953,7 +953,7 @@ unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
 
 enum yytokentype
 {
-IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371
+IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
 };
 
 typedef union YYSTYPE
@@ -2572,9 +2572,7 @@ extern unsigned int inCompiler;
 
 extern void Compiler_Error(char *  format, ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 int ComputeTypeSize(struct Type * type)
 {
@@ -2656,7 +2654,7 @@ type->arraySizeExp->expType = (((void *)0));
 yylloc = type->arraySizeExp->loc;
 if(inCompiler)
 PrintExpression(type->arraySizeExp, expression);
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Array size not constant int (%s)\n", (((void *)0))), expression);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Array size not constant int (%s)\n", (((void *)0))), expression);
 yylloc = oldLoc;
 }
 GetInt(type->arraySizeExp, &type->arraySize);
@@ -3375,7 +3373,7 @@ type = source;
 source->refCount++;
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "cannot dereference type\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "cannot dereference type\n", (((void *)0))));
 }
 return type;
 }
@@ -3700,12 +3698,12 @@ char expString[10240];
 expString[0] = '\0';
 PrintExpression(member->initializer->exp, expString);
 __ecereNameSpace__ecere__sys__ChangeCh(expString, '\n', ' ');
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "unresolved symbol used as an instance method %s\n", (((void *)0))), expString);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "unresolved symbol used as an instance method %s\n", (((void *)0))), expString);
 }
 }
 else if(!MatchTypes(member->initializer->exp->expType, type, (((void *)0)), (((void *)0)), _class, 0x1, 0x1, 0x0, 0x0))
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "incompatible instance method %s\n", (((void *)0))), ident->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "incompatible instance method %s\n", (((void *)0))), ident->string);
 }
 }
 else if(member->initializer)
@@ -3737,17 +3735,17 @@ if(ident)
 {
 if(method)
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "couldn't find virtual method %s in class %s\n", (((void *)0))), ident->string, _class->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "couldn't find virtual method %s in class %s\n", (((void *)0))), ident->string, _class->fullName);
 }
 else if(_class)
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "couldn't find member %s in class %s\n", (((void *)0))), ident->string, _class->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "couldn't find member %s in class %s\n", (((void *)0))), ident->string, _class->fullName);
 if(inCompiler)
 __ecereNameSpace__ecere__com__eClass_AddDataMember(_class, ident->string, "int", 0, 0, 1);
 }
 }
 else if(_class)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "too many initializers for instantiation of class %s\n", (((void *)0))), _class->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "too many initializers for instantiation of class %s\n", (((void *)0))), _class->fullName);
 }
 }
 }
@@ -3853,7 +3851,7 @@ DeclareType(symbol->type, 0x1, 0x1);
 }
 else if(classSym)
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "couldn't find virtual method %s in class %s\n", (((void *)0))), unmangled, classSym->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "couldn't find virtual method %s in class %s\n", (((void *)0))), unmangled, classSym->string);
 }
 }
 createdExternal = ProcessClassFunction(classSym ? classSym->registered : (((void *)0)), members->function, ast, afterExternal, 0x1);
@@ -4888,9 +4886,9 @@ if((dest->staticMethod || (!dest->thisClass && !owningClassDest)) && !(source->s
 if(!paramDest || (!(paramDest->kind == 13 && paramDest->type && paramDest->type->kind == 0) && (paramDest->kind != 8 || !__ecereNameSpace__ecere__com__eClass_IsDerived(source->thisClass ? source->thisClass->registered : owningClassSource, paramDest->_class->registered))))
 {
 if(paramDest && paramDest->kind == 8)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "method class must be derived from %s\n", (((void *)0))), paramDest->_class->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "method class must be derived from %s\n", (((void *)0))), paramDest->_class->string);
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "method class should not take an object\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "method class should not take an object\n", (((void *)0))));
 return 0x0;
 }
 paramDest = paramDest->next;
@@ -4903,7 +4901,7 @@ if(dest->thisClass)
 {
 if(!paramSource || paramSource->kind != 8 || !__ecereNameSpace__ecere__com__eClass_IsDerived(paramSource->_class->registered, dest->thisClass->registered))
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "method class must be derived from %s\n", (((void *)0))), dest->thisClass->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "method class must be derived from %s\n", (((void *)0))), dest->thisClass->string);
 return 0x0;
 }
 }
@@ -4912,9 +4910,9 @@ else
 if(!paramSource || paramSource->kind != 8 || (owningClassDest && !__ecereNameSpace__ecere__com__eClass_IsDerived(paramSource->_class->registered, owningClassDest)))
 {
 if(owningClassDest)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "%s expected to be derived from method class\n", (((void *)0))), owningClassDest->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "%s expected to be derived from method class\n", (((void *)0))), owningClassDest->fullName);
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "overriding class expected to be derived from method class\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "overriding class expected to be derived from method class\n", (((void *)0))));
 return 0x0;
 }
 }
@@ -4926,7 +4924,7 @@ if(dest->thisClass)
 {
 if(!__ecereNameSpace__ecere__com__eClass_IsDerived(source->thisClass ? source->thisClass->registered : owningClassSource, dest->thisClass->registered))
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "method class must be derived from %s\n", (((void *)0))), dest->thisClass->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "method class must be derived from %s\n", (((void *)0))), dest->thisClass->string);
 return 0x0;
 }
 }
@@ -4934,7 +4932,7 @@ else
 {
 if(source->thisClass && source->thisClass->registered && owningClassDest && !__ecereNameSpace__ecere__com__eClass_IsDerived(source->thisClass->registered, owningClassDest))
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "%s expected to be derived from method class\n", (((void *)0))), source->thisClass->registered->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "%s expected to be derived from method class\n", (((void *)0))), source->thisClass->registered->fullName);
 return 0x0;
 }
 }
@@ -4942,14 +4940,14 @@ return 0x0;
 }
 if(!MatchTypes(source->returnType, dest->returnType, (((void *)0)), (((void *)0)), (((void *)0)), 0x1, 0x1, 0x0, 0x0))
 {
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "incompatible return type for function\n", (((void *)0))));
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "incompatible return type for function\n", (((void *)0))));
 return 0x0;
 }
 for(; paramDest; paramDest = paramDest->next)
 {
 if(!paramSource)
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "not enough parameters\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "not enough parameters\n", (((void *)0))));
 return 0x0;
 }
 {
@@ -4998,7 +4996,7 @@ char type[1024];
 
 type[0] = (char)0;
 PrintType(paramDest, type, 0x0, 0x1);
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "incompatible parameter %s (expected %s)\n", (((void *)0))), paramSource->name, type);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "incompatible parameter %s (expected %s)\n", (((void *)0))), paramSource->name, type);
 if(paramDestType != paramDest)
 FreeType(paramDestType);
 return 0x0;
@@ -5010,7 +5008,7 @@ paramSource = paramSource->next;
 }
 if(paramSource)
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "too many parameters\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "too many parameters\n", (((void *)0))));
 return 0x0;
 }
 return 0x1;
@@ -10721,7 +10719,7 @@ exp->type = 2;
 break;
 }
 default:
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Unhandled type populating instance\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Unhandled type populating instance\n", (((void *)0))));
 }
 }
 ListAdd(memberList, member);
@@ -10835,7 +10833,7 @@ exp->type = 2;
 break;
 }
 default:
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Unhandled type populating instance\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Unhandled type populating instance\n", (((void *)0))));
 }
 }
 ListAdd(memberList, member);
@@ -13324,7 +13322,7 @@ else if(destType && e->expType && (e->expType->classObjectType == 3 || e->expTyp
 {
 if(destType->kind == 14)
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Unspecified type\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Unspecified type\n", (((void *)0))));
 }
 else if(!(destType->truth && e->expType->kind == 8 && e->expType->_class && e->expType->_class->registered && e->expType->_class->registered->type == 1))
 {
@@ -13596,7 +13594,7 @@ else
 {
 if(inCompiler)
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Recursion in defined expression %s\n", (((void *)0))), id->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Recursion in defined expression %s\n", (((void *)0))), id->string);
 }
 }
 }
@@ -13956,7 +13954,7 @@ PrintExpression(exp->op.exp2, expString);
 if(type1 && type1->kind == 13)
 {
 if(exp->op.op == MUL_ASSIGN || exp->op.op == DIV_ASSIGN || exp->op.op == MOD_ASSIGN || exp->op.op == LEFT_ASSIGN || exp->op.op == RIGHT_ASSIGN || exp->op.op == AND_ASSIGN || exp->op.op == OR_ASSIGN)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "operator %s illegal on pointer\n", (((void *)0))), exp->op.op);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "operator %s illegal on pointer\n", (((void *)0))), exp->op.op);
 else if(exp->op.op == '=')
 {
 if(exp->op.exp2->destType)
@@ -14014,17 +14012,17 @@ if(assign && type1 && type1->kind == 13 && exp->op.exp2->expType)
 if(exp->op.exp2->expType->kind == 23 || exp->op.exp2->expType->kind == 22 || exp->op.exp2->expType->kind == 4 || exp->op.exp2->expType->kind == 3 || exp->op.exp2->expType->kind == 2 || exp->op.exp2->expType->kind == 1)
 {
 if(exp->op.op != '=' && type1->type->kind == 0)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "void *: unknown size\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "void *: unknown size\n", (((void *)0))));
 }
 else if(exp->op.exp2->expType->kind == 13 || exp->op.exp2->expType->kind == 12 || exp->op.exp2->expType->kind == 11 || exp->op.exp2->expType->kind == 16 || (type1->type->kind == 0 && exp->op.exp2->expType->kind == 8 && exp->op.exp2->expType->_class->registered && (exp->op.exp2->expType->_class->registered->type == 0 || exp->op.exp2->expType->_class->registered->type == 1 || exp->op.exp2->expType->_class->registered->type == 5)))
 {
 if(exp->op.op == ADD_ASSIGN)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "cannot add two pointers\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "cannot add two pointers\n", (((void *)0))));
 }
 else if((exp->op.exp2->expType->kind == 8 && type1->kind == 13 && type1->type->kind == 8 && type1->type->_class == exp->op.exp2->expType->_class && exp->op.exp2->expType->_class->registered && exp->op.exp2->expType->_class->registered->type == 1))
 {
 if(exp->op.op == ADD_ASSIGN)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "cannot add two pointers\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "cannot add two pointers\n", (((void *)0))));
 }
 else if(inCompiler)
 {
@@ -14036,7 +14034,7 @@ type2String[0] = '\0';
 PrintType(exp->op.exp2->expType, type1String, 0x0, 0x1);
 PrintType(type1, type2String, 0x0, 0x1);
 __ecereNameSpace__ecere__sys__ChangeCh(expString, '\n', ' ');
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "incompatible expression %s (%s); expected %s\n", (((void *)0))), expString, type1String, type2String);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "incompatible expression %s (%s); expected %s\n", (((void *)0))), expString, type1String, type2String);
 }
 }
 if(exp->op.exp2->destType == dummy)
@@ -14128,7 +14126,7 @@ FreeType(exp->op.exp1->destType);
 exp->op.exp1->destType = type2;
 type2->refCount++;
 if(!boolResult && type1->kind == 8 && (!exp->destType || exp->destType->kind != 8) && type1->_class->registered && type1->_class->registered->type == 3 && type2->_class->registered && type2->_class->registered->type == 3 && type1->_class->registered != type2->_class->registered)
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "operating on %s and %s with an untyped result, assuming %s\n", (((void *)0))), type1->_class->string, type2->_class->string, type1->_class->string);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "operating on %s and %s with an untyped result, assuming %s\n", (((void *)0))), type1->_class->string, type2->_class->string, type1->_class->string);
 if(type1->kind == 13 && type1->type->kind == 20 && type2->kind != 13)
 {
 struct Expression * argExp = GetTemplateArgExp(type1->type->templateParameter, thisClass, 0x1);
@@ -14152,7 +14150,7 @@ ProcessExpressionType(exp->op.exp2);
 if(!boolResult && ((type1->kind == 13 || type1->kind == 12 || (type1->kind == 8 && !strcmp(type1->_class->string, "String"))) && (type2->kind == 23 || type2->kind == 22 || type2->kind == 4 || type2->kind == 3 || type2->kind == 2 || type2->kind == 1)))
 {
 if(type1->kind != 8 && type1->type->kind == 0)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "void *: unknown size\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "void *: unknown size\n", (((void *)0))));
 exp->expType = type1;
 if(type1)
 type1->refCount++;
@@ -14160,14 +14158,14 @@ type1->refCount++;
 else if(!boolResult && ((type2->kind == 13 || type2->kind == 12 || (type2->kind == 8 && !strcmp(type2->_class->string, "String"))) && (type1->kind == 23 || type1->kind == 22 || type1->kind == 4 || type1->kind == 3 || type1->kind == 2 || type1->kind == 1)))
 {
 if(type2->kind != 8 && type2->type->kind == 0)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "void *: unknown size\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "void *: unknown size\n", (((void *)0))));
 exp->expType = type2;
 if(type2)
 type2->refCount++;
 }
 else if((type1->kind == 13 && type2->kind != 13 && type2->kind != 12 && type2->kind != 11 && type2->kind != 16 && type2->kind != 8 && type2->kind != 19) || (type2->kind == 13 && type1->kind != 13 && type1->kind != 12 && type1->kind != 11 && type1->kind != 16 && type1->kind != 8 && type1->kind != 19))
 {
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "different levels of indirection\n", (((void *)0))));
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "different levels of indirection\n", (((void *)0))));
 }
 else
 {
@@ -14176,7 +14174,7 @@ unsigned int success = 0x0;
 if(type1->kind == 13 && type2->kind == 13)
 {
 if(exp->op.op == '+')
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "cannot add two pointers\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "cannot add two pointers\n", (((void *)0))));
 else if(exp->op.op == '-')
 {
 if(MatchTypes(type1->type, type2->type, (((void *)0)), (((void *)0)), (((void *)0)), 0x0, 0x0, 0x0, 0x0))
@@ -14268,7 +14266,7 @@ __ecereNameSpace__ecere__sys__ChangeCh(expString2, '\n', ' ');
 PrintType(exp->op.exp1->expType, type1, 0x0, 0x1);
 PrintType(exp->op.exp2->expType, type2, 0x0, 0x1);
 }
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "incompatible expressions %s (%s) and %s (%s)\n", (((void *)0))), expString1, type1, expString2, type2);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "incompatible expressions %s (%s) and %s (%s)\n", (((void *)0))), expString1, type1, expString2, type2);
 }
 }
 }
@@ -14387,7 +14385,7 @@ __ecereNameSpace__ecere__sys__ChangeCh(expString2, '\n', ' ');
 PrintType(exp->op.exp1->expType, type1String, 0x0, 0x1);
 PrintType(exp->op.exp2->expType, type2String, 0x0, 0x1);
 }
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "incompatible expressions %s (%s) and %s (%s)\n", (((void *)0))), expString1, type1String, expString2, type2String);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "incompatible expressions %s (%s) and %s (%s)\n", (((void *)0))), expString1, type1String, expString2, type2String);
 if(type1->kind == 8 && type1->_class && type1->_class->registered && type1->_class->registered->type == 4)
 {
 exp->expType = exp->op.exp1->expType;
@@ -14480,7 +14478,7 @@ PrintExpression(exp->op.exp1, expString);
 __ecereNameSpace__ecere__sys__ChangeCh(expString, '\n', ' ');
 }
 if(expString[0])
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "couldn't determine type of %s\n", (((void *)0))), expString);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "couldn't determine type of %s\n", (((void *)0))), expString);
 }
 if(exp->op.exp2 && !exp->op.exp2->expType)
 {
@@ -14493,7 +14491,7 @@ PrintExpression(exp->op.exp2, expString);
 __ecereNameSpace__ecere__sys__ChangeCh(expString, '\n', ' ');
 }
 if(expString[0])
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "couldn't determine type of %s\n", (((void *)0))), expString);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "couldn't determine type of %s\n", (((void *)0))), expString);
 }
 if(boolResult)
 {
@@ -14814,7 +14812,7 @@ functionType = type;
 }
 if(functionType && functionType->kind != 11)
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "called object %s is not a function\n", (((void *)0))), name);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "called object %s is not a function\n", (((void *)0))), name);
 }
 else if(functionType)
 {
@@ -14876,9 +14874,9 @@ if(!type && !emptyParams)
 {
 yylloc = e->loc;
 if(methodType && methodType->methodClass)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "too many arguments for method %s::%s (%d given, expected %d)\n", (((void *)0))), methodType->methodClass->fullName, methodType->method->name, (*exp->call.arguments).count, noParams ? 0 : functionType->params.count);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "too many arguments for method %s::%s (%d given, expected %d)\n", (((void *)0))), methodType->methodClass->fullName, methodType->method->name, (*exp->call.arguments).count, noParams ? 0 : functionType->params.count);
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "too many arguments for function %s (%d given, expected %d)\n", (((void *)0))), name, (*exp->call.arguments).count, noParams ? 0 : functionType->params.count);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "too many arguments for function %s (%d given, expected %d)\n", (((void *)0))), name, (*exp->call.arguments).count, noParams ? 0 : functionType->params.count);
 break;
 }
 if(methodType && type && type->kind == 20 && type->templateParameter->type == 0)
@@ -14966,9 +14964,9 @@ type = next;
 if(type && type->kind != 14)
 {
 if(methodType && methodType->methodClass)
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "not enough arguments for method %s::%s (%d given, expected %d)\n", (((void *)0))), methodType->methodClass->fullName, methodType->method->name, exp->call.arguments ? (*exp->call.arguments).count : 0, functionType->params.count + extra);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "not enough arguments for method %s::%s (%d given, expected %d)\n", (((void *)0))), methodType->methodClass->fullName, methodType->method->name, exp->call.arguments ? (*exp->call.arguments).count : 0, functionType->params.count + extra);
 else
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "not enough arguments for function %s (%d given, expected %d)\n", (((void *)0))), name, exp->call.arguments ? (*exp->call.arguments).count : 0, functionType->params.count + extra);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "not enough arguments for function %s (%d given, expected %d)\n", (((void *)0))), name, exp->call.arguments ? (*exp->call.arguments).count : 0, functionType->params.count + extra);
 }
 yylloc = oldyylloc;
 if(type && !type->refCount)
@@ -15000,7 +14998,7 @@ exp->destType->refCount++;
 }
 }
 else
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "%s undefined; assuming extern returning int\n", (((void *)0))), string);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "%s undefined; assuming extern returning int\n", (((void *)0))), string);
 symbol = __extension__ ({
 struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
 
@@ -15016,7 +15014,7 @@ else if(exp->call.exp->type == 8)
 {
 }
 else
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "callable object undefined; extern assuming returning int\n", (((void *)0))));
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "callable object undefined; extern assuming returning int\n", (((void *)0))));
 if(!functionType->returnType)
 {
 functionType->returnType = __extension__ ({
@@ -15302,7 +15300,7 @@ struct __ecereNameSpace__ecere__com__ClassProperty * classProp = (((void *)0));
 if(id && id->_class && id->_class->name && !strcmp(id->_class->name, "property"))
 exp->member.memberType = 1;
 if(id && id->_class && type->_class && !__ecereNameSpace__ecere__com__eClass_IsDerived(type->_class->registered, _class))
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "invalid class specifier %s for object of class %s\n", (((void *)0))), _class->fullName, type->_class->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "invalid class specifier %s for object of class %s\n", (((void *)0))), _class->fullName, type->_class->string);
 if(typeKind != 19)
 {
 if((exp->member.memberType == 0 && thisPtr) || exp->member.memberType == 3)
@@ -15453,7 +15451,7 @@ ProcessExpressionType(exp);
 return ;
 }
 yylloc = exp->member.member->loc;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "couldn't find member %s in class %s\n", (((void *)0))), id->string, _class->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "couldn't find member %s in class %s\n", (((void *)0))), id->string, _class->fullName);
 if(inCompiler)
 __ecereNameSpace__ecere__com__eClass_AddDataMember(_class, id->string, "int", 0, 0, 1);
 }
@@ -15707,7 +15705,7 @@ FinishTemplatesContext(context);
 }
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "undefined class %s\n", (((void *)0))), (id && (!id->_class || id->_class->name)) ? (id->classSym ? id->classSym->string : (type->_class ? type->_class->string : (((void *)0)))) : "(null)");
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "undefined class %s\n", (((void *)0))), (id && (!id->_class || id->_class->name)) ? (id->classSym ? id->classSym->string : (type->_class ? type->_class->string : (((void *)0)))) : "(null)");
 }
 else if(type && (type->kind == 9 || type->kind == 10))
 {
@@ -15730,7 +15728,7 @@ if(inCompiler)
 PrintExpression(exp, expString);
 __ecereNameSpace__ecere__sys__ChangeCh(expString, '\n', ' ');
 }
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "member operator on non-structure type expression %s\n", (((void *)0))), expString);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "member operator on non-structure type expression %s\n", (((void *)0))), expString);
 }
 if(exp->expType && exp->expType->kind == 21 && (!exp->destType || exp->destType->kind != 21))
 {
@@ -16093,7 +16091,7 @@ ProcessExpressionType(expExt);
 else
 {
 exp->expType = ProcessTypeString("Container", 0x0);
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Couldn't determine type of array elements\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Couldn't determine type of array elements\n", (((void *)0))));
 }
 break;
 }
@@ -16165,9 +16163,9 @@ PrintExpression(exp, expString);
 __ecereNameSpace__ecere__sys__ChangeCh(expString, '\n', ' ');
 }
 if(unresolved)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "unresolved identifier %s; expected %s\n", (((void *)0))), expString, type2);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "unresolved identifier %s; expected %s\n", (((void *)0))), expString, type2);
 else if(exp->type != 16)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "couldn't determine type of %s; expected %s\n", (((void *)0))), expString, type2);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "couldn't determine type of %s; expected %s\n", (((void *)0))), expString, type2);
 }
 }
 else
@@ -16181,9 +16179,9 @@ PrintExpression(exp, expString);
 __ecereNameSpace__ecere__sys__ChangeCh(expString, '\n', ' ');
 }
 if(unresolved)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "unresolved identifier %s\n", (((void *)0))), expString);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "unresolved identifier %s\n", (((void *)0))), expString);
 else if(exp->type != 16)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "couldn't determine type of %s\n", (((void *)0))), expString);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "couldn't determine type of %s\n", (((void *)0))), expString);
 }
 }
 else
@@ -16211,7 +16209,7 @@ PrintExpression(exp, expString);
 __ecereNameSpace__ecere__sys__ChangeCh(expString, '\n', ' ');
 }
 if(!sourceFile || (strcmp(sourceFile, "src\\lexer.ec") && strcmp(sourceFile, "src/lexer.ec") && strcmp(sourceFile, "src\\grammar.ec") && strcmp(sourceFile, "src/grammar.ec")))
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "incompatible expression %s (%s); expected %s\n", (((void *)0))), expString, type1, type2);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "incompatible expression %s (%s); expected %s\n", (((void *)0))), expString, type1, type2);
 FreeType(exp->expType);
 exp->destType->refCount++;
 exp->expType = exp->destType;
@@ -16243,9 +16241,9 @@ exp->cast.exp = newExp;
 else if(unresolved)
 {
 if(exp->identifier->_class && exp->identifier->_class->name)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "unresolved identifier %s::%s\n", (((void *)0))), exp->identifier->_class->name, exp->identifier->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "unresolved identifier %s::%s\n", (((void *)0))), exp->identifier->_class->name, exp->identifier->string);
 else if(exp->identifier->string && exp->identifier->string[0])
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "unresolved identifier %s\n", (((void *)0))), exp->identifier->string);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "unresolved identifier %s\n", (((void *)0))), exp->identifier->string);
 }
 else if(!exp->expType && exp->type != 16)
 {
@@ -16257,11 +16255,11 @@ if(inCompiler)
 PrintExpression(exp, expString);
 __ecereNameSpace__ecere__sys__ChangeCh(expString, '\n', ' ');
 }
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "couldn't determine type of %s\n", (((void *)0))), expString);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "couldn't determine type of %s\n", (((void *)0))), expString);
 }
 if(inCompiler)
 ApplyAnyObjectLogic(exp);
-if(!notByReference && exp->expType && exp->expType->kind == 8 && exp->expType->_class && exp->expType->_class->registered && exp->expType->_class->registered->type == 5 && (!exp->destType || (exp->destType->kind != 3 && exp->destType->kind != 4 && exp->destType->kind != 22 && exp->destType->kind != 23 && exp->destType->kind != 5 && exp->destType->kind != 2 && exp->destType->kind != 1)))
+if(!notByReference && exp->expType && exp->expType->kind == 8 && exp->expType->_class && exp->expType->_class->registered && exp->expType->_class->registered->type == 5 && (!exp->destType || (exp->destType->kind != 3 && exp->destType->kind != 4 && exp->destType->kind != 22 && exp->destType->kind != 23 && exp->destType->kind != 5 && exp->destType->kind != 2 && exp->destType->kind != 1 && exp->destType->kind != 24)))
 {
 exp->byReference = 0x1;
 }
@@ -16408,7 +16406,7 @@ if(type && type->kind == 12)
 FreeType(initializerType);
 if(type && type->kind != 12 && type->kind != 9 && type->kind != 10 && (type->kind != 8 || !type->_class->registered || type->_class->registered->type != 1))
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Assigning list initializer to non list\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Assigning list initializer to non list\n", (((void *)0))));
 }
 break;
 }
@@ -17068,7 +17066,7 @@ FreeList(exp, FreeExpression);
 else
 {
 arrayExp->expType = ProcessTypeString("Container", 0x0);
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Couldn't determine type of array elements\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Couldn't determine type of array elements\n", (((void *)0))));
 }
 }
 else if(isLinkList && !isList)
@@ -17181,7 +17179,7 @@ break;
 }
 else
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Expression is not a container\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Expression is not a container\n", (((void *)0))));
 }
 break;
 }
@@ -17339,12 +17337,12 @@ ListAdd(args, MkExpIdentifier(MkIdentifier(watcherName)));
 ListAdd(stmt->expressions, MkExpCall(MkExpIdentifier(MkIdentifier("ecere::com::eInstance_Watch")), args));
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Property %s not found in class %s\n", (((void *)0))), prop->name, _class->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Property %s not found in class %s\n", (((void *)0))), prop->name, _class->fullName);
 }
 }
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Invalid watched object\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Invalid watched object\n", (((void *)0))));
 }
 curExternal = external;
 curContext = context;
@@ -17355,7 +17353,7 @@ FreeExpression(object);
 FreeList(watches, FreePropertyWatch);
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "No observer specified and not inside a _class\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "No observer specified and not inside a _class\n", (((void *)0))));
 }
 else
 {
@@ -17401,7 +17399,7 @@ if(prop)
 CreateFireWatcher(prop, object, stmt);
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Property %s not found in class %s\n", (((void *)0))), propID->string, _class->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Property %s not found in class %s\n", (((void *)0))), propID->string, _class->fullName);
 }
 }
 else
@@ -17425,7 +17423,7 @@ FreeExpression(object);
 FreeList(watches, FreeIdentifier);
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Invalid object specified and not inside a class\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Invalid object specified and not inside a class\n", (((void *)0))));
 }
 break;
 }
@@ -17485,7 +17483,7 @@ ListAdd(args, watcher ? CopyExpression(watcher) : MkExpIdentifier(MkIdentifier("
 ListAdd(stmt->expressions, MkExpCall(MkExpIdentifier(MkIdentifier("ecere::com::eInstance_StopWatching")), args));
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Property %s not found in class %s\n", (((void *)0))), prop->name, _class->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Property %s not found in class %s\n", (((void *)0))), prop->name, _class->fullName);
 }
 }
 if(object)
@@ -17495,10 +17493,10 @@ FreeExpression(watcher);
 FreeList(watches, FreeIdentifier);
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Invalid object specified and not inside a class\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Invalid object specified and not inside a class\n", (((void *)0))));
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "No observer specified and not inside a class\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "No observer specified and not inside a class\n", (((void *)0))));
 }
 break;
 }
@@ -18019,6 +18017,8 @@ extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__e
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char *  name, char *  baseName, int size, int sizeClass, unsigned int (*  Constructor)(void * ), void (*  Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
 
+extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+
 void __ecereRegisterModule_pass15(struct __ecereNameSpace__ecere__com__Instance * module)
 {
 struct __ecereNameSpace__ecere__com__Class * class;
index dbea8b1..8684ad0 100644 (file)
@@ -888,7 +888,7 @@ struct __ecereNameSpace__ecere__com__Method * method;
 
 enum yytokentype
 {
-IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371
+IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
 };
 
 typedef union YYSTYPE
@@ -2834,9 +2834,7 @@ return 0x1;
 
 extern void Compiler_Error(char *  format, ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 static unsigned int ProcessBracketInst(struct Instantiation * inst, struct __ecereNameSpace__ecere__sys__OldList * list)
 {
@@ -2906,7 +2904,7 @@ if(dataMember->isProperty)
 {
 if(!((struct __ecereNameSpace__ecere__com__Property *)dataMember)->Set)
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "No set defined for property %s\n", (((void *)0))), dataMember->name);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "No set defined for property %s\n", (((void *)0))), dataMember->name);
 continue;
 }
 recursionCount--;
@@ -2965,7 +2963,7 @@ if(dataMember->isProperty)
 {
 if(!((struct __ecereNameSpace__ecere__com__Property *)dataMember)->Set)
 {
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "No set defined for property %s\n", (((void *)0))), dataMember->name);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "No set defined for property %s\n", (((void *)0))), dataMember->name);
 continue;
 }
 recursionCount--;
index d7ab068..93235f2 100644 (file)
@@ -879,7 +879,7 @@ struct __ecereNameSpace__ecere__com__Method * method;
 
 enum yytokentype
 {
-IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371
+IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
 };
 
 typedef union YYSTYPE
@@ -1403,9 +1403,7 @@ extern void FreeType(struct Type * type);
 
 extern void Compiler_Error(char *  format, ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, struct __ecereNameSpace__ecere__com__Instance * module);
 
@@ -2078,7 +2076,7 @@ if(member)
 memberExp->member.memberType = 3;
 }
 else
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "no set defined for property %s of class %s\n", (((void *)0))), prop->name, prop->_class->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "no set defined for property %s of class %s\n", (((void *)0))), prop->name, prop->_class->fullName);
 }
 }
 else
@@ -3121,11 +3119,11 @@ prop = (((void *)0));
 else
 {
 if(((unsigned int)((exp->usage & 0x40) >> 6)))
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "cannot obtain address of property\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "cannot obtain address of property\n", (((void *)0))));
 else if(!prop->Get)
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "no get defined for property %s of class %s\n", (((void *)0))), prop->name, prop->_class->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "no get defined for property %s of class %s\n", (((void *)0))), prop->name, prop->_class->fullName);
 else if(((unsigned int)((exp->usage & 0x80) >> 7)))
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "no get defined for property %s of class %s\n", (((void *)0))), prop->name, prop->_class->fullName);
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "no get defined for property %s of class %s\n", (((void *)0))), prop->name, prop->_class->fullName);
 }
 }
 }
index 81ca4c5..823f7e6 100644 (file)
@@ -865,7 +865,7 @@ struct __ecereNameSpace__ecere__com__Method * method;
 
 enum yytokentype
 {
-IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371
+IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
 };
 
 typedef union YYSTYPE
index 4183deb..3af5c20 100644 (file)
@@ -635,9 +635,7 @@ extern void FreeTypeName(struct TypeName * typeName);
 
 extern void Compiler_Warning(char *  format, ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
 
@@ -711,12 +709,12 @@ FreeTypeName(parsedType);
 parsedType = (((void *)0));
 if(parseTypeError)
 {
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "parsing type %s\n", (((void *)0))), string);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "parsing type %s\n", (((void *)0))), string);
 }
 }
 else
 {
-Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "parsing type %s\n", (((void *)0))), string);
+Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "parsing type %s\n", (((void *)0))), string);
 decl = baseDecl;
 }
 yylloc = oldLocation;
index 24759a1..dd59503 100644 (file)
@@ -64,12 +64,12 @@ OBJECTS = $(ECOBJECTS) $(OBJ)$(MODULE).main$(O)
 SOURCES = $(ECSOURCES)
 
 RESOURCES = \
-       locale/ecc/es.mo \
-       locale/ecc/he.mo \
-       locale/ecc/pt_BR.mo \
-       locale/ecc/ru.mo \
-       locale/ecc/vi.mo \
-       locale/ecc/zh_CN.mo
+       locale/es.mo \
+       locale/he.mo \
+       locale/pt_BR.mo \
+       locale/ru.mo \
+       locale/vi.mo \
+       locale/zh_CN.mo
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
 
@@ -82,12 +82,10 @@ PRJ_CFLAGS += \
         $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -w
 
 
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers
 
-
-
-
 CECFLAGS += -cpp $(_CPP)
 
 ifndef STATIC_LIBRARY_TARGET
@@ -118,7 +116,7 @@ ifndef STATIC_LIBRARY_TARGET
 ifndef NOSTRIP
        $(STRIP) $(STRIPOPT) $(TARGET)
 endif
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/ecc/es.mo locale/ecc/he.mo locale/ecc/pt_BR.mo locale/ecc/ru.mo locale/ecc/vi.mo locale/ecc/zh_CN.mo "locale/ecc"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/he.mo locale/pt_BR.mo locale/ru.mo locale/vi.mo locale/zh_CN.mo "locale"
 else
        $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
 endif
index 26b50a5..6233bbe 100644 (file)
@@ -398,6 +398,16 @@ class CompilerApp : Application
                else
                   valid = false;
             }
+            else if(!strcmp(arg+1, "module"))
+            {
+               if(c + 1 < argc)
+               {
+                  SetI18nModuleName(argv[c+1]);
+                  c++;
+               }
+               else
+                  valid = false;
+            }
             else if(!strcmp(arg+1, "memguard"))
             {
                SetMemoryGuard(true);
@@ -442,7 +452,7 @@ class CompilerApp : Application
 
       if(!valid)
       {
-         printf($"Syntax:\n   ecc [-t <target platform>] [-cpp <c preprocessor>] [-o <output>] [-symbols <outputdir>] [-I<includedir>]* [-isystem <sysincludedir>]* [-D<definition>]* -c <input>\n");
+         printf($"Syntax:\n   ecc [-t <target platform>] [-cpp <c preprocessor>] [-o <output>] [-module <module>] [-symbols <outputdir>] [-I<includedir>]* [-isystem <sysincludedir>]* [-D<definition>]* -c <input>\n");
       }
       else
       {
index 838bf6a..644a908 100644 (file)
       {
          "Folder" : "locale",
          "Files" : [
-            {
-               "Folder" : "ecc",
-               "Files" : [
-                  "es.mo",
-                  "he.mo",
-                  "pt_BR.mo",
-                  "ru.mo",
-                  "vi.mo",
-                  "zh_CN.mo"
-               ]
-            }
+            "es.mo",
+            "he.mo",
+            "pt_BR.mo",
+            "ru.mo",
+            "vi.mo",
+            "zh_CN.mo"
          ]
       }
    ]
index 859319f..09ddafa 100644 (file)
@@ -64,11 +64,11 @@ OBJECTS = $(ECOBJECTS) $(OBJ)$(MODULE).main$(O)
 SOURCES = $(ECSOURCES)
 
 RESOURCES = \
-       locale/ecp/es.mo \
-       locale/ecp/he.mo \
-       locale/ecp/pt_BR.mo \
-       locale/ecp/ru.mo \
-       locale/ecp/zh_CN.mo
+       locale/es.mo \
+       locale/he.mo \
+       locale/pt_BR.mo \
+       locale/ru.mo \
+       locale/zh_CN.mo
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
 
@@ -80,13 +80,10 @@ endif
 PRJ_CFLAGS += \
         $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -w
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers
 
-
-
-
 CECFLAGS += -cpp $(_CPP)
 
 ifndef STATIC_LIBRARY_TARGET
@@ -117,7 +114,7 @@ ifndef STATIC_LIBRARY_TARGET
 ifndef NOSTRIP
        $(STRIP) $(STRIPOPT) $(TARGET)
 endif
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/ecp/es.mo locale/ecp/he.mo locale/ecp/pt_BR.mo locale/ecp/ru.mo locale/ecp/zh_CN.mo "locale"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/he.mo locale/pt_BR.mo locale/ru.mo locale/zh_CN.mo "locale"
 else
        $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
 endif
index 1163916..8b82156 100644 (file)
@@ -1445,6 +1445,16 @@ class PrecompApp : Application
             {
                SetStrictNameSpaces(true);
             }
+            else if(!strcmp(arg+1, "module"))
+            {
+               if(c + 1 < argc)
+               {
+                  SetI18nModuleName(argv[c+1]);
+                  c++;
+               }
+               else
+                  valid = false;
+            }
          }
          else
             valid = false;
index cabe17d..13e37cc 100644 (file)
       {
          "Folder" : "locale",
          "Files" : [
-            "locale/ecp/es.mo",
-            "locale/ecp/he.mo",
-            "locale/ecp/pt_BR.mo",
-            "locale/ecp/ru.mo",
-            "locale/ecp/zh_CN.mo"
+            "es.mo",
+            "he.mo",
+            "pt_BR.mo",
+            "ru.mo",
+            "zh_CN.mo"
          ]
       }
    ]
index 7522244..4537e6f 100644 (file)
@@ -64,11 +64,11 @@ OBJECTS = $(ECOBJECTS) $(OBJ)$(MODULE).main$(O)
 SOURCES = $(ECSOURCES)
 
 RESOURCES = \
-       locale/ecs/es.mo \
-       locale/ecs/he.mo \
-       locale/ecs/pt_BR.mo \
-       locale/ecs/ru.mo \
-       locale/ecs/zh_CN.mo
+       locale/es.mo \
+       locale/he.mo \
+       locale/pt_BR.mo \
+       locale/ru.mo \
+       locale/zh_CN.mo
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
 
@@ -80,13 +80,10 @@ endif
 PRJ_CFLAGS += \
         $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -w
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers
 
-
-
-
 CECFLAGS += -cpp $(_CPP)
 
 ifndef STATIC_LIBRARY_TARGET
@@ -117,7 +114,7 @@ ifndef STATIC_LIBRARY_TARGET
 ifndef NOSTRIP
        $(STRIP) $(STRIPOPT) $(TARGET)
 endif
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/ecs/es.mo locale/ecs/he.mo locale/ecs/pt_BR.mo locale/ecs/ru.mo locale/ecs/zh_CN.mo "locale/ecs"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/he.mo locale/pt_BR.mo locale/ru.mo locale/zh_CN.mo "locale"
 else
        $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
 endif
index 6b1fbbf..66fee87 100644 (file)
@@ -642,7 +642,12 @@ static void WriteMain(char * fileName)
                f.Printf("   __ecereCreateModuleInstances_i18n();\n");
          }
       if(i18n)
-         f.Printf("      LoadTranslatedStrings(module, \"%s\");\n", projectName);
+      {
+         if(isDynamicLibrary)
+            f.Printf("      LoadTranslatedStrings(\"%s\", \"%s\");\n", projectName, projectName);
+         else
+            f.Printf("      LoadTranslatedStrings(null, \"%s\");\n", projectName);
+      }
       if(isDynamicLibrary)
       {
          //f.Printf("   module._vTbl[10](module);\n");
@@ -730,7 +735,8 @@ static void WriteMain(char * fileName)
             f.Printf("\n");
          }
          if(i18n)
-            f.Printf("   UnloadTranslatedStrings(__currentModule);\n");
+            //f.Printf("   UnloadTranslatedStrings(__currentModule);\n");
+            f.Printf("   UnloadTranslatedStrings(\"%s\");\n", projectName);
          if(destroyI18n)
             f.Printf("   __ecereDestroyModuleInstances_i18n();\n");
       }
index dd03473..dd4b337 100644 (file)
       {
          "Folder" : "locale",
          "Files" : [
-            {
-               "Folder" : "ecs",
-               "Files" : [
-                  "es.mo",
-                  "he.mo",
-                  "pt_BR.mo",
-                  "ru.mo",
-                  "zh_CN.mo"
-               ]
-            }
+            "es.mo",
+            "he.mo",
+            "pt_BR.mo",
+            "ru.mo",
+            "zh_CN.mo"
          ]
       }
    ]
index 69105f5..9ae6315 100644 (file)
@@ -100,9 +100,9 @@ SOURCES = $(ECSOURCES) \
        ../bootstrap/bsl.c
 
 RESOURCES = \
-       locale/ec/es.mo \
-       locale/ec/mr.mo \
-       locale/ec/zh_CN.mo
+       locale/es.mo \
+       locale/mr.mo \
+       locale/zh_CN.mo
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
 
@@ -118,13 +118,10 @@ CUSTOM1_PRJ_CFLAGS = \
                         -I../bootstrap/include \
         $(PRJ_CFLAGS)
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers
 
-
-
-
 CECFLAGS += -cpp $(_CPP)
 
 ifndef STATIC_LIBRARY_TARGET
@@ -156,7 +153,7 @@ ifndef STATIC_LIBRARY_TARGET
 ifndef NOSTRIP
        $(STRIP) $(STRIPOPT) $(TARGET)
 endif
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/ec/es.mo locale/ec/mr.mo locale/ec/zh_CN.mo "locale/ec"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/mr.mo locale/zh_CN.mo "locale"
 else
        $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
 endif
index 48eb8ec..6f251d5 100644 (file)
       {
          "Folder" : "locale",
          "Files" : [
-            {
-               "Folder" : "ec",
-               "Files" : [
-                  "es.mo",
-                  "mr.mo",
-                  "zh_CN.mo"
-               ]
-            }
+            "es.mo",
+            "mr.mo",
+            "zh_CN.mo"
          ]
       }
    ]
index ff89c20..4189bfe 100644 (file)
@@ -2805,9 +2805,7 @@ extern struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__
 
 extern void Compiler_Error(char *  format, ...);
 
-extern __declspec(dllexport) char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
-
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern __declspec(dllexport) char *  __ecereNameSpace__ecere__GetTranslatedString(char * name, char *  string, char *  stringAndContext);
 
 extern struct AsmField * MkAsmField(char *  command, struct Expression * expression, struct Identifier * symbolic);
 
@@ -10999,49 +10997,49 @@ break;
 case 1112:
 {
 yyval.stmt = yyvsp[(1) - (1)].stmt;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 ;
 }
 break;
 case 1113:
 {
 yyval.stmt = yyvsp[(1) - (1)].stmt;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 ;
 }
 break;
 case 1114:
 {
 yyval.stmt = yyvsp[(1) - (1)].stmt;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 ;
 }
 break;
 case 1115:
 {
 yyval.stmt = yyvsp[(1) - (1)].stmt;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 ;
 }
 break;
 case 1116:
 {
 yyval.stmt = yyvsp[(1) - (1)].stmt;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 ;
 }
 break;
 case 1117:
 {
 yyval.stmt = yyvsp[(1) - (2)].stmt;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 ;
 }
 break;
 case 1118:
 {
 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (1)].list);
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 yyval.stmt->loc = (yylsp[(1) - (1)]);
 ;
 }
index f5c80f9..4d5e08f 100644 (file)
@@ -300,7 +300,8 @@ Expression MkExpIntlString(char * string, char * context)
       }
       list.Add(yylloc);
    }
-   ListAdd(list, QMkExpId("__thisModule"));
+   //ListAdd(list, QMkExpId("__thisModule"));
+   ListAdd(list, MkExpString(QMkString(i18nModuleName ? i18nModuleName : "")));
    ListAdd(list, MkExpString(string));
    if(context)
    {
index 27abca2..53dbf56 100644 (file)
@@ -82,6 +82,8 @@ char * outputFile;
 public void SetOutputFile(char * s) { outputFile = s; } public char * GetOutputFile() { return outputFile; }
 char * sourceFile;
 public void SetSourceFile(char * s) { sourceFile = s; } public char * GetSourceFile() { return sourceFile; }
+char * i18nModuleName;
+public void SetI18nModuleName(char * s) { i18nModuleName = s; } public char * GetI18nModuleName() { return i18nModuleName; }
 
 public void SetGlobalContext(Context context) { globalContext = context; } public Context GetGlobalContext() { return globalContext; }
 public void SetTopContext(Context context) { topContext = context; } public Context GetTopContext() { return topContext; }
index 9ee684b..dc9ac19 100644 (file)
@@ -71,9 +71,9 @@ OBJECTS = $(ECOBJECTS) $(OBJ)$(MODULE).main$(O)
 SOURCES = $(ECSOURCES)
 
 RESOURCES = \
-       locale/documentor/es.mo \
-       locale/documentor/pt_BR.mo \
-       locale/documentor/zh_CN.mo \
+       locale/es.mo \
+       locale/pt_BR.mo \
+       locale/zh_CN.mo \
        ../ide/res/actions/docOpen.png \
        res/documentorIcon.png
 
@@ -87,7 +87,7 @@ endif
 PRJ_CFLAGS += \
         $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -w
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers
 
@@ -122,7 +122,7 @@ ifndef NOSTRIP
        $(STRIP) $(STRIPOPT) $(TARGET)
 endif
        $(EAR) aw$(EARFLAGS) $(TARGET) res/documentorIcon.png ""
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/documentor/es.mo locale/documentor/pt_BR.mo locale/documentor/zh_CN.mo "locale/documentor"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/pt_BR.mo locale/zh_CN.mo "locale"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../ide/res/actions/docOpen.png "actions"
 else
        $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
index 62e0cb6..17c01f1 100644 (file)
       {
          "Folder" : "locale",
          "Files" : [
-            {
-               "Folder" : "documentor",
-               "Files" : [
-                  "es.mo",
-                  "pt_BR.mo",
-                  "zh_CN.mo"
-               ]
-            }
+            "es.mo",
+            "pt_BR.mo",
+            "zh_CN.mo"
          ]
       },
       {
index a91c81c..ea23a5a 100644 (file)
@@ -64,9 +64,9 @@ OBJECTS = $(ECOBJECTS) $(OBJ)$(MODULE).main$(O)
 SOURCES = $(ECSOURCES)
 
 RESOURCES = \
-       locale/ear/es.mo \
-       locale/ear/ru.mo \
-       locale/ear/zh_CN.mo \
+       locale/es.mo \
+       locale/ru.mo \
+       locale/zh_CN.mo \
        ../extract/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/extract$(E)
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
@@ -79,13 +79,10 @@ endif
 PRJ_CFLAGS += \
         $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -w
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers
 
-
-
-
 CECFLAGS += -cpp $(_CPP)
 
 ifndef STATIC_LIBRARY_TARGET
@@ -125,7 +122,7 @@ ifndef NOSTRIP
        $(STRIP) $(STRIPOPT) $(TARGET)
 endif
        $(EAR) aw$(EARFLAGS) $(TARGET) ../extract/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/extract$(E) ""
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/ear/es.mo locale/ear/ru.mo locale/ear/zh_CN.mo "locale"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/ru.mo locale/zh_CN.mo "locale"
 else
        $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
 endif
index 53f9f80..af79152 100644 (file)
@@ -48,9 +48,9 @@
       {
          "Folder" : "locale",
          "Files" : [
-            "locale/ear/es.mo",
-            "locale/ear/ru.mo",
-            "locale/ear/zh_CN.mo"
+            "es.mo",
+            "ru.mo",
+            "zh_CN.mo"
          ]
       },
       "../extract/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)/extract$(E)"
index be6b716..2681ede 100644 (file)
@@ -91,11 +91,18 @@ RESOURCES1 = \
        ../../ecere/res/vanilla/ecere/places/networkServer.png \
        ../../ecere/res/vanilla/ecere/places/networkWorkgroup.png \
        ../../ecere/res/vanilla/ecere/status/folderOpen.png \
-       locale/extract/es.mo \
-       locale/extract/he.mo
+       ../../ecere/locale/es.mo
 RESOURCES2 = \
-       locale/extract/ru.mo \
-       locale/extract/zh_CN.mo
+       ../../ecere/locale/hu.mo \
+       ../../ecere/locale/mr.mo \
+       ../../ecere/locale/nl.mo \
+       ../../ecere/locale/pt_BR.mo \
+       ../../ecere/locale/ru.mo \
+       ../../ecere/locale/zh_CN.mo \
+       locale/es.mo \
+       locale/he.mo \
+       locale/ru.mo \
+       locale/zh_CN.mo
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
 
@@ -109,11 +116,10 @@ PRJ_CFLAGS += \
         $(if $(DEBUG), -g, -Os) $(FPIC) -w \
                         -DECERE_STATIC
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers
 
-
 # PLATFORM-SPECIFIC OPTIONS
 
 ifdef WINDOWS_TARGET
@@ -166,8 +172,6 @@ endif
 endif
 endif
 
-
-
 CECFLAGS += -cpp $(_CPP)
 
 ifndef STATIC_LIBRARY_TARGET
@@ -211,7 +215,8 @@ endif
        $(EAR) aw$(EARFLAGS) $(TARGET) ../../ecere/res/vanilla/ecere/elements/optionBoxSelected.png ../../ecere/res/vanilla/ecere/elements/optionBoxSelectedDown.png ../../ecere/res/vanilla/ecere/elements/optionBoxUp.png "ecere/elements"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../../ecere/res/vanilla/ecere/places/driveRemote.png ../../ecere/res/vanilla/ecere/places/folder.png ../../ecere/res/vanilla/ecere/places/folderRemote.png ../../ecere/res/vanilla/ecere/places/networkServer.png ../../ecere/res/vanilla/ecere/places/networkWorkgroup.png "ecere/places"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../../ecere/res/vanilla/ecere/status/folderOpen.png "ecere/status"
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/extract/es.mo locale/extract/he.mo locale/extract/ru.mo locale/extract/zh_CN.mo "locale"
+       $(EAR) aw$(EARFLAGS) $(TARGET) ../../ecere/locale/es.mo ../../ecere/locale/hu.mo ../../ecere/locale/mr.mo ../../ecere/locale/nl.mo ../../ecere/locale/pt_BR.mo ../../ecere/locale/ru.mo ../../ecere/locale/zh_CN.mo "ecere/locale"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/he.mo locale/ru.mo locale/zh_CN.mo "locale"
 else
        $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
 endif
index bbc1405..36670ae 100644 (file)
                "Files" : [
                   "folderOpen.png"
                ]
+            },
+            {
+               "Folder" : "locale",
+               "Files" : [
+                  "../../ecere/locale/es.mo",
+                  "../../ecere/locale/hu.mo",
+                  "../../ecere/locale/mr.mo",
+                  "../../ecere/locale/nl.mo",
+                  "../../ecere/locale/pt_BR.mo",
+                  "../../ecere/locale/ru.mo",
+                  "../../ecere/locale/zh_CN.mo"
+               ]
             }
          ]
       },
       {
          "Folder" : "locale",
          "Files" : [
-            "locale/extract/es.mo",
-            "locale/extract/he.mo",
-            "locale/extract/ru.mo",
-            "locale/extract/zh_CN.mo"
+            "es.mo",
+            "he.mo",
+            "ru.mo",
+            "zh_CN.mo"
          ]
       }
    ]
index f4f6aad..6667ec7 100644 (file)
@@ -376,13 +376,13 @@ RESOURCES3 = \
        $(RES)status/audioVolumeHigh.png \
        $(RES)status/folderOpen.png \
        $(RES)unicode/derivedGeneralCategoryStripped.txt \
-       locale/ecere/es.mo \
-       locale/ecere/hu.mo \
-       locale/ecere/mr.mo \
-       locale/ecere/nl.mo \
-       locale/ecere/pt_BR.mo \
-       locale/ecere/ru.mo \
-       locale/ecere/zh_CN.mo
+       locale/es.mo \
+       locale/hu.mo \
+       locale/mr.mo \
+       locale/nl.mo \
+       locale/pt_BR.mo \
+       locale/ru.mo \
+       locale/zh_CN.mo
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
 
@@ -425,11 +425,10 @@ CUSTOM1_PRJ_CFLAGS = \
                         -DECERE_COM_MODULE \
         $(PRJ_CFLAGS)
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers -defaultns ecere
 
-
 # PLATFORM-SPECIFIC OPTIONS
 
 ifdef WINDOWS_TARGET
@@ -505,8 +504,6 @@ endif
 endif
 endif
 
-
-
 CECFLAGS += -cpp $(_CPP)
 
 # TARGETS
@@ -584,7 +581,7 @@ endif
        $(EAR) aw$(EARFLAGS) $(TARGET) $(RES)places/driveRemote.png $(RES)places/folder.png $(RES)places/folderRemote.png $(RES)places/networkServer.png $(RES)places/networkWorkgroup.png $(RES)places/brokenFolder.png "places"
        $(EAR) aw$(EARFLAGS) $(TARGET) $(RES)status/audioVolumeHigh.png $(RES)status/folderOpen.png "status"
        $(EAR) aw$(EARFLAGS) $(TARGET) $(RES)unicode/derivedGeneralCategoryStripped.txt "unicode"
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/ecere/es.mo locale/ecere/hu.mo locale/ecere/mr.mo locale/ecere/nl.mo locale/ecere/pt_BR.mo locale/ecere/ru.mo locale/ecere/zh_CN.mo "locale/ecere"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/hu.mo locale/mr.mo locale/nl.mo locale/pt_BR.mo locale/ru.mo locale/zh_CN.mo "locale"
 else
        $(AR) rcs $(TARGET) @$(OBJ)objects.lst $(LIBS)
 endif
index 5ebd4bd..0749e1c 100644 (file)
@@ -106,11 +106,10 @@ PRJ_CFLAGS += \
                         -DECERE_COM_MODULE \
                         -DECERE_NOFILE
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers -defaultns ecere
 
-
 # PLATFORM-SPECIFIC OPTIONS
 
 ifdef LINUX_TARGET
@@ -124,8 +123,6 @@ endif
 
 endif
 
-
-
 CECFLAGS += -cpp $(_CPP)
 
 # TARGETS
index 49c2644..28755d8 100644 (file)
@@ -345,13 +345,13 @@ RESOURCES3 = \
        $(RES)status/audioVolumeHigh.png \
        $(RES)status/folderOpen.png \
        $(RES)unicode/derivedGeneralCategoryStripped.txt \
-       locale/ecere/es.mo \
-       locale/ecere/hu.mo \
-       locale/ecere/mr.mo \
-       locale/ecere/nl.mo \
-       locale/ecere/pt_BR.mo \
-       locale/ecere/ru.mo \
-       locale/ecere/zh_CN.mo
+       locale/es.mo \
+       locale/hu.mo \
+       locale/mr.mo \
+       locale/nl.mo \
+       locale/pt_BR.mo \
+       locale/ru.mo \
+       locale/zh_CN.mo
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
 
@@ -398,6 +398,7 @@ CUSTOM1_PRJ_CFLAGS = \
                         -DECERE_COM_MODULE \
         $(PRJ_CFLAGS)
 
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers -defaultns ecere
 
@@ -540,7 +541,7 @@ endif
        $(EAR) aw$(EARFLAGS) $(TARGET) $(RES)places/driveRemote.png $(RES)places/folder.png $(RES)places/folderRemote.png $(RES)places/networkServer.png $(RES)places/networkWorkgroup.png $(RES)places/brokenFolder.png "places"
        $(EAR) aw$(EARFLAGS) $(TARGET) $(RES)status/audioVolumeHigh.png $(RES)status/folderOpen.png "status"
        $(EAR) aw$(EARFLAGS) $(TARGET) $(RES)unicode/derivedGeneralCategoryStripped.txt "unicode"
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/ecere/es.mo locale/ecere/hu.mo locale/ecere/mr.mo locale/ecere/nl.mo locale/ecere/pt_BR.mo locale/ecere/ru.mo locale/ecere/zh_CN.mo "locale/ecere"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/hu.mo locale/mr.mo locale/nl.mo locale/pt_BR.mo locale/ru.mo locale/zh_CN.mo "locale"
 else
        $(AR) rcs $(TARGET) @$(OBJ)objects.lst $(LIBS)
 endif
index 0be341e..8bc628c 100644 (file)
@@ -369,11 +369,10 @@ CUSTOM1_PRJ_CFLAGS = \
                         -DECERE_COM_MODULE \
         $(PRJ_CFLAGS)
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers -defaultns ecere
 
-
 # PLATFORM-SPECIFIC OPTIONS
 
 ifdef WINDOWS_TARGET
index d28fad4..31adde3 100644 (file)
@@ -2388,18 +2388,13 @@ from wherever you obtained them.
       {
          "Folder" : "locale",
          "Files" : [
-            {
-               "Folder" : "ecere",
-               "Files" : [
-                  "locale/ecere/es.mo",
-                  "locale/ecere/hu.mo",
-                  "locale/ecere/mr.mo",
-                  "locale/ecere/nl.mo",
-                  "locale/ecere/pt_BR.mo",
-                  "locale/ecere/ru.mo",
-                  "locale/ecere/zh_CN.mo"
-               ]
-            }
+            "locale/es.mo",
+            "locale/hu.mo",
+            "locale/mr.mo",
+            "locale/nl.mo",
+            "locale/pt_BR.mo",
+            "locale/ru.mo",
+            "locale/zh_CN.mo"
          ],
          "Configurations" : [
             {
similarity index 100%
rename from ecere/locale/ecere/es.mo
rename to ecere/locale/es.mo
similarity index 100%
rename from ecere/locale/ecere/es.po
rename to ecere/locale/es.po
similarity index 100%
rename from ecere/locale/ecere/hu.mo
rename to ecere/locale/hu.mo
similarity index 100%
rename from ecere/locale/ecere/hu.po
rename to ecere/locale/hu.po
similarity index 100%
rename from ecere/locale/ecere/mr.mo
rename to ecere/locale/mr.mo
similarity index 100%
rename from ecere/locale/ecere/mr.po
rename to ecere/locale/mr.po
similarity index 100%
rename from ecere/locale/ecere/nl.mo
rename to ecere/locale/nl.mo
similarity index 100%
rename from ecere/locale/ecere/nl.po
rename to ecere/locale/nl.po
similarity index 100%
rename from ecere/locale/ecere/ru.mo
rename to ecere/locale/ru.mo
similarity index 100%
rename from ecere/locale/ecere/ru.po
rename to ecere/locale/ru.po
index fba9ca4..6bad435 100644 (file)
@@ -21,7 +21,7 @@ static Map<String, Map<String, String>> moduleMaps { };
                          | (((unsigned int)(dword) & 0x00ff0000) >>  8) \
                          | (((unsigned int)(dword) & 0xff000000) >> 24))
 
-public dllexport void LoadTranslatedStrings(Module module, char * name)
+public dllexport void LoadTranslatedStrings(String moduleName, char * name)
 {
 #ifndef ECERE_NOFILE
    File f;
@@ -63,15 +63,15 @@ public dllexport void LoadTranslatedStrings(Module module, char * name)
          *under = 0;
    }
 
-   if(module.name)
-      sprintf(fileName, "<:%s>locale/%s/%s.mo", module.name, name, locale);
+   if(moduleName)
+      sprintf(fileName, "<:%s>locale/%s.mo", moduleName, locale);
    else
-      sprintf(fileName, ":locale/%s/%s.mo", name, locale);
+      sprintf(fileName, ":locale/%s.mo", locale);
    f = FileOpen(fileName, read);
    if(!f)
    {
-      if(module.name)
-         sprintf(fileName, "<:%s>locale/%s/LC_MESSAGES/%s.mo", module.name, locale, name);
+      if(moduleName)
+         sprintf(fileName, "<:%s>locale/%s/LC_MESSAGES/%s.mo", moduleName, locale, name);
       else
          sprintf(fileName, ":locale/%s/LC_MESSAGES/%s.mo", locale, name);
       f = FileOpen(fileName, read);
@@ -90,15 +90,15 @@ public dllexport void LoadTranslatedStrings(Module module, char * name)
    if(!f && locale && strcmpi(locale, genericLocale))
    {
       // Attempt with generic language
-      if(module.name)
-         sprintf(fileName, "<:%s>locale/%s/%s.mo", module.name, name, genericLocale);
+      if(moduleName)
+         sprintf(fileName, "<:%s>locale/%s.mo", moduleName, genericLocale);
       else
-         sprintf(fileName, ":locale/%s/%s.mo", name, genericLocale);
+         sprintf(fileName, ":locale/%s.mo", name, genericLocale);
       f = FileOpen(fileName, read);
       if(!f)
       {
-         if(module.name)
-            sprintf(fileName, "<:%s>locale/%s/LC_MESSAGES/%s.mo", module.name, genericLocale, name);
+         if(moduleName)
+            sprintf(fileName, "<:%s>locale/%s/LC_MESSAGES/%s.mo", moduleName, genericLocale, name);
          else
             sprintf(fileName, ":locale/%s/LC_MESSAGES/%s.mo", genericLocale, name);
          f = FileOpen(fileName, read);
@@ -139,11 +139,11 @@ public dllexport void LoadTranslatedStrings(Module module, char * name)
             moduleMaps = { };
          {
             MapIterator<String, Map<String, String>> it { map = moduleMaps };
-            if(it.Index(module.name, false))
+            if(it.Index(name, false))
                delete it.data;
             // TOFIX: delete moduleMaps[module];
          }
-         moduleMaps[module.name] = textMap = { };
+         moduleMaps[name] = textMap = { };
          for(c = 0; c < numStrings; c++)
          {
             uint len = 0, offset = 0;
@@ -189,19 +189,19 @@ public dllexport void LoadTranslatedStrings(Module module, char * name)
 #endif
 }
 
-public dllexport void UnloadTranslatedStrings(Module module)
+public dllexport void UnloadTranslatedStrings(String name)
 {
    MapIterator<String, Map<String, String>> it { map = moduleMaps };
-   if(it.Index(module.name, false))
+   if(it.Index(name, false))
    {
       it.data.Free();
       moduleMaps.Delete(it.pointer);
    }
 }
 
-public dllexport char * GetTranslatedString(Module module, char * string, char * stringAndContext)
+public dllexport char * GetTranslatedString(String name, char * string, char * stringAndContext)
 {
-   Map<String, String> textMap = moduleMaps ? moduleMaps[module.name] : null;
+   Map<String, String> textMap = moduleMaps ? moduleMaps[name] : null;
    char * result = textMap ? textMap[stringAndContext ? stringAndContext : string] : string;
    return (result && result[0]) ? result : string;
 }
index f094855..e769301 100644 (file)
       {
          "Folder" : "locale",
          "Files" : [
-            {
-               "Folder" : "EDASQLite",
-               "Files" : [
-                  "es.mo",
-                  "he.mo",
-                  "pt_BR.mo",
-                  "ru.mo",
-                  "zh_CN.mo"
-               ]
-            }
+            "es.mo",
+            "he.mo",
+            "pt_BR.mo",
+            "ru.mo",
+            "zh_CN.mo"
          ]
       }
    ]
index 0ef2852..d1eb0bb 100644 (file)
@@ -73,11 +73,11 @@ SOURCES = $(ECSOURCES) \
        $(if $(LINUX_TARGET),,sqlite3.c)
 
 RESOURCES = \
-       locale/EDASQLite/es.mo \
-       locale/EDASQLite/he.mo \
-       locale/EDASQLite/pt_BR.mo \
-       locale/EDASQLite/ru.mo \
-       locale/EDASQLite/zh_CN.mo
+       locale/es.mo \
+       locale/he.mo \
+       locale/pt_BR.mo \
+       locale/ru.mo \
+       locale/zh_CN.mo
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
 
@@ -97,11 +97,10 @@ CUSTOM1_PRJ_CFLAGS = \
                         -I../../../deps/libffi-3.0.11/i686-pc-mingw32/include,) \
         $(if $(DEBUG), -g, -O2) $(FPIC) -w
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers
 
-
 # PLATFORM-SPECIFIC OPTIONS
 
 ifdef WINDOWS_TARGET
@@ -138,8 +137,6 @@ endif
 endif
 endif
 
-
-
 CECFLAGS += -cpp $(_CPP)
 
 ifndef STATIC_LIBRARY_TARGET
@@ -170,7 +167,7 @@ ifndef STATIC_LIBRARY_TARGET
 ifndef NOSTRIP
        $(STRIP) $(STRIPOPT) $(TARGET)
 endif
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/EDASQLite/es.mo locale/EDASQLite/he.mo locale/EDASQLite/pt_BR.mo locale/EDASQLite/ru.mo locale/EDASQLite/zh_CN.mo "locale/EDASQLite"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/he.mo locale/pt_BR.mo locale/ru.mo locale/zh_CN.mo "locale"
 else
        $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
 endif
index f073450..2551ec5 100644 (file)
       {
          "Folder" : "locale",
          "Files" : [
-            {
-               "Folder" : "EDASQLiteCipher",
-               "Files" : [
-                  "es.mo",
-                  "he.mo",
-                  "pt_BR.mo",
-                  "ru.mo",
-                  "zh_CN.mo"
-               ]
-            }
+            "es.mo",
+            "he.mo",
+            "pt_BR.mo",
+            "ru.mo",
+            "zh_CN.mo"
          ]
       }
    ]
index 71f2b03..d27b423 100644 (file)
@@ -74,11 +74,11 @@ SOURCES = $(ECSOURCES) \
        sqlite3.c
 
 RESOURCES = \
-       locale/EDASQLiteCipher/es.mo \
-       locale/EDASQLiteCipher/he.mo \
-       locale/EDASQLiteCipher/pt_BR.mo \
-       locale/EDASQLiteCipher/ru.mo \
-       locale/EDASQLiteCipher/zh_CN.mo
+       locale/es.mo \
+       locale/he.mo \
+       locale/pt_BR.mo \
+       locale/ru.mo \
+       locale/zh_CN.mo
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
 
@@ -102,11 +102,10 @@ CUSTOM1_PRJ_CFLAGS = \
         $(if $(DEBUG), -g, -O2) $(FPIC) -w \
                         -DSQLITE_HAS_CODEC
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers
 
-
 # PLATFORM-SPECIFIC OPTIONS
 
 ifdef WINDOWS_TARGET
@@ -147,8 +146,6 @@ endif
 endif
 endif
 
-
-
 CECFLAGS += -cpp $(_CPP)
 
 ifndef STATIC_LIBRARY_TARGET
@@ -179,7 +176,7 @@ ifndef STATIC_LIBRARY_TARGET
 ifndef NOSTRIP
        $(STRIP) $(STRIPOPT) $(TARGET)
 endif
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/EDASQLiteCipher/es.mo locale/EDASQLiteCipher/he.mo locale/EDASQLiteCipher/pt_BR.mo locale/EDASQLiteCipher/ru.mo locale/EDASQLiteCipher/zh_CN.mo "locale/EDASQLiteCipher"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/he.mo locale/pt_BR.mo locale/ru.mo locale/zh_CN.mo "locale"
 else
        $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
 endif
index b3f7dbf..83392a6 100644 (file)
       {
          "Folder" : "locale",
          "Files" : [
-            {
-               "Folder" : "EDA",
-               "Files" : [
-                  "es.mo",
-                  "he.mo",
-                  "ru.mo",
-                  "zh_CN.mo"
-               ]
-            }
+            "es.mo",
+            "he.mo",
+            "ru.mo",
+            "zh_CN.mo"
          ]
       }
    ]
index 8934c55..35d2333 100644 (file)
@@ -77,10 +77,10 @@ OBJECTS = $(ECOBJECTS) $(OBJ)$(MODULE).main$(O)
 SOURCES = $(ECSOURCES)
 
 RESOURCES = \
-       locale/EDA/es.mo \
-       locale/EDA/he.mo \
-       locale/EDA/ru.mo \
-       locale/EDA/zh_CN.mo
+       locale/es.mo \
+       locale/he.mo \
+       locale/ru.mo \
+       locale/zh_CN.mo
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
 
@@ -94,11 +94,10 @@ PRJ_CFLAGS += \
                         -I../../deps/libffi-3.0.11/i686-pc-mingw32/include,) \
         $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -w
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers -defaultns eda
 
-
 # PLATFORM-SPECIFIC OPTIONS
 
 ifdef WINDOWS_TARGET
@@ -112,8 +111,6 @@ CFLAGS += \
 
 endif
 
-
-
 CECFLAGS += -cpp $(_CPP)
 
 ifndef STATIC_LIBRARY_TARGET
@@ -144,7 +141,7 @@ ifndef STATIC_LIBRARY_TARGET
 ifndef NOSTRIP
        $(STRIP) $(STRIPOPT) $(TARGET)
 endif
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/EDA/es.mo locale/EDA/he.mo locale/EDA/ru.mo locale/EDA/zh_CN.mo "locale/EDA"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/he.mo locale/ru.mo locale/zh_CN.mo "locale"
 else
        $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
 endif
index 37a1af6..23c8729 100644 (file)
@@ -70,10 +70,10 @@ OBJECTS = $(ECOBJECTS) $(OBJ)$(MODULE).main$(O)
 SOURCES = $(ECSOURCES)
 
 RESOURCES = \
-       locale/epj2make/es.mo \
-       locale/epj2make/he.mo \
-       locale/epj2make/ru.mo \
-       locale/epj2make/zh_CN.mo \
+       locale/es.mo \
+       locale/he.mo \
+       locale/ru.mo \
+       locale/zh_CN.mo \
        ../crossplatform.mk
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
@@ -87,19 +87,16 @@ PRJ_CFLAGS += \
         $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -w \
                         -DMAKEFILE_GENERATOR
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers
 
-
 # PLATFORM-SPECIFIC OPTIONS
 
 ifdef LINUX_TARGET
 
 endif
 
-
-
 CECFLAGS += -cpp $(_CPP)
 
 ifndef STATIC_LIBRARY_TARGET
@@ -131,7 +128,7 @@ ifndef NOSTRIP
        $(STRIP) $(STRIPOPT) $(TARGET)
 endif
        $(EAR) aw$(EARFLAGS) $(TARGET) ../crossplatform.mk ""
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/epj2make/es.mo locale/epj2make/he.mo locale/epj2make/ru.mo locale/epj2make/zh_CN.mo "locale/epj2make"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/he.mo locale/ru.mo locale/zh_CN.mo "locale"
 else
        $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
 endif
index 95985f5..37dd96c 100644 (file)
       {
          "Folder" : "locale",
          "Files" : [
-            {
-               "Folder" : "epj2make",
-               "Files" : [
-                  "es.mo",
-                  "he.mo",
-                  "ru.mo",
-                  "zh_CN.mo"
-               ]
-            }
+            "es.mo",
+            "he.mo",
+            "ru.mo",
+            "zh_CN.mo"
          ]
       },
       "../crossplatform.mk"
index dc47ef8..86d3b1f 100644 (file)
@@ -161,18 +161,18 @@ RESOURCES1 = \
        $(RES)codeMarks/topFrameHalfError.png \
        $(RES)others/mousePointer.png \
        $(RES)status/software-update-available.png \
-       locale/ide/es.mo \
-       locale/ide/pt_BR.mo \
-       locale/ide/ru.mo \
-       locale/ide/vi.mo \
-       locale/ide/zh_CN.mo \
+       locale/es.mo \
+       locale/pt_BR.mo \
+       locale/ru.mo \
+       locale/vi.mo \
+       locale/zh_CN.mo \
        ../LICENSE \
        ../extras/res/licenses/png.LICENSE \
        ../extras/res/licenses/tango.COPYING \
        ../extras/res/licenses/zlib.README \
-       ../extras/res/licenses/sqlite.LICENSE
+       ../extras/res/licenses/sqlite.LICENSE \
+       ../extras/res/licenses/jpg.LICENSE
 RESOURCES2 = \
-       ../extras/res/licenses/jpg.LICENSE \
        ../extras/res/licenses/ungif.LICENSE \
        ../extras/res/licenses/freetype.LICENSE \
        ../extras/res/licenses/harfbuzz.LICENSE \
@@ -212,12 +212,10 @@ PRJ_CFLAGS += \
                         $(FVISIBILITY) \
                         -DREPOSITORY_VERSION="\"$(REPOSITORY_VER)\""
 
-
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers
 
-
 # PLATFORM-SPECIFIC OPTIONS
 
 ifdef LINUX_TARGET
@@ -242,8 +240,6 @@ endif
 endif
 endif
 
-
-
 CECFLAGS += -cpp $(_CPP)
 
 ifndef STATIC_LIBRARY_TARGET
@@ -281,7 +277,7 @@ endif
        $(EAR) aw$(EARFLAGS) $(TARGET) $(RES)codeMarks/breakpoint.png $(RES)codeMarks/breakpointDisabled.png $(RES)codeMarks/breakpointHalf.png $(RES)codeMarks/breakpointHalfDisabled.png $(RES)codeMarks/cursor.png $(RES)codeMarks/cursorError.png $(RES)codeMarks/topFrame.png $(RES)codeMarks/topFrameError.png $(RES)codeMarks/topFrameHalf.png $(RES)codeMarks/topFrameHalfError.png "codeMarks"
        $(EAR) aw$(EARFLAGS) $(TARGET) $(RES)others/mousePointer.png "others"
        $(EAR) aw$(EARFLAGS) $(TARGET) $(RES)status/software-update-available.png "status"
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/ide/es.mo locale/ide/pt_BR.mo locale/ide/ru.mo locale/ide/vi.mo locale/ide/zh_CN.mo "locale/ide"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/pt_BR.mo locale/ru.mo locale/vi.mo locale/zh_CN.mo "locale"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../LICENSE ../extras/res/licenses/png.LICENSE ../extras/res/licenses/tango.COPYING ../extras/res/licenses/zlib.README ../extras/res/licenses/sqlite.LICENSE ../extras/res/licenses/jpg.LICENSE ../extras/res/licenses/ungif.LICENSE ../extras/res/licenses/freetype.LICENSE ../extras/res/licenses/harfbuzz.LICENSE ../extras/res/licenses/upx.LICENSE "licenses"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../extras/res/licenses/MinGW-w64.LICENSE ../extras/res/licenses/tdm-gcc.LICENSE ../extras/res/licenses/ffi.LICENSE "licenses"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../extras/res/types/countryCode/es.png ../extras/res/types/countryCode/gb.png ../extras/res/types/countryCode/hu.png ../extras/res/types/countryCode/cn.png ../extras/res/types/countryCode/pt.png ../extras/res/types/countryCode/vn.png ../extras/res/types/countryCode/ru.png ../extras/res/types/countryCode/in.png ../extras/res/types/countryCode/nl.png ../extras/res/types/countryCode/il.png "countryCode"
index 7323d01..1478278 100644 (file)
       {
          "Folder" : "locale",
          "Files" : [
-            {
-               "Folder" : "ide",
-               "Files" : [
-                  "locale/ide/es.mo",
-                  "locale/ide/pt_BR.mo",
-                  "locale/ide/ru.mo",
-                  "locale/ide/vi.mo",
-                  "locale/ide/zh_CN.mo"
-               ]
-            }
+            "locale/es.mo",
+            "locale/pt_BR.mo",
+            "locale/ru.mo",
+            "locale/vi.mo",
+            "locale/zh_CN.mo"
          ]
       },
       {
similarity index 100%
rename from ide/locale/ide/es.mo
rename to ide/locale/es.mo
similarity index 100%
rename from ide/locale/ide/es.po
rename to ide/locale/es.po
similarity index 100%
rename from ide/locale/ide/ide.pot
rename to ide/locale/ide.pot
similarity index 100%
rename from ide/locale/ide/pt_BR.mo
rename to ide/locale/pt_BR.mo
similarity index 100%
rename from ide/locale/ide/pt_BR.po
rename to ide/locale/pt_BR.po
similarity index 100%
rename from ide/locale/ide/ru.mo
rename to ide/locale/ru.mo
similarity index 100%
rename from ide/locale/ide/ru.po
rename to ide/locale/ru.po
similarity index 100%
rename from ide/locale/ide/vi.mo
rename to ide/locale/vi.mo
similarity index 100%
rename from ide/locale/ide/vi.po
rename to ide/locale/vi.po
similarity index 100%
rename from ide/locale/ide/zh_CN.mo
rename to ide/locale/zh_CN.mo
similarity index 100%
rename from ide/locale/ide/zh_CN.po
rename to ide/locale/zh_CN.po
index 2ab285c..f1a9220 100644 (file)
@@ -2923,6 +2923,7 @@ private:
                ecflagsVariations, nodeECFlagsMapping, null);
 
          GenMakePrintCustomFlags(f, "PRJ_CFLAGS", false, cflagsVariations);
+         f.Puts("ECFLAGS += -module $(MODULE)\n");
          GenMakePrintCustomFlags(f, "ECFLAGS", true, ecflagsVariations);
 
          if(platforms || (config && config.platforms))
index 5a81e3d..92bcbe8 100644 (file)
                "Files" : [
                   "../ecere/res/status/folderOpen.png"
                ]
+            },
+            {
+               "Folder" : "locale",
+               "Files" : [
+                  "../ecere/locale/es.mo",
+                  "../ecere/locale/hu.mo",
+                  "../ecere/locale/mr.mo",
+                  "../ecere/locale/nl.mo",
+                  "../ecere/locale/pt_BR.mo",
+                  "../ecere/locale/ru.mo",
+                  "../ecere/locale/zh_CN.mo"
+               ]
             }
          ]
       },
       {
          "Folder" : "locale",
          "Files" : [
-            {
-               "Folder" : "Installer",
-               "Files" : [
-                  "es.mo",
-                  "pt_BR.mo",
-                  "ru.mo",
-                  "zh_CN.mo"
-               ]
-            }
+            "es.mo",
+            "pt_BR.mo",
+            "ru.mo",
+            "zh_CN.mo"
          ]
       },
       {
index a2a2831..efa060e 100644 (file)
@@ -120,6 +120,13 @@ RESOURCES1 = \
        ../ecere/res/places/networkWorkgroup.png \
        ../ecere/res/places/brokenFolder.png \
        ../ecere/res/status/folderOpen.png \
+       ../ecere/locale/es.mo \
+       ../ecere/locale/hu.mo \
+       ../ecere/locale/mr.mo \
+       ../ecere/locale/nl.mo \
+       ../ecere/locale/pt_BR.mo \
+       ../ecere/locale/ru.mo \
+       ../ecere/locale/zh_CN.mo \
        ../obj/win32/bin/documentor.exe \
        ../obj/win32/bin/ide.exe \
        ../obj/win32/bin/ear.exe \
@@ -132,14 +139,14 @@ RESOURCES1 = \
        ../obj/win32/bin/EDA.dll \
        ../obj/win32/bin/EDASQLite.dll \
        ../doc/ecere.eCdoc \
-       ../doc/ecereCOM.eCdoc \
+       ../doc/ecereCOM.eCdoc
+RESOURCES2 = \
        ../doc/EDA.eCdoc \
        ../LICENSE \
        ../README \
        ../doc/tao.pdf \
        ../samples/db/MovieCollection/eda\ presentation.pptx \
-       ../samples/guiAndGfx/bitmapsAndKB/Bitmaps,\ Keyboard\ and\ Sound.pptx
-RESOURCES2 = \
+       ../samples/guiAndGfx/bitmapsAndKB/Bitmaps,\ Keyboard\ and\ Sound.pptx \
        ./SDKIntro.pdf \
        coursework/Chapter\ 1\ -\ Getting\ Started/Lab1.1/helloWorld.ec \
        coursework/Chapter\ 1\ -\ Getting\ Started/Lab1.1/HelloWorld.epj \
@@ -159,10 +166,10 @@ RESOURCES2 = \
        coursework/Chapter\ 3\ -\ Operators/exercises\ -\ chapter\ 3.odt \
        coursework/Chapter\ 4\ -\ Flow\ Control/Lab4/lab4.ec \
        coursework/Chapter\ 4\ -\ Flow\ Control/Lab4/Lab4.epj \
-       coursework/Chapter\ 4\ -\ Flow\ Control/answers\ -\ chapter\ 4.odt \
-       coursework/Chapter\ 4\ -\ Flow\ Control/exercises\ -\ chapter\ 4.odt \
-       coursework/Chapter\ 5\ -\ Structures\ and\ Enumerations/Lab5/colors/lab5colors.ec
+       coursework/Chapter\ 4\ -\ Flow\ Control/answers\ -\ chapter\ 4.odt
 RESOURCES3 = \
+       coursework/Chapter\ 4\ -\ Flow\ Control/exercises\ -\ chapter\ 4.odt \
+       coursework/Chapter\ 5\ -\ Structures\ and\ Enumerations/Lab5/colors/lab5colors.ec \
        coursework/Chapter\ 5\ -\ Structures\ and\ Enumerations/Lab5/colors/lab5colors.epj \
        coursework/Chapter\ 5\ -\ Structures\ and\ Enumerations/Lab5/vectors/lab5vectors.ec \
        coursework/Chapter\ 5\ -\ Structures\ and\ Enumerations/Lab5/vectors/lab5vectors.epj \
@@ -191,12 +198,12 @@ RESOURCES3 = \
        ../samples/3D/Animate3DS/res/wall_80.jpg \
        ../samples/3D/Animate3DS/Animate3DS.ec \
        ../samples/3D/Animate3DS/Animate3DS.epj \
-       ../samples/3D/ColorSpheres/colorSpheres.ec \
+       ../samples/3D/ColorSpheres/colorSpheres.ec
+RESOURCES4 = \
        ../samples/3D/ColorSpheres/colorSpheres.epj \
        ../samples/3D/cube2/cube2.ec \
        ../samples/3D/cube2/cube2.epj \
-       ../samples/3D/cube2/knot.png
-RESOURCES4 = \
+       ../samples/3D/cube2/knot.png \
        ../samples/3D/glTriangle/glTriangle.ec \
        ../samples/3D/glTriangle/glTriangle.epj \
        ../samples/3D/hello3D/hello3D.ec \
@@ -226,11 +233,11 @@ RESOURCES4 = \
        ../samples/3D/orbitWithMouse/res/shot2.jpg \
        ../samples/3D/orbitWithMouse/res/shot3.jpg \
        ../samples/3D/orbitWithMouse/res/shot4.jpg \
-       ../samples/3D/orbitWithMouse/res/slidehex-cinema_guide.png \
+       ../samples/3D/orbitWithMouse/res/slidehex-cinema_guide.png
+RESOURCES5 = \
        ../samples/3D/orbitWithMouse/res/slidehex-jukebox.png \
        ../samples/3D/orbitWithMouse/res/slidehex-net_radio.png \
-       ../samples/3D/orbitWithMouse/res/slidehex-photo_album.png
-RESOURCES5 = \
+       ../samples/3D/orbitWithMouse/res/slidehex-photo_album.png \
        ../samples/3D/orbitWithMouse/res/slidehex-search_guide.png \
        ../samples/3D/orbitWithMouse/res/slidehex-settings.png \
        ../samples/3D/orbitWithMouse/res/slidehex-shopping.png \
@@ -255,12 +262,12 @@ RESOURCES5 = \
        ../samples/3D/terrainCameraDemo/res/look.pcx \
        ../samples/3D/terrainCameraDemo/res/texture1.pcx \
        ../samples/3D/terrainCameraDemo/res/water.bmp \
-       ../samples/3D/terrainCameraDemo/cameraDemo.epj \
+       ../samples/3D/terrainCameraDemo/cameraDemo.epj
+RESOURCES6 = \
        ../samples/3D/terrainCameraDemo/demo.ec \
        ../samples/3D/terrainCameraDemo/dna.ec \
        ../samples/3D/terrainCameraDemo/dted.ec \
-       ../samples/3D/terrainCameraDemo/terrain.ec
-RESOURCES6 = \
+       ../samples/3D/terrainCameraDemo/terrain.ec \
        ../samples/3D/Test3D/Test3D.ec \
        ../samples/3D/Test3D/Test3D.epj \
        ../samples/3D/TransCube/glass.bmp \
@@ -293,14 +300,14 @@ RESOURCES6 = \
        ../samples/db/MovieCollection/movieCollection.ec \
        ../samples/db/MovieCollection/MovieCollection.epj \
        ../samples/db/MovieCollection/movieSchema.ec \
-       ../samples/db/MovieCollection/reports.ec \
+       ../samples/db/MovieCollection/reports.ec
+RESOURCES7 = \
        ../samples/eC/ampheck/ampheck.epj \
        ../samples/eC/ampheck/main.ec \
        ../samples/eC/ecas/ecas.ec \
        ../samples/eC/ecas/ecas.epj \
        ../samples/eC/ecas/expression.ec \
-       ../samples/eC/ecas/misc.ec
-RESOURCES7 = \
+       ../samples/eC/ecas/misc.ec \
        ../samples/eC/fibonacci/fibo.ec \
        ../samples/eC/fibonacci/fibo.epj \
        ../samples/eC/FindPrime/findPrime.ec \
@@ -334,13 +341,13 @@ RESOURCES7 = \
        ../samples/games/bomb/res/map9.dat \
        ../samples/games/bomb/res/max3.pcx \
        ../samples/games/bomb/res/nothing.pcx \
-       ../samples/games/bomb/res/password.pcx \
+       ../samples/games/bomb/res/password.pcx
+RESOURCES8 = \
        ../samples/games/bomb/res/player.pcx \
        ../samples/games/bomb/bomb.ec \
        ../samples/games/bomb/bomb.epj \
        ../samples/games/brainstonz/res/arrow.png \
-       ../samples/games/brainstonz/res/remove.png
-RESOURCES8 = \
+       ../samples/games/brainstonz/res/remove.png \
        ../samples/games/brainstonz/res/smile.png \
        ../samples/games/brainstonz/brainstonz.ec \
        ../samples/games/brainstonz/brainstonz.epj \
@@ -371,12 +378,12 @@ RESOURCES8 = \
        ../samples/games/othello/res/blue.bmp \
        ../samples/games/othello/res/green.bmp \
        ../samples/games/othello/res/othello.bmp \
-       ../samples/games/othello/othello.ec \
+       ../samples/games/othello/othello.ec
+RESOURCES9 = \
        ../samples/games/othello/Othello.epj \
        ../samples/games/scrabble/scrabble.ec \
        ../samples/games/scrabble/scrabble.epj \
-       ../samples/games/scrabble/ScrabbleServer.ec
-RESOURCES9 = \
+       ../samples/games/scrabble/ScrabbleServer.ec \
        ../samples/games/tetris/res/tetris.bmp \
        ../samples/games/tetris/tetris.ec \
        ../samples/games/tetris/tetris.epj \
@@ -402,11 +409,11 @@ RESOURCES9 = \
        ../samples/guiAndGfx/dataBoxes/dataBoxes.ec \
        ../samples/guiAndGfx/dataBoxes/dataBoxes.epj \
        ../samples/guiAndGfx/DataControls/DataControls.ec \
-       ../samples/guiAndGfx/DataControls/DataControls.epj \
+       ../samples/guiAndGfx/DataControls/DataControls.epj
+RESOURCES10 = \
        ../samples/guiAndGfx/disablingMovingControls/disabled_test.epj \
        ../samples/guiAndGfx/disablingMovingControls/form2.ec \
-       ../samples/guiAndGfx/eNotepad/eNotepad.ec
-RESOURCES10 = \
+       ../samples/guiAndGfx/eNotepad/eNotepad.ec \
        ../samples/guiAndGfx/eNotepad/eNotepad.epj \
        ../samples/guiAndGfx/FlagsDropBox/flagsDropBox.ec \
        ../samples/guiAndGfx/FlagsDropBox/FlagsDropBox.epj \
@@ -434,11 +441,11 @@ RESOURCES10 = \
        ../samples/guiAndGfx/replace/replace.epj \
        ../samples/guiAndGfx/screenShot/shot.ec \
        ../samples/guiAndGfx/screenShot/Shot.epj \
-       ../samples/guiAndGfx/skinning/res/bottomBorder.png \
+       ../samples/guiAndGfx/skinning/res/bottomBorder.png
+RESOURCES11 = \
        ../samples/guiAndGfx/skinning/res/bottomLeftBorder.png \
        ../samples/guiAndGfx/skinning/res/bottomRightBorder.png \
-       ../samples/guiAndGfx/skinning/res/downLeft.png
-RESOURCES11 = \
+       ../samples/guiAndGfx/skinning/res/downLeft.png \
        ../samples/guiAndGfx/skinning/res/downMiddle.png \
        ../samples/guiAndGfx/skinning/res/downRight.png \
        ../samples/guiAndGfx/skinning/res/leftBorder.png \
@@ -465,12 +472,12 @@ RESOURCES11 = \
        ../samples/guiAndGfx/slideShow/eShow.epj \
        ../samples/guiAndGfx/snow/snow.ec \
        ../samples/guiAndGfx/snow/snow.epj \
-       ../samples/guiAndGfx/stacker/stackerTest.ec \
+       ../samples/guiAndGfx/stacker/stackerTest.ec
+RESOURCES12 = \
        ../samples/guiAndGfx/stacker/stackerTest.epj \
        ../samples/guiAndGfx/tabControl/tabs.ec \
        ../samples/guiAndGfx/tabControl/tabs.epj \
-       ../samples/guiAndGfx/textScroller/Scroll.epj
-RESOURCES12 = \
+       ../samples/guiAndGfx/textScroller/Scroll.epj \
        ../samples/guiAndGfx/textScroller/textScroller.ec \
        ../samples/guiAndGfx/toolBars/toolBarDemo.ec \
        ../samples/guiAndGfx/toolBars/toolBars.epj \
@@ -500,12 +507,12 @@ RESOURCES12 = \
        ../samples/net/networkFile/NetworkServer/NetworkServer.epj \
        ../samples/net/networkFile/NetworkServer/server.ec \
        ../samples/net/smtp/smtp.ec \
-       ../samples/net/smtp/smtp.epj \
+       ../samples/net/smtp/smtp.epj
+RESOURCES13 = \
        ../samples/net/SocketSample/socketSample.ec \
        ../samples/net/SocketSample/SocketSample.epj \
        ../samples/net/UDPSample/udptest.ec \
-       ../samples/net/UDPSample/UDPTest.epj
-RESOURCES13 = \
+       ../samples/net/UDPSample/UDPTest.epj \
        ../samples/net/XMLSample/xmlSample.ec \
        ../samples/net/XMLSample/XMLSample.epj \
        ../samples/scanning/wiaTest/wiaTest.ec \
@@ -540,13 +547,13 @@ RESOURCES13 = \
        ../../Apps/chess/src/promotion.ec \
        ../../Apps/chess/chess.epj \
        ../../Apps/chess/LICENSE \
-       ../../Apps/fractals/samples/colorful.frc \
+       ../../Apps/fractals/samples/colorful.frc
+RESOURCES14 = \
        ../../Apps/fractals/samples/coolSpiral.frc \
        ../../Apps/fractals/samples/deep.frc \
        ../../Apps/fractals/samples/hot.frc \
        ../../Apps/fractals/samples/hot2.frc \
-       ../../Apps/fractals/samples/MOI.frc
-RESOURCES14 = \
+       ../../Apps/fractals/samples/MOI.frc \
        ../../Apps/fractals/samples/oldColors.frc \
        ../../Apps/fractals/samples/purplishmandelbrot.frc \
        ../../Apps/fractals/samples/seaHorseValley.frc \
@@ -580,14 +587,14 @@ RESOURCES14 = \
        ../extras/gui/LicensesDialog.ec \
        ../extras/gui/RoundedSquare.ec \
        ../extras/gui/genericEditor.ec \
-       ../extras/html/htmlParser.ec \
+       ../extras/html/htmlParser.ec
+RESOURCES15 = \
        ../extras/html/HTMLView.ec \
        ../extras/html/lines.ec \
        ../extras/html/tables.ec \
        ../extras/res/licenses/crystalicons.LICENSE \
        ../extras/res/licenses/ecere.LICENSE \
-       ../extras/res/licenses/ffi.LICENSE
-RESOURCES15 = \
+       ../extras/res/licenses/ffi.LICENSE \
        ../extras/res/licenses/freetype.LICENSE \
        ../extras/res/licenses/gpl2.LICENSE \
        ../extras/res/licenses/gpl3.LICENSE \
@@ -619,13 +626,13 @@ RESOURCES15 = \
        ../extras/res/types/countryCode/at.png \
        ../extras/res/types/countryCode/au.png \
        ../extras/res/types/countryCode/aw.png \
-       ../extras/res/types/countryCode/ax.png \
+       ../extras/res/types/countryCode/ax.png
+RESOURCES16 = \
        ../extras/res/types/countryCode/az.png \
        ../extras/res/types/countryCode/ba.png \
        ../extras/res/types/countryCode/bb.png \
        ../extras/res/types/countryCode/bd.png \
-       ../extras/res/types/countryCode/be.png
-RESOURCES16 = \
+       ../extras/res/types/countryCode/be.png \
        ../extras/res/types/countryCode/bf.png \
        ../extras/res/types/countryCode/bg.png \
        ../extras/res/types/countryCode/bh.png \
@@ -656,13 +663,13 @@ RESOURCES16 = \
        ../extras/res/types/countryCode/co.png \
        ../extras/res/types/countryCode/cr.png \
        ../extras/res/types/countryCode/cs.png \
-       ../extras/res/types/countryCode/cu.png \
+       ../extras/res/types/countryCode/cu.png
+RESOURCES17 = \
        ../extras/res/types/countryCode/cv.png \
        ../extras/res/types/countryCode/cx.png \
        ../extras/res/types/countryCode/cy.png \
        ../extras/res/types/countryCode/cz.png \
-       ../extras/res/types/countryCode/de.png
-RESOURCES17 = \
+       ../extras/res/types/countryCode/de.png \
        ../extras/res/types/countryCode/dj.png \
        ../extras/res/types/countryCode/dk.png \
        ../extras/res/types/countryCode/dm.png \
@@ -693,13 +700,13 @@ RESOURCES17 = \
        ../extras/res/types/countryCode/gi.png \
        ../extras/res/types/countryCode/gl.png \
        ../extras/res/types/countryCode/gm.png \
-       ../extras/res/types/countryCode/gn.png \
+       ../extras/res/types/countryCode/gn.png
+RESOURCES18 = \
        ../extras/res/types/countryCode/gp.png \
        ../extras/res/types/countryCode/gq.png \
        ../extras/res/types/countryCode/gr.png \
        ../extras/res/types/countryCode/gs.png \
-       ../extras/res/types/countryCode/gt.png
-RESOURCES18 = \
+       ../extras/res/types/countryCode/gt.png \
        ../extras/res/types/countryCode/gu.png \
        ../extras/res/types/countryCode/gw.png \
        ../extras/res/types/countryCode/gy.png \
@@ -730,13 +737,13 @@ RESOURCES18 = \
        ../extras/res/types/countryCode/kp.png \
        ../extras/res/types/countryCode/kr.png \
        ../extras/res/types/countryCode/kw.png \
-       ../extras/res/types/countryCode/ky.png \
+       ../extras/res/types/countryCode/ky.png
+RESOURCES19 = \
        ../extras/res/types/countryCode/kz.png \
        ../extras/res/types/countryCode/la.png \
        ../extras/res/types/countryCode/lb.png \
        ../extras/res/types/countryCode/lc.png \
-       ../extras/res/types/countryCode/li.png
-RESOURCES19 = \
+       ../extras/res/types/countryCode/li.png \
        ../extras/res/types/countryCode/lk.png \
        ../extras/res/types/countryCode/lr.png \
        ../extras/res/types/countryCode/ls.png \
@@ -767,13 +774,13 @@ RESOURCES19 = \
        ../extras/res/types/countryCode/my.png \
        ../extras/res/types/countryCode/mz.png \
        ../extras/res/types/countryCode/na.png \
-       ../extras/res/types/countryCode/nc.png \
+       ../extras/res/types/countryCode/nc.png
+RESOURCES20 = \
        ../extras/res/types/countryCode/ne.png \
        ../extras/res/types/countryCode/nf.png \
        ../extras/res/types/countryCode/ng.png \
        ../extras/res/types/countryCode/ni.png \
-       ../extras/res/types/countryCode/nl.png
-RESOURCES20 = \
+       ../extras/res/types/countryCode/nl.png \
        ../extras/res/types/countryCode/no.png \
        ../extras/res/types/countryCode/np.png \
        ../extras/res/types/countryCode/nr.png \
@@ -804,13 +811,13 @@ RESOURCES20 = \
        ../extras/res/types/countryCode/sb.png \
        ../extras/res/types/countryCode/sc.png \
        ../extras/res/types/countryCode/scotland.png \
-       ../extras/res/types/countryCode/sd.png \
+       ../extras/res/types/countryCode/sd.png
+RESOURCES21 = \
        ../extras/res/types/countryCode/se.png \
        ../extras/res/types/countryCode/sg.png \
        ../extras/res/types/countryCode/sh.png \
        ../extras/res/types/countryCode/si.png \
-       ../extras/res/types/countryCode/sj.png
-RESOURCES21 = \
+       ../extras/res/types/countryCode/sj.png \
        ../extras/res/types/countryCode/sk.png \
        ../extras/res/types/countryCode/sl.png \
        ../extras/res/types/countryCode/sm.png \
@@ -841,13 +848,13 @@ RESOURCES21 = \
        ../extras/res/types/countryCode/ug.png \
        ../extras/res/types/countryCode/um.png \
        ../extras/res/types/countryCode/us.png \
-       ../extras/res/types/countryCode/uy.png \
+       ../extras/res/types/countryCode/uy.png
+RESOURCES22 = \
        ../extras/res/types/countryCode/uz.png \
        ../extras/res/types/countryCode/va.png \
        ../extras/res/types/countryCode/vc.png \
        ../extras/res/types/countryCode/ve.png \
-       ../extras/res/types/countryCode/vg.png
-RESOURCES22 = \
+       ../extras/res/types/countryCode/vg.png \
        ../extras/res/types/countryCode/vi.png \
        ../extras/res/types/countryCode/vn.png \
        ../extras/res/types/countryCode/vu.png \
@@ -887,14 +894,14 @@ RESOURCES22 = \
        ../extras/res/licenses/freetype.LICENSE \
        ../extras/res/licenses/harfbuzz.LICENSE \
        ../extras/res/licenses/jpg.LICENSE \
-       ../extras/res/licenses/png.LICENSE \
+       ../extras/res/licenses/png.LICENSE
+RESOURCES23 = \
        ../extras/res/licenses/sqlite.LICENSE \
        ../extras/res/licenses/tango.COPYING \
        ../extras/res/licenses/ungif.LICENSE \
        ../extras/res/licenses/upx.LICENSE \
        ../extras/res/licenses/zlib.README \
-       ../LICENSE
-RESOURCES23 = \
+       ../LICENSE \
        ../extras/res/licenses/MinGW-w64.LICENSE \
        ../extras/res/licenses/tdm-gcc.LICENSE \
        ../extras/res/licenses/ffi.LICENSE \
@@ -927,12 +934,12 @@ RESOURCES23 = \
        tdm/binutils-2.23.2-tdm64-1/bin/objcopy.exe \
        tdm/binutils-2.23.2-tdm64-1/bin/objdump.exe \
        tdm/binutils-2.23.2-tdm64-1/bin/ranlib.exe \
-       tdm/binutils-2.23.2-tdm64-1/bin/readelf.exe \
+       tdm/binutils-2.23.2-tdm64-1/bin/readelf.exe
+RESOURCES24 = \
        tdm/binutils-2.23.2-tdm64-1/bin/size.exe \
        tdm/binutils-2.23.2-tdm64-1/bin/strings.exe \
        tdm/binutils-2.23.2-tdm64-1/bin/strip.exe \
-       tdm/binutils-2.23.2-tdm64-1/bin/windmc.exe
-RESOURCES24 = \
+       tdm/binutils-2.23.2-tdm64-1/bin/windmc.exe \
        tdm/binutils-2.23.2-tdm64-1/bin/windres.exe \
        tdm/binutils-2.23.2-tdm64-1/include/ansidecl.h \
        tdm/binutils-2.23.2-tdm64-1/include/bfd.h \
@@ -954,11 +961,11 @@ RESOURCES24 = \
        tdm/binutils-2.23.2-tdm64-1/x86_64-w64-mingw32/bin/strip.exe \
        tdm/binutils-2.23.2-tdm64-1/x86_64-w64-mingw32/lib/ldscripts/i386pe.x \
        tdm/binutils-2.23.2-tdm64-1/x86_64-w64-mingw32/lib/ldscripts/i386pe.xa \
-       tdm/binutils-2.23.2-tdm64-1/x86_64-w64-mingw32/lib/ldscripts/i386pe.xbn \
+       tdm/binutils-2.23.2-tdm64-1/x86_64-w64-mingw32/lib/ldscripts/i386pe.xbn
+RESOURCES25 = \
        tdm/binutils-2.23.2-tdm64-1/x86_64-w64-mingw32/lib/ldscripts/i386pe.xn \
        tdm/binutils-2.23.2-tdm64-1/x86_64-w64-mingw32/lib/ldscripts/i386pe.xr \
-       tdm/binutils-2.23.2-tdm64-1/x86_64-w64-mingw32/lib/ldscripts/i386pe.xu
-RESOURCES25 = \
+       tdm/binutils-2.23.2-tdm64-1/x86_64-w64-mingw32/lib/ldscripts/i386pe.xu \
        tdm/binutils-2.23.2-tdm64-1/x86_64-w64-mingw32/lib/ldscripts/i386pep.x \
        tdm/binutils-2.23.2-tdm64-1/x86_64-w64-mingw32/lib/ldscripts/i386pep.xa \
        tdm/binutils-2.23.2-tdm64-1/x86_64-w64-mingw32/lib/ldscripts/i386pep.xbn \
@@ -979,12 +986,12 @@ RESOURCES25 = \
        tdm/gcc-4.8.1-tdm64-2-core/bin/libiconv-2.dll \
        tdm/gcc-4.8.1-tdm64-2-core/bin/libquadmath-0.dll \
        tdm/gcc-4.8.1-tdm64-2-core/bin/libquadmath_64-0.dll \
-       tdm/gcc-4.8.1-tdm64-2-core/bin/libssp-0.dll \
+       tdm/gcc-4.8.1-tdm64-2-core/bin/libssp-0.dll
+RESOURCES26 = \
        tdm/gcc-4.8.1-tdm64-2-core/bin/libssp_64-0.dll \
        tdm/gcc-4.8.1-tdm64-2-core/bin/libwinpthread-1.dll \
        tdm/gcc-4.8.1-tdm64-2-core/bin/libwinpthread_64-1.dll \
-       tdm/gcc-4.8.1-tdm64-2-core/bin/x86_64-w64-mingw32-gcc-4.8.1.exe
-RESOURCES26 = \
+       tdm/gcc-4.8.1-tdm64-2-core/bin/x86_64-w64-mingw32-gcc-4.8.1.exe \
        tdm/gcc-4.8.1-tdm64-2-core/bin/x86_64-w64-mingw32-gcc-ar.exe \
        tdm/gcc-4.8.1-tdm64-2-core/bin/x86_64-w64-mingw32-gcc-nm.exe \
        tdm/gcc-4.8.1-tdm64-2-core/bin/x86_64-w64-mingw32-gcc-ranlib.exe \
@@ -1000,11 +1007,11 @@ RESOURCES26 = \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/32/libssp.a \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/32/libssp.dll.a \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/32/libssp_nonshared.a \
-       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/ssp/ssp.h \
+       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/ssp/ssp.h
+RESOURCES27 = \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/ssp/stdio.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/ssp/string.h \
-       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/ssp/unistd.h
-RESOURCES27 = \
+       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/ssp/unistd.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/adxintrin.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/ammintrin.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/avx2intrin.h \
@@ -1018,11 +1025,11 @@ RESOURCES27 = \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/f16cintrin.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/float.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/fma4intrin.h \
-       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/fmaintrin.h \
+       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/fmaintrin.h
+RESOURCES28 = \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/fxsrintrin.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/ia32intrin.h \
-       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/immintrin.h
-RESOURCES28 = \
+       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/immintrin.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/iso646.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/lwpintrin.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/lzcntintrin.h \
@@ -1036,11 +1043,11 @@ RESOURCES28 = \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/prfchwintrin.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/quadmath.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/quadmath_weak.h \
-       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/rdseedintrin.h \
+       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/rdseedintrin.h
+RESOURCES29 = \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/rtmintrin.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/smmintrin.h \
-       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/stdalign.h
-RESOURCES29 = \
+       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/stdalign.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/stdarg.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/stdbool.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/stddef.h \
@@ -1054,11 +1061,11 @@ RESOURCES29 = \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/unwind.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/varargs.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/wmmintrin.h \
-       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/x86intrin.h \
+       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/x86intrin.h
+RESOURCES30 = \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/xmmintrin.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/xopintrin.h \
-       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/xsaveintrin.h
-RESOURCES30 = \
+       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/xsaveintrin.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/xsaveoptintrin.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include/xtestintrin.h \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/include-fixed/limits.h \
@@ -1072,11 +1079,11 @@ RESOURCES30 = \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/install-tools/mkheaders.conf \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/crtfastmath.o \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/libgcc.a \
-       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/libgcc_s.a \
+       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/libgcc_s.a
+RESOURCES31 = \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/libgcov.a \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/libquadmath.a \
-       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/libquadmath.dll.a
-RESOURCES31 = \
+       tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/libquadmath.dll.a \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/libssp.a \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/libssp.dll.a \
        tdm/gcc-4.8.1-tdm64-2-core/lib/gcc/x86_64-w64-mingw32/4.8.1/libssp_nonshared.a \
@@ -1090,11 +1097,11 @@ RESOURCES31 = \
        tdm/gcc-4.8.1-tdm64-2-core/libexec/gcc/x86_64-w64-mingw32/4.8.1/libgmp-3.dll \
        tdm/gcc-4.8.1-tdm64-2-core/libexec/gcc/x86_64-w64-mingw32/4.8.1/libisl-10.dll \
        tdm/gcc-4.8.1-tdm64-2-core/libexec/gcc/x86_64-w64-mingw32/4.8.1/liblto_plugin-0.dll \
-       tdm/gcc-4.8.1-tdm64-2-core/libexec/gcc/x86_64-w64-mingw32/4.8.1/liblto_plugin.dll.a \
+       tdm/gcc-4.8.1-tdm64-2-core/libexec/gcc/x86_64-w64-mingw32/4.8.1/liblto_plugin.dll.a
+RESOURCES32 = \
        tdm/gcc-4.8.1-tdm64-2-core/libexec/gcc/x86_64-w64-mingw32/4.8.1/libmpc-2.dll \
        tdm/gcc-4.8.1-tdm64-2-core/libexec/gcc/x86_64-w64-mingw32/4.8.1/libmpfr-1.dll \
-       tdm/gcc-4.8.1-tdm64-2-core/libexec/gcc/x86_64-w64-mingw32/4.8.1/lto-wrapper.exe
-RESOURCES32 = \
+       tdm/gcc-4.8.1-tdm64-2-core/libexec/gcc/x86_64-w64-mingw32/4.8.1/lto-wrapper.exe \
        tdm/gcc-4.8.1-tdm64-2-core/libexec/gcc/x86_64-w64-mingw32/4.8.1/lto1.exe \
        tdm/gcc-4.8.1-tdm64-2-core/x86_64-w64-mingw32/include/pthread.h \
        tdm/gcc-4.8.1-tdm64-2-core/x86_64-w64-mingw32/include/pthread_compat.h \
@@ -1111,12 +1118,12 @@ RESOURCES32 = \
        tdm/gcc-4.8.1-tdm64-2-core/x86_64-w64-mingw32/lib32/libpthread_s.dll.a \
        tdm/gcc-4.8.1-tdm64-2-core/x86_64-w64-mingw32/lib32/libwinpthread.a \
        tdm/gcc-4.8.1-tdm64-2-core/x86_64-w64-mingw32/lib32/libwinpthread.dll.a \
-       tdm/gcc-4.8.1-tdm64-2-core/licenses/COPYING.ISL.txt \
+       tdm/gcc-4.8.1-tdm64-2-core/licenses/COPYING.ISL.txt
+RESOURCES33 = \
        tdm/gcc-4.8.1-tdm64-2-core/licenses/COPYING.RUNTIME-gcc-tdm.txt \
        tdm/gcc-4.8.1-tdm64-2-core/licenses/COPYING.winpthreads.txt \
        tdm/gcc-4.8.1-tdm64-2-core/licenses/COPYING3-gcc-tdm.txt \
-       tdm/gcc-4.8.1-tdm64-2-core/licenses/COPYING3.LIB-gcc-tdm.txt
-RESOURCES33 = \
+       tdm/gcc-4.8.1-tdm64-2-core/licenses/COPYING3.LIB-gcc-tdm.txt \
        tdm/gcc-4.8.1-tdm64-2-core/licenses/README-gcc-tdm64.txt \
        tdm/gcc-4.8.1-tdm64-2-c++/bin/c++.exe \
        tdm/gcc-4.8.1-tdm64-2-c++/bin/g++.exe \
@@ -1132,11 +1139,11 @@ RESOURCES33 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/backward/backward_warning.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/backward/binders.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/backward/hashtable.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/backward/hash_fun.h \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/backward/hash_fun.h
+RESOURCES34 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/backward/hash_map \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/backward/hash_set \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/backward/strstream
-RESOURCES34 = \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/backward/strstream \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/algorithmfwd.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/allocator.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/alloc_traits.h \
@@ -1148,11 +1155,11 @@ RESOURCES34 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/basic_string.tcc \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/boost_concept_check.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/c++0x_warning.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/char_traits.h \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/char_traits.h
+RESOURCES35 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/codecvt.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/concept_check.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/cpp_type_traits.h
-RESOURCES35 = \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/cpp_type_traits.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/cxxabi_forced.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/deque.tcc \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/exception_defines.h \
@@ -1164,11 +1171,11 @@ RESOURCES35 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/functional_hash.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/gslice.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/gslice_array.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/hashtable.h \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/hashtable.h
+RESOURCES36 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/hashtable_policy.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/hash_bytes.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/indirect_array.h
-RESOURCES36 = \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/indirect_array.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/ios_base.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/istream.tcc \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/list.tcc \
@@ -1180,11 +1187,11 @@ RESOURCES36 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/locale_facets_nonio.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/locale_facets_nonio.tcc \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/mask_array.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/memoryfwd.h \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/memoryfwd.h
+RESOURCES37 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/move.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/nested_exception.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/opt_random.h
-RESOURCES37 = \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/opt_random.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/ostream.tcc \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/ostream_insert.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/postypes.h \
@@ -1196,11 +1203,11 @@ RESOURCES37 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/regex_compiler.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/regex_constants.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/regex_cursor.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/regex_error.h \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/regex_error.h
+RESOURCES38 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/regex_grep_matcher.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/regex_grep_matcher.tcc \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/regex_nfa.h
-RESOURCES38 = \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/regex_nfa.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/regex_nfa.tcc \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/shared_ptr.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/shared_ptr_base.h \
@@ -1212,11 +1219,11 @@ RESOURCES38 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_construct.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_deque.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_function.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_heap.h \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_heap.h
+RESOURCES39 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_iterator.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_iterator_base_funcs.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_iterator_base_types.h
-RESOURCES39 = \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_iterator_base_types.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_list.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_map.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_multimap.h \
@@ -1228,11 +1235,11 @@ RESOURCES39 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_relops.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_set.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_stack.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_tempbuf.h \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_tempbuf.h
+RESOURCES40 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_tree.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_uninitialized.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_vector.h
-RESOURCES40 = \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stl_vector.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/streambuf.tcc \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/streambuf_iterator.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/stream_iterator.h \
@@ -1244,11 +1251,11 @@ RESOURCES40 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/valarray_after.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/valarray_array.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/valarray_array.tcc \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/valarray_before.h \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/valarray_before.h
+RESOURCES41 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/bits/vector.tcc \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/array \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/bitset
-RESOURCES41 = \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/bitset \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/debug.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/deque \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/formatter.h \
@@ -1261,10 +1268,10 @@ RESOURCES41 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/multimap.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/multiset.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/safe_base.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/safe_iterator.h \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/safe_iterator.tcc \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/safe_local_iterator.h
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/safe_iterator.h
 RESOURCES42 = \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/safe_iterator.tcc \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/safe_local_iterator.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/safe_local_iterator.tcc \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/safe_sequence.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/safe_sequence.tcc \
@@ -1277,9 +1284,9 @@ RESOURCES42 = \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/unordered_map \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/unordered_set \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/debug/vector \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/decimal/decimal \
-       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/decimal/decimal.h
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/decimal/decimal
 RESOURCES43 = \
+       tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/decimal/decimal.h \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp \
        tdm/gcc-4.8.1-tdm64-2-c++/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/ext/pb_ds/detail/binary_heap_/const_iterator.hpp \
@@ -5212,10 +5219,10 @@ RESOURCES268 = \
        tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/licenses/COPYING.MinGW-w64-runtime.txt \
        tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/licenses/COPYING.MinGW-w64.txt \
        tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/licenses/COPYING.winpthreads.txt \
-       locale/Installer/es.mo \
-       locale/Installer/pt_BR.mo \
-       locale/Installer/ru.mo \
-       locale/Installer/zh_CN.mo \
+       locale/es.mo \
+       locale/pt_BR.mo \
+       locale/ru.mo \
+       locale/zh_CN.mo \
        ../extras/res/types/countryCode/es.png \
        ../extras/res/types/countryCode/gb.png \
        ../extras/res/types/countryCode/hu.png \
@@ -5226,10 +5233,10 @@ RESOURCES268 = \
        ../extras/res/types/countryCode/in.png \
        ../extras/res/types/countryCode/nl.png \
        ../extras/res/types/countryCode/il.png \
-       ../extras/res/types/countryCode/br.png
-RESOURCES269 = \
+       ../extras/res/types/countryCode/br.png \
        ../ide/res/icon.png \
-       ecere.png \
+       ecere.png
+RESOURCES269 = \
        ryoanji.png \
        ryoanji-progress.png
 
@@ -5251,6 +5258,7 @@ PRJ_CFLAGS += \
         $(if $(DEBUG), -g, -Os -ffast-math) $(FPIC) -w -DREPOSITORY_VERSION="\"$(REPOSITORY_VER)\"" \
                         -DECERE_STATIC
 
+ECFLAGS += -module $(MODULE)
 CECFLAGS += -cpp $(_CPP)
 
 ifndef STATIC_LIBRARY_TARGET
@@ -5305,6 +5313,7 @@ endif
        $(EAR) aw$(EARFLAGS) $(TARGET) ../ecere/res/mimeTypes/file.png ../ecere/res/mimeTypes/brokenFile.png "ecere/mimetypes"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../ecere/res/places/driveRemote.png ../ecere/res/places/folder.png ../ecere/res/places/folderRemote.png ../ecere/res/places/networkServer.png ../ecere/res/places/networkWorkgroup.png ../ecere/res/places/brokenFolder.png "ecere/places"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../ecere/res/status/folderOpen.png "ecere/status"
+       $(EAR) aw$(EARFLAGS) $(TARGET) ../ecere/locale/es.mo ../ecere/locale/hu.mo ../ecere/locale/mr.mo ../ecere/locale/nl.mo ../ecere/locale/pt_BR.mo ../ecere/locale/ru.mo ../ecere/locale/zh_CN.mo "ecere/locale"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../obj/win32/bin/ecere.dll ../obj/win32/lib/libecereVanilla.a "ecere-sdk"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../obj/win32/bin/documentor.exe ../obj/win32/bin/ide.exe "ecere-sdk/ide"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../obj/win32/bin/ear.exe ../obj/win32/bin/ec.dll ../obj/win32/bin/ecc.exe ../obj/win32/bin/ecereCOM.dll ../obj/win32/bin/ecp.exe ../obj/win32/bin/ecs.exe ../obj/win32/bin/epj2make.exe "ecere-sdk/compiler"
@@ -5950,7 +5959,7 @@ endif
        $(EAR) aw$(EARFLAGS) $(TARGET) tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxapofx1_0.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxapofx1_1.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxapofx1_2.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxapofx1_3.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxapofx1_4.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxapofx1_5.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxapofxd1_5.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxaudio2_8.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxinput.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxinput1_1.a "tdm/mingwrt/x86_64-w64-mingw32/lib32"
        $(EAR) aw$(EARFLAGS) $(TARGET) tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxinput1_2.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxinput1_3.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxinput1_4.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/libxinput9_1_0.a tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/x86_64-w64-mingw32/lib32/txtmode.o "tdm/mingwrt/x86_64-w64-mingw32/lib32"
        $(EAR) aw$(EARFLAGS) $(TARGET) tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/licenses/COPYING.LIB.txt tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/licenses/COPYING.MinGW-w64-runtime.txt tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/licenses/COPYING.MinGW-w64.txt tdm/mingw64-runtime-v3-tdm64-gcc48-svn6307/licenses/COPYING.winpthreads.txt "tdm/mingwrt/licenses"
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/Installer/es.mo locale/Installer/pt_BR.mo locale/Installer/ru.mo locale/Installer/zh_CN.mo "locale/Installer"
+       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es.mo locale/pt_BR.mo locale/ru.mo locale/zh_CN.mo "locale"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../extras/res/types/countryCode/es.png ../extras/res/types/countryCode/gb.png ../extras/res/types/countryCode/hu.png ../extras/res/types/countryCode/cn.png ../extras/res/types/countryCode/pt.png ../extras/res/types/countryCode/vn.png ../extras/res/types/countryCode/ru.png ../extras/res/types/countryCode/in.png ../extras/res/types/countryCode/nl.png ../extras/res/types/countryCode/il.png "countryCode"
        $(EAR) aw$(EARFLAGS) $(TARGET) ../extras/res/types/countryCode/br.png "countryCode"
 else