Partial copy of your old code.
From ed491236a0dd05a647fd06cbcaca465a22ac5c7e Mon Sep 17 00:00:00 2001
From: oBFusCATed <fuscated@gmail.com>
Date: Tue, 6 May 2014 01:04:05 +0300
Subject: [PATCH] - build fixes to make C::B compatible with wx build with stl
 support
---
 src/include/toolsmanager.h                         |  2 +-
 src/plugins/compilergcc/compiler_defs.cpp          | 25 ++++++++----------
 src/plugins/compilergcc/compilergcc.cpp            |  6 ++---
 .../KWIC/src/wx/KWIC/BmpSwitcher.cpp               | 18 ++++---------
 src/sdk/toolsmanager.cpp                           | 30 ++++++++--------------
 5 files changed, 31 insertions(+), 50 deletions(-)
diff --git a/src/include/toolsmanager.h b/src/include/toolsmanager.h
index 9db68d33f..3eeb9ba05 100644
--- a/src/include/toolsmanager.h
+++ b/src/include/toolsmanager.h
@@ -43,7 +43,7 @@ class DLLIMPORT ToolsManager : public Mgr<ToolsManager>, public wxEvtHandler
 	private:
 		ToolsManager();
 		~ToolsManager();
-		void DoRemoveTool(ToolsList::Node* node);
+
 		int Configure();
 		bool Execute(const cbTool* tool);
 		void LoadTools();
diff --git a/src/plugins/compilergcc/compiler_defs.cpp b/src/plugins/compilergcc/compiler_defs.cpp
index 293f51e3c..a5eb4d97e 100644
--- a/src/plugins/compilergcc/compiler_defs.cpp
+++ b/src/plugins/compilergcc/compiler_defs.cpp
@@ -54,30 +54,27 @@ void CompilerQueue::Add(CompilerCommand* cmd)
 
 void CompilerQueue::Add(CompilerQueue* queue)
 {
-    wxCompilerCommandsNode* node = queue->m_Commands.GetFirst();
-    while (node)
+    for (CompilerCommands::iterator it = queue->m_Commands.begin(); it != queue->m_Commands.end(); ++it)
     {
-        if (node->GetData())
-            Add(new CompilerCommand(*(node->GetData())));
-        node = node->GetNext();
+        if (*it)
+            Add(new CompilerCommand(**it));
     }
 }
 
 CompilerCommand* CompilerQueue::Peek()
 {
-    wxCompilerCommandsNode* node = m_Commands.GetFirst();
-    if (!node)
-        return 0;
-    return node->GetData();
+    if (m_Commands.empty())
+        return nullptr;
+    else
+        return m_Commands.front();
 }
 
 CompilerCommand* CompilerQueue::Next()
 {
-    wxCompilerCommandsNode* node = m_Commands.GetFirst();
-    if (!node)
-        return 0;
-    CompilerCommand* cmd = node->GetData();
-    m_Commands.Erase(node);
+    if (m_Commands.empty())
+        return nullptr;
+    CompilerCommand* cmd = m_Commands.front();
+    m_Commands.pop_front();
     m_LastWasRun = cmd ? cmd->isRun : false;
     return cmd;
 }
diff --git a/src/plugins/compilergcc/compilergcc.cpp b/src/plugins/compilergcc/compilergcc.cpp
index 92ba52a6d..48f53851d 100644
--- a/src/plugins/compilergcc/compilergcc.cpp
+++ b/src/plugins/compilergcc/compilergcc.cpp
@@ -1384,10 +1384,10 @@ void CompilerGCC::DoClearTargetMenu()
     if (m_TargetMenu)
     {
         wxMenuItemList& items = m_TargetMenu->GetMenuItems();
-        while (wxMenuItemList::Node* node = items.GetFirst())
+        for (wxMenuItemList::iterator it = items.begin(); it != items.end(); ++it)
         {
-            if (node->GetData())
-                m_TargetMenu->Delete(node->GetData());
+            if (*it)
+                m_TargetMenu->Delete(*it);
         }
 // mandrav: The following lines DO NOT clear the menu!
 //        wxMenuItemList& items = m_TargetMenu->GetMenuItems();
diff --git a/src/plugins/contrib/wxContribItems/KWIC/src/wx/KWIC/BmpSwitcher.cpp b/src/plugins/contrib/wxContribItems/KWIC/src/wx/KWIC/BmpSwitcher.cpp
index 7838d6e73..dde2ada7d 100644
--- a/src/plugins/contrib/wxContribItems/KWIC/src/wx/KWIC/BmpSwitcher.cpp
+++ b/src/plugins/contrib/wxContribItems/KWIC/src/wx/KWIC/BmpSwitcher.cpp
@@ -72,14 +72,9 @@ kwxBmpSwitcher::~kwxBmpSwitcher()
 {
 	delete membitmap;
 
-	CBmpList::Node *node= m_bmplist.GetFirst() ;
-
-	while(node)
-	{
-        wxBitmap *current = node->GetData();
-		delete current ;
-		node = node->GetNext() ;
-	}
+	m_bmplist.DeleteContents(true);
+	m_bmplist.Clear();
+	m_bmplist.DeleteContents(false);
 }
 
 void kwxBmpSwitcher::OnPaint(wxPaintEvent &WXUNUSED(event))
@@ -102,19 +97,16 @@ void kwxBmpSwitcher::OnPaint(wxPaintEvent &WXUNUSED(event))
 	// Cryogen 16/4/10 Fixed to prevent a crash when m_nCount = 0. This is necessary for
 	// wxSmithKWIC to be able to initialise the control before bitmaps are added.
 	// Also moved update of m_nCount and m_nState to the appropriate functions.
-	CBmpList::Node *node;
 	switch(m_nCount){
 		case 0:
 			break;
 		case 1:
-			node = m_bmplist.GetFirst();
-			pCurrent = node->GetData() ;
+			pCurrent = m_bmplist.front();
 			dc.DrawBitmap(*pCurrent, 0, 0, TRUE);
 			break;
 
 		default:
-			node = m_bmplist.Item(m_nState);
-			pCurrent = node->GetData() ;
+			pCurrent = m_bmplist.Item(m_nState)->GetData();
 
 			dc.DrawBitmap(*pCurrent, 0, 0, TRUE);
 			break;
diff --git a/src/sdk/toolsmanager.cpp b/src/sdk/toolsmanager.cpp
index a0116bde3..c82968273 100644
--- a/src/sdk/toolsmanager.cpp
+++ b/src/sdk/toolsmanager.cpp
@@ -214,31 +214,23 @@ void ToolsManager::InsertTool(int position, const cbTool* tool, bool save)
 void ToolsManager::RemoveToolByIndex(int index)
 {
     int idx = 0;
-    for (ToolsList::Node* node = m_Tools.GetFirst(); node; node = node->GetNext())
+    for (ToolsList::iterator it = m_Tools.begin(); it != m_Tools.end(); ++it)
     {
         if (idx == index)
         {
-            DoRemoveTool(node);
+            m_Tools.erase(it);
+            SaveTools();
             return;
         }
         ++idx;
     }
 }
 
-void ToolsManager::DoRemoveTool(ToolsList::Node* node)
-{
-    if (node)
-    {
-        m_Tools.DeleteNode(node);
-        SaveTools();
-    }
-}
-
 cbTool* ToolsManager::GetToolByMenuId(int id)
 {
-    for (ToolsList::Node* node = m_Tools.GetFirst(); node; node = node->GetNext())
+    for (ToolsList::iterator it = m_Tools.begin(); it != m_Tools.end(); ++it)
     {
-        cbTool* tool = node->GetData();
+        cbTool* tool = *it;
         if (tool->GetMenuId() == id)
             return tool;
     }
@@ -248,9 +240,9 @@ cbTool* ToolsManager::GetToolByMenuId(int id)
 cbTool* ToolsManager::GetToolByIndex(int index)
 {
     int idx = 0;
-    for (ToolsList::Node* node = m_Tools.GetFirst(); node; node = node->GetNext())
+    for (ToolsList::iterator it = m_Tools.begin(); it != m_Tools.end(); ++it)
     {
-        cbTool* tool = node->GetData();
+        cbTool* tool = *it;
         if (idx == index)
             return tool;
         ++idx;
@@ -290,9 +282,9 @@ void ToolsManager::SaveTools()
     }
 
     int count = 0;
-    for (ToolsList::Node* node = m_Tools.GetFirst(); node; node = node->GetNext())
+    for (ToolsList::iterator it = m_Tools.begin(); it != m_Tools.end(); ++it)
     {
-        cbTool* tool = node->GetData();
+        cbTool* tool = *it;
         wxString elem;
 
         // prepend a 0-padded 2-digit number to keep ordering
@@ -320,9 +312,9 @@ void ToolsManager::BuildToolsMenu(wxMenu* menu)
         m_ItemsManager.Add(menu, wxID_SEPARATOR, _T(""), _T(""));
     }
 
-    for (ToolsList::Node* node = m_Tools.GetFirst(); node; node = node->GetNext())
+    for (ToolsList::iterator it = m_Tools.begin(); it != m_Tools.end(); ++it)
     {
-        cbTool* tool = node->GetData();
+        cbTool* tool = *it;
         if (tool->GetName() == CB_TOOLS_SEPARATOR)
         {
             m_ItemsManager.Add(menu, wxID_SEPARATOR, _T(""), _T(""));
-- 
2.13.2.windows.1