{
SettingsIOResult result = GlobalSettings::Load();
IDESettings data = (IDESettings)this.data;
- //if(result == success)
+ CompilerConfig defaultCompiler = null;
if(!data)
{
this.data = IDESettings { };
data.useFreeCaret = oldSettings.useFreeCaret;
data.showLineNumbers = oldSettings.showLineNumbers;
data.caretFollowsScrolling = oldSettings.caretFollowsScrolling;
- delete data.displayDriver;
- data.displayDriver = oldSettings.displayDriver;
+ delete data.displayDriver; data.displayDriver = CopyString(oldSettings.displayDriver);
data.projectDefaultTargetDir = oldSettings.projectDefaultTargetDir;
data.projectDefaultIntermediateObjDir = oldSettings.projectDefaultIntermediateObjDir;
}
if(result == fileNotFound || !data)
{
- CompilerConfig defaultCompiler = MakeDefaultCompiler(defaultCompilerName, true);
- // We incref the compilers below, so reset refCount to 0
- defaultCompiler._refCount = 0;
data = (IDESettings)this.data;
-
- data.compilerConfigs.Add(defaultCompiler);
data.useFreeCaret = true;
data.showLineNumbers = true;
data.caretFollowsScrolling = true;
}
}
+ // Ensure we have a default compiler
+ defaultCompiler = data.GetCompilerConfig(defaultCompilerName);
+ if(!defaultCompiler)
+ {
+ defaultCompiler = MakeDefaultCompiler(defaultCompilerName, true);
+ data.compilerConfigs.Add(defaultCompiler);
+ }
+
+ // We incref the compilers below, so reset refCount to 0
+ defaultCompiler._refCount = 0;
+
CloseAndMonitor();
if(data.compilerConfigs)
{
projectDefaultTargetDir = ReplaceInCopyString(projectDefaultTargetDir, oldPath, oldLen, newPath, newLen);
if(projectDefaultIntermediateObjDir && projectDefaultIntermediateObjDir[0])
projectDefaultIntermediateObjDir = ReplaceInCopyString(projectDefaultIntermediateObjDir, oldPath, oldLen, newPath, newLen);
+ return true;
}
char * ReplaceInCopyString(char * string, char * find, int lenFind, char * replace, int lenReplace)
#ifdef NOMINGW
-static define buildString = $"Ecere SDK v0.44 (Without MinGW) -- built on March 8, 2012 ";
+static define buildString = $"Ecere SDK v0.44 (Without MinGW) -- built on March 9, 2012 ";
#else
-static define buildString = $"Ecere SDK v0.44 -- built on March 8, 2012 ";
+static define buildString = $"Ecere SDK v0.44 -- built on March 9, 2012 ";
#endif
#define WIN32_LEAN_AND_MEAN
char userProfile[MAX_LOCATION];
// Configure IDE
- IDESettings settings { }; // instantiate the IDESettings class from the IDESettings.ec file. Do this at a global level so that all methods can access settings.
+ IDESettings settings = null; // Don't instantiate yet so we can pick up old settings
IDESettingsContainer settingsContainer
{
PathCat(idePath, "IDE.exe");
}
- if(!compiler.executableDirs.Find(path))
- compiler.executableDirs.Add(CopyString(path));
+ if(c != vanilla)
+ {
+ if(!compiler.executableDirs.Find(path))
+ compiler.executableDirs.Add(CopyString(path));
+ }
if(c == runtime || c == vanilla)
{