Patch #3319 2012-08-18 16:53

alpha0010

Fix loading of custom color schemes
Download
3319-Fix_loading_of.patch (12.9 KB)
Category
Application::Bugfix
Status
Accepted
Close date
2012-08-21 04:49
Assigned to
mortenmacfly
Index: src/include/globals.h
===================================================================
--- src/include/globals.h    (revision 8236)
+++ src/include/globals.h    (working copy)
@@ -206,6 +206,8 @@
 
 extern DLLIMPORT wxString URLEncode(const wxString &str);
 
+extern DLLIMPORT wxString ExpandBackticks(wxString &str);
+
 /// Check if CommonControls version is at least 6 (XP and up)
 extern DLLIMPORT bool UsesCommonControls6();
 
Index: src/include/compilercommandgenerator.h
===================================================================
--- src/include/compilercommandgenerator.h    (revision 8236)
+++ src/include/compilercommandgenerator.h    (working copy)
@@ -20,7 +20,6 @@
 
 typedef std::map<ProjectBuildTarget*, wxString> OptionsMap;
 typedef std::map<ProjectBuildTarget*, wxArrayString> SearchDirsMap;
-typedef std::map<wxString, wxString> BackticksMap;
 
 /** Generate command-lines needed to produce a build.
   * This pre-generates everything when Init() is called.
@@ -98,9 +97,7 @@
     private:
         wxString GetProcessedIncludeDir(Compiler* compiler, ProjectBuildTarget* target,
                                         const wxArrayString& inc_dirs, const wxString& inc_switch);
-        wxString ExpandBackticks(wxString& str);
         void SearchDirsFromBackticks(Compiler* compiler, ProjectBuildTarget* target, const wxString& btOutput);
-        BackticksMap m_Backticks;
         wxArrayString m_NotLoadedScripts;
         wxArrayString m_ScriptsWithErrors;
 };
Index: src/sdk/editorcolourset.cpp
===================================================================
--- src/sdk/editorcolourset.cpp    (revision 8236)
+++ src/sdk/editorcolourset.cpp    (working copy)
@@ -651,34 +651,34 @@
 
         for (unsigned int i = 0; i < it->second.m_Colours.GetCount(); ++i)
         {
-            OptionColour* opt = it->second.m_Colours.Item(i);
-            if (!opt)
-                continue;
             wxString tmpKey;
             tmpKey << key << _T("/style") << wxString::Format(_T("%d"), i);
-
-            if (cfg->Exists(tmpKey + _T("/name")))
-                opt->name = cfg->Read(tmpKey + _T("/name"));
-            else
+            if (!cfg->Exists(tmpKey + _T("/name")))
             {
                 // make sure we didn't create it accidentally
                 cfg->DeleteSubPath(tmpKey);
                 continue;
             }
+            wxString name = cfg->Read(tmpKey + _T("/name"));
+            for (size_t j = 0; j < it->second.m_Colours.GetCount(); ++j)
+            {
+                OptionColour* opt = it->second.m_Colours.Item(j);
+                if (!opt || opt->name != name)
+                    continue;
 
-            if (cfg->Exists(tmpKey + _T("/fore")))
-                opt->fore = cfg->ReadColour(tmpKey + _T("/fore"), opt->fore);
-            if (cfg->Exists(tmpKey + _T("/back")))
-                opt->back = cfg->ReadColour(tmpKey + _T("/back"), opt->back);
-            if (cfg->Exists(tmpKey + _T("/bold")))
-                opt->bold = cfg->ReadBool(tmpKey + _T("/bold"), opt->bold);
-            if (cfg->Exists(tmpKey + _T("/italics")))
-                opt->italics = cfg->ReadBool(tmpKey + _T("/italics"), opt->italics);
-            if (cfg->Exists(tmpKey + _T("/underlined")))
-                opt->underlined = cfg->ReadBool(tmpKey + _T("/underlined"), opt->underlined);
-
-            if (cfg->Exists(tmpKey + _T("/isStyle")))
-                opt->isStyle = cfg->ReadBool(tmpKey + _T("/isStyle"), opt->isStyle);
+                if (cfg->Exists(tmpKey + _T("/fore")))
+                    opt->fore = cfg->ReadColour(tmpKey     + _T("/fore"),       opt->fore);
+                if (cfg->Exists(tmpKey + _T("/back")))
+                    opt->back = cfg->ReadColour(tmpKey     + _T("/back"),       opt->back);
+                if (cfg->Exists(tmpKey + _T("/bold")))
+                    opt->bold = cfg->ReadBool(tmpKey       + _T("/bold"),       opt->bold);
+                if (cfg->Exists(tmpKey + _T("/italics")))
+                    opt->italics = cfg->ReadBool(tmpKey    + _T("/italics"),    opt->italics);
+                if (cfg->Exists(tmpKey + _T("/underlined")))
+                    opt->underlined = cfg->ReadBool(tmpKey + _T("/underlined"), opt->underlined);
+                if (cfg->Exists(tmpKey + _T("/isStyle")))
+                    opt->isStyle = cfg->ReadBool(tmpKey    + _T("/isStyle"),    opt->isStyle);
+            }
         }
         wxString tmpkey;
         for (int i = 0; i <= wxSCI_KEYWORDSET_MAX; ++i)
Index: src/sdk/cbeditor.cpp
===================================================================
--- src/sdk/cbeditor.cpp    (revision 8236)
+++ src/sdk/cbeditor.cpp    (working copy)
@@ -1576,7 +1576,7 @@
     ConfigManager* mgr = Manager::Get()->GetConfigManager(_T("editor"));
 
     // Interpret #if/#else/#endif to grey out code that is not active
-    control->SetProperty(_T("lexer.cpp.track.preprocessor"), mgr->ReadBool(_T("/track_preprocessor")
download for full patch...