merge commit
authortimkelly
Sun, 06 Dec 2009 20:47:07 -0600
changeset 642 20fd716f8eaa
parent 641 1f0a706d24b2 (current diff)
parent 640 5ff506b20613 (diff)
child 643 421b1531a135
merge commit
--- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/abstractgcce.regression.xml	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/abstractgcce.regression.xml	Sun Dec 06 20:47:07 2009 -0600
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <root>
   <!--Error Marker at index 0-->
-  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="test/test.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="test/test.cpp" />
   <!--Error Marker at index 1-->
   <marker_info file="^EMPTY^" line_number="0" message="no input files" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
   <!--Error Marker at index 2-->
--- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/2969.gcce.regression.xml	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/2969.gcce.regression.xml	Sun Dec 06 20:47:07 2009 -0600
@@ -3,7 +3,7 @@
   <!--Error Marker at index 0-->
   <marker_info file="^EMPTY^" line_number="0" message="\S60\devices\S60_3rd_FP2_SDK_v1.1\epoc32\release\ARMV5\LIB\foo.dso: No such file: No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
   <!--Error Marker at index 1-->
-  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="test/test.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="test/test.cpp" />
   <!--Error Marker at index 2-->
-  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="test/test.s:" />
+  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="test/test.s" />
 </root>
--- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/4541.gcce.regression.xml	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/4541.gcce.regression.xml	Sun Dec 06 20:47:07 2009 -0600
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <root>
   <!--Error Marker at index 0-->
-  <marker_info file="^EMPTY^" line_number="0" message="undefined reference to `foo()'" severity="2" variable_name="^EMPTY^" external_path_string="test3.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="undefined reference to `foo()'" severity="2" variable_name="^EMPTY^" external_path_string="test3.cpp" />
 </root>
 
--- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/5618.gcce.regression.xml	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/5618.gcce.regression.xml	Sun Dec 06 20:47:07 2009 -0600
@@ -1,20 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <root>
   <!--Error Marker at index 0-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o:(.rodata+0x14): undefined reference to `CScanEngine::HandleEvent(TECAMEvent const&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="undefined reference to `CScanEngine::HandleEvent(TECAMEvent const&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o" />
   <!--Error Marker at index 1-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o:(.rodata+0x18): undefined reference to `CScanEngine::ViewFinderReady(MCameraBuffer&amp;, int)'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="undefined reference to `CScanEngine::ViewFinderReady(MCameraBuffer&amp;, int)'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o" />
   <!--Error Marker at index 2-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o:(.rodata+0x1c): undefined reference to `CScanEngine::ImageBufferReady(MCameraBuffer&amp;, int)'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="undefined reference to `CScanEngine::ImageBufferReady(MCameraBuffer&amp;, int)'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o" />
   <!--Error Marker at index 3-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o:(.rodata+0x20): undefined reference to `CScanEngine::VideoBufferReady(MCameraBuffer&amp;, int)'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="undefined reference to `CScanEngine::VideoBufferReady(MCameraBuffer&amp;, int)'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o" />
   <!--Error Marker at index 4-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o:(.rodata+0x2c): undefined reference to `non-virtual thunk to CScanEngine::HandleEvent(TECAMEvent const&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="undefined reference to `non-virtual thunk to CScanEngine::HandleEvent(TECAMEvent const&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o" />
   <!--Error Marker at index 5-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o:(.rodata+0x30): undefined reference to `non-virtual thunk to CScanEngine::ViewFinderReady(MCameraBuffer&amp;, int)'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="undefined reference to `non-virtual thunk to CScanEngine::ViewFinderReady(MCameraBuffer&amp;, int)'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o" />
   <!--Error Marker at index 6-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o:(.rodata+0x34): undefined reference to `non-virtual thunk to CScanEngine::ImageBufferReady(MCameraBuffer&amp;, int)'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="undefined reference to `non-virtual thunk to CScanEngine::ImageBufferReady(MCameraBuffer&amp;, int)'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o" />
   <!--Error Marker at index 7-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o:(.rodata+0x38): undefined reference to `non-virtual thunk to CScanEngine::VideoBufferReady(MCameraBuffer&amp;, int)'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="undefined reference to `non-virtual thunk to CScanEngine::VideoBufferReady(MCameraBuffer&amp;, int)'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\develop\S60-3P\BarcMeProject\BarcMe\CS60-3P\BARCME\GCCE\UREL\ScanEngine.o" />
 </root>
 
--- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/5824.gcce.regression.xml	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/5824.gcce.regression.xml	Sun Dec 06 20:47:07 2009 -0600
@@ -1,25 +1,25 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <root>
   <!--Error Marker at index 0-->
-  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="../../SRC/Main.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="../../SRC/Main.cpp" />
   <!--Error Marker at index 1-->
   <marker_info file="^EMPTY^" line_number="0" message="`-x c++' after last input file has no effect" severity="1" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
   <!--Error Marker at index 2-->
   <marker_info file="^EMPTY^" line_number="0" message="no input files" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
   <!--Error Marker at index 3-->
-  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="../../SRC/Dbg_breakpoints.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="../../SRC/Dbg_breakpoints.cpp" />
   <!--Error Marker at index 4-->
   <marker_info file="^EMPTY^" line_number="0" message="`-x c++' after last input file has no effect" severity="1" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
   <!--Error Marker at index 5-->
   <marker_info file="^EMPTY^" line_number="0" message="no input files" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
   <!--Error Marker at index 6-->
-  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="../../SRC/Dbg_debug_menu.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="../../SRC/Dbg_debug_menu.cpp" />
   <!--Error Marker at index 7-->
   <marker_info file="^EMPTY^" line_number="0" message="`-x c++' after last input file has no effect" severity="1" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
   <!--Error Marker at index 8-->
   <marker_info file="^EMPTY^" line_number="0" message="no input files" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
   <!--Error Marker at index 9-->
-  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="../../SRC/Dbg_derived_types.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="No such file or directory" severity="2" variable_name="^EMPTY^" external_path_string="../../SRC/Dbg_derived_types.cpp" />
   <!--Error Marker at index 10-->
   <marker_info file="^EMPTY^" line_number="0" message="`-x c++' after last input file has no effect" severity="1" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
   <!--Error Marker at index 11-->
--- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/6417.gcce.regression.xml	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/6417.gcce.regression.xml	Sun Dec 06 20:47:07 2009 -0600
@@ -1,244 +1,244 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <root>
   <!--Error Marker at index 0-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::NewL(CDataKeeper&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::NewL(CDataKeeper&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 1-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 2-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::COvertimeHandler(CDataKeeper&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::COvertimeHandler(CDataKeeper&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 3-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 4-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::ConstructL()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::ConstructL()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 5-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 6-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::COvertimeHandler(CDataKeeper&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::COvertimeHandler(CDataKeeper&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 7-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 8-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::restoreDefaultValues()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::restoreDefaultValues()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 9-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 10-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\OvertimeHandler.o:(.rodata+0x0): multiple definition of `vtable for COvertimeHandler'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `vtable for COvertimeHandler'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\OvertimeHandler.o" />
   <!--Error Marker at index 11-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\OvertimeHandler.o:(.rodata+0x0): first defined here" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\OvertimeHandler.o" />
   <!--Error Marker at index 12-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::~COvertimeHandler()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::~COvertimeHandler()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 13-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 14-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::~COvertimeHandler()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::~COvertimeHandler()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 15-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 16-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::~COvertimeHandler()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::~COvertimeHandler()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 17-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 18-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::save(MSettingsStorage&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::save(MSettingsStorage&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 19-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 20-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::load(MSettingsStorage&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::load(MSettingsStorage&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 21-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 22-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleViewActivated()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleViewActivated()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 23-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 24-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleViewDeactivated()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleViewDeactivated()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 25-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 26-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleWentBackground()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleWentBackground()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 27-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 28-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleWentForeground()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleWentForeground()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 29-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 30-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getOvertimeEngine()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getOvertimeEngine()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 31-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 32-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getPunchEngine()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getPunchEngine()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 33-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 34-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getSelectedHolidayId() const'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getSelectedHolidayId() const'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 35-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 36-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getSelectedHolidayObject()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getSelectedHolidayObject()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 37-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 38-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getEditHolidayObject()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getEditHolidayObject()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 39-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 40-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getSelectedVacationId() const'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getSelectedVacationId() const'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 41-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 42-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getSelectedVacationObject()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getSelectedVacationObject()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 43-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 44-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getEditVacationObject()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getEditVacationObject()'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 45-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 46-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getStartStatistics() const'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getStartStatistics() const'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 47-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 48-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getEndStatistics() const'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getEndStatistics() const'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 49-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 50-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getStartResult() const'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getStartResult() const'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 51-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 52-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getWorkHours() const'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::getWorkHours() const'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 53-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 54-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::setSelectedHolidayId(int)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::setSelectedHolidayId(int)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 55-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 56-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::setSelectedVacationId(int)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::setSelectedVacationId(int)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 57-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 58-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::setStartStatistics(TTime const&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::setStartStatistics(TTime const&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 59-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 60-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::setEndStatistics(TTime const&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::setEndStatistics(TTime const&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 61-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 62-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::setStartResult(int)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::setStartResult(int)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 63-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 64-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::setWorkHours(int)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::setWorkHours(int)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 65-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 66-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleHolidayEditL(MObjectProvider*, MReloadable*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleHolidayEditL(MObjectProvider*, MReloadable*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 67-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 68-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::canModifyObject(TBOBase const*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::canModifyObject(TBOBase const*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 69-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 70-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleHolidayNewL(MObjectProvider*, MReloadable*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleHolidayNewL(MObjectProvider*, MReloadable*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 71-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 72-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleHolidayDeleteL(MObjectProvider*, MReloadable*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleHolidayDeleteL(MObjectProvider*, MReloadable*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 73-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 74-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleVacationEditL(MObjectProvider*, MReloadable*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleVacationEditL(MObjectProvider*, MReloadable*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 75-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 76-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleVacationNewL(MObjectProvider*, MReloadable*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleVacationNewL(MObjectProvider*, MReloadable*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 77-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 78-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleVacationDeleteL(MObjectProvider*, MReloadable*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `COvertimeHandler::handleVacationDeleteL(MObjectProvider*, MReloadable*)'" severity="2" variable_name="^EMPTY^" external_path_string="Overtimehandler.cpp" />
   <!--Error Marker at index 79-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/OvertimeHandler.o:Overtimehandler.cpp" />
   <!--Error Marker at index 80-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\OvertimeHandler.o:(.rodata+0x64): multiple definition of `typeinfo for COvertimeHandler'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `typeinfo for COvertimeHandler'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\OvertimeHandler.o" />
   <!--Error Marker at index 81-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\OvertimeHandler.o:(.rodata+0x64): first defined here" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\OvertimeHandler.o" />
   <!--Error Marker at index 82-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\OvertimeHandler.o:(.rodata+0x50): multiple definition of `typeinfo name for COvertimeHandler'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `typeinfo name for COvertimeHandler'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\OvertimeHandler.o" />
   <!--Error Marker at index 83-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\OvertimeHandler.o:(.rodata+0x50): first defined here" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\OvertimeHandler.o" />
   <!--Error Marker at index 84-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::CMyContainer(CDataKeeper*)'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::CMyContainer(CDataKeeper*)'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 85-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 86-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\MyContainer.o:(.rodata+0x0): multiple definition of `vtable for CMyContainer'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `vtable for CMyContainer'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\MyContainer.o" />
   <!--Error Marker at index 87-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\MyContainer.o:(.rodata+0x0): first defined here" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\MyContainer.o" />
   <!--Error Marker at index 88-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::CMyContainer(CDataKeeper*)'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::CMyContainer(CDataKeeper*)'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 89-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 90-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::~CMyContainer()'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::~CMyContainer()'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 91-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 92-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::~CMyContainer()'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::~CMyContainer()'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 93-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 94-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::~CMyContainer()'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::~CMyContainer()'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 95-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 96-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::BaseContainerConstructL()'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::BaseContainerConstructL()'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 97-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 98-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::getDataKeeper() const'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::getDataKeeper() const'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 99-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 100-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::handleSizeChanged(TRect const&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::handleSizeChanged(TRect const&amp;)'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 101-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 102-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::CountComponentControls() const'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::CountComponentControls() const'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 103-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 104-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::ComponentControl(int) const'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::ComponentControl(int) const'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 105-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 106-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::addControlL(CCoeControl*)'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::addControlL(CCoeControl*)'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 107-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 108-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::removeControl(CCoeControl*)'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::removeControl(CCoeControl*)'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 109-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 110-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::resetControls()'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::resetControls()'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 111-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 112-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::handleBeforeDestruction()'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::handleBeforeDestruction()'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 113-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 114-->
-  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::isDestructing() const'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `CMyContainer::isDestructing() const'" severity="2" variable_name="^EMPTY^" external_path_string="Mycontainer.cpp" />
   <!--Error Marker at index 115-->
-  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp:" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="../../../../../Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Carb13rc2/Workspace-P2G-3/Punch2Go-S60-3/Punch2Go/CS60-3/P2GDATACLASSES/GCCE/UREL/MyContainer.o:Mycontainer.cpp" />
   <!--Error Marker at index 116-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\MyContainer.o:(.rodata+0x118): multiple definition of `typeinfo for CMyContainer'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `typeinfo for CMyContainer'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\MyContainer.o" />
   <!--Error Marker at index 117-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\MyContainer.o:(.rodata+0x118): first defined here" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\MyContainer.o" />
   <!--Error Marker at index 118-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\MyContainer.o:(.rodata+0x108): multiple definition of `typeinfo name for CMyContainer'" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="multiple definition of `typeinfo name for CMyContainer'" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\MyContainer.o" />
   <!--Error Marker at index 119-->
-  <marker_info file="^EMPTY^" line_number="0" message="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\MyContainer.o:(.rodata+0x108): first defined here" severity="2" variable_name="^EMPTY^" external_path_string="^EMPTY^" />
+  <marker_info file="^EMPTY^" line_number="0" message="first defined here" severity="2" variable_name="^EMPTY^" external_path_string="..\..\..\..\..\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Carb13rc2\Workspace-P2G-3\Punch2Go-S60-3\Punch2Go\CS60-3\P2GDATACLASSES\GCCE\UREL\MyContainer.o" />
 </root>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/BaseTest.java	Sun Dec 06 20:47:07 2009 -0600
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cdt.builder.test;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+
+import com.nokia.cpp.internal.api.utils.core.HostOS;
+
+import junit.framework.TestCase;
+
+/**
+ * 
+ */
+public class BaseTest extends TestCase {
+	protected IPath getStockFullPath() {
+		return new Path(HostOS.IS_WIN32 ? "c:/" : "/opt/project");
+	}
+}
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/ProjectPropertiesTest.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/ProjectPropertiesTest.java	Sun Dec 06 20:47:07 2009 -0600
@@ -39,18 +39,18 @@
 import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext;
 
 
+@SuppressWarnings({ "deprecation" })
 public class ProjectPropertiesTest extends TestCase {
 	static IProject project;
 	
 	protected static final String PROJECT_NAME = "test-properties-project";
 	
-	private final String BLD_INF_PATH = "group\\";
-	private final String BUILD_CONFIG_NAME1 = "Emulator Debug (WINSCW) [S60_3rd]";
-	private final String BUILD_CONFIG_NAME2 = "Phone Debug (GCCE) [S60_3rd]";
-	private final String BUILD_CONFIG_NAME3 = "Phone Release (ARMV5) [S60_3rd]";
+	private final String BLD_INF_PATH = "group/";
 	private final String TRUE = "true";
 	private final String INF_COMPONENTS = "icons_scalable_dc.mk;HelloWorld.mmp";
-	
+
+	private List<ISymbianBuildContext> stockBuildConfigs;
+
 	private final String PKG_FILE1 = "\\sis\\test.pkg";
 	private final String KEY_FILE1 = "C:\\mycerts\\mykey.key";
 	private final String CER_FILE1 = "C:\\mycerts\\mycert.cer";
@@ -61,16 +61,19 @@
 	
 	// First thing we have to do is actually create a project in a workspace...
 	protected void setUp() throws Exception {
+		stockBuildConfigs = TestPlugin.getUsableBuildConfigs();
+		
 		if (project == null){
 			// turn off the indexer
 			CCorePlugin.getIndexManager().setDefaultIndexerId(IPDOMManager.ID_NO_INDEXER);
 
 			// there must be at least one build config to start with
-			List<ISymbianBuildContext> configs = new ArrayList<ISymbianBuildContext>();
-			configs.add(SymbianBuildContext.getBuildContextFromDisplayName(BUILD_CONFIG_NAME1));
-			
+			assertTrue("Some SDK needs at least 3 usable build configs", 
+					stockBuildConfigs.size() >= 3);
 			project = ProjectCorePlugin.createProject(PROJECT_NAME, null);
-			ProjectCorePlugin.postProjectCreatedActions(project, "group/bld.inf", configs, new ArrayList<String>(), "Debug MMP", null, new NullProgressMonitor());
+			ProjectCorePlugin.postProjectCreatedActions(project, "group/bld.inf", 
+					stockBuildConfigs.subList(0, 1), 
+					new ArrayList<String>(), "Debug MMP", null, new NullProgressMonitor());
 		}
 		super.setUp();
 	}
@@ -98,8 +101,8 @@
 		
 		// get a new copy of the info to make sure the changes we really applied
         ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(project);
-		assertEquals(BLD_INF_PATH, cpi.getProjectRelativeBldInfPath().toOSString());
-		assertEquals(BUILD_CONFIG_NAME1, cpi.getDefaultBuildConfigName());
+		assertEquals(BLD_INF_PATH, cpi.getProjectRelativeBldInfPath().toPortableString());
+		assertEquals(stockBuildConfigs.get(0).getDisplayString(), cpi.getDefaultBuildConfigName());
 		assertTrue(cpi.isBuildingFromInf());
 		assertEquals(2, cpi.getInfBuildComponents().size());
 	}
@@ -117,8 +120,9 @@
 		// Create a new configuration (which gets written to disk).
 		// WARNING: This test will only pass when you have an SDK that is installed that
 		// corresponds to the SDK specified in the build config display name
-		ISymbianBuildContext context = SymbianBuildContext.getBuildContextFromDisplayName(BUILD_CONFIG_NAME2);
-		assertNotNull(context);
+		if (stockBuildConfigs.size() == 1)
+			return;
+		ISymbianBuildContext context = stockBuildConfigs.get(1);
 		
 		ICarbideBuildConfiguration newConfig = cpm.createNewConfiguration(context, true);
 		
@@ -126,7 +130,7 @@
 		
 		assertNotNull(newConfig);
 		// Check that the config name was set correctly in the object
-		assertEquals(BUILD_CONFIG_NAME2, newConfig.getDisplayString());
+		assertEquals(context.getDisplayString(), newConfig.getDisplayString());
 		
 		// check that we can get back to the project from the config...
 		assertEquals(cpm, newConfig.getCarbideProject());
@@ -135,7 +139,6 @@
 	}
 	
 	public void testReadConfigurationData() throws Exception {
-		
 		//TODO: Here need to read all config data on this call...
 		// Right now we're just dealing with a single config property.
         ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(project);
@@ -144,15 +147,15 @@
 		List<ICarbideBuildConfiguration> configList = cpi.getBuildConfigurations();
 		assertEquals(2, configList.size());
 		
-		ICarbideBuildConfiguration config = cpi.getNamedConfiguration(BUILD_CONFIG_NAME1);
-		assertEquals(BUILD_CONFIG_NAME1, config.getDisplayString());
+		ICarbideBuildConfiguration config = cpi.getNamedConfiguration(stockBuildConfigs.get(0).getDisplayString());
+		assertEquals(stockBuildConfigs.get(0).getDisplayString(), config.getDisplayString());
 	}
 	
 	public void testDeleteConfigurationData() throws Exception {
         ICarbideProjectModifier cpm = CarbideBuilderPlugin.getBuildManager().getProjectModifier(project);
 		assertNotNull(cpm);
 		
-		ICarbideBuildConfiguration config = cpm.getNamedConfiguration(BUILD_CONFIG_NAME2);
+		ICarbideBuildConfiguration config = cpm.getNamedConfiguration(stockBuildConfigs.get(1).getDisplayString());
 		assertNotNull(config);
 		cpm.deleteConfiguration(config);
 		cpm.saveChanges();
@@ -168,11 +171,11 @@
         ICarbideProjectModifier cpm = CarbideBuilderPlugin.getBuildManager().getProjectModifier(project);
 		assertEquals(1, cpm.getBuildConfigurations().size());
 		
-		ISymbianBuildContext context2 = SymbianBuildContext.getBuildContextFromDisplayName(BUILD_CONFIG_NAME2);
+		ISymbianBuildContext context2 = SymbianBuildContext.getBuildContextFromDisplayName(stockBuildConfigs.get(1).getDisplayString());
 		assertNotNull(context2);
 		cpm.createNewConfiguration(context2, true);
 
-		ISymbianBuildContext context3 = SymbianBuildContext.getBuildContextFromDisplayName(BUILD_CONFIG_NAME3);
+		ISymbianBuildContext context3 = SymbianBuildContext.getBuildContextFromDisplayName(stockBuildConfigs.get(2).getDisplayString());
 		assertNotNull(context3);
 		cpm.createNewConfiguration(context3, false);
 		
@@ -184,7 +187,7 @@
 		assertEquals(3, cpi.getBuildConfigurations().size());
 		
 		ICarbideBuildConfiguration defConfig = cpi.getDefaultConfiguration();
-		assertEquals(BUILD_CONFIG_NAME2, defConfig.getDisplayString());
+		assertEquals(stockBuildConfigs.get(1).getDisplayString(), defConfig.getDisplayString());
 	}
 	
 	// Test the reading and writing of the default configuration
@@ -193,10 +196,10 @@
 		assertEquals(3, cpm.getBuildConfigurations().size());
 		
 		ICarbideBuildConfiguration defConfig = cpm.getDefaultConfiguration();
-		assertEquals(BUILD_CONFIG_NAME2, defConfig.getDisplayString());
+		assertEquals(stockBuildConfigs.get(1).getDisplayString(), defConfig.getDisplayString());
 		
 		// make another configuration the default one...
-		ICarbideBuildConfiguration newDefaultConfig = cpm.getNamedConfiguration(BUILD_CONFIG_NAME3);
+		ICarbideBuildConfiguration newDefaultConfig = cpm.getNamedConfiguration(stockBuildConfigs.get(2).getDisplayString());
 		assertNotNull(newDefaultConfig);
 		cpm.setDefaultConfiguration(newDefaultConfig);
 		cpm.saveChanges();
@@ -206,7 +209,7 @@
 
 		// Check to see that we got the new default config
 		defConfig = cpi.getDefaultConfiguration();
-		assertEquals(BUILD_CONFIG_NAME3, defConfig.getDisplayString());
+		assertEquals(stockBuildConfigs.get(2).getDisplayString(), defConfig.getDisplayString());
 	}
 	
 	public void testWritePKGData(){
@@ -253,7 +256,6 @@
 	}
 	
 	public void testSBSv1BuildArgsReadWrite(){
-		
 		final String build_ARG = "-testbuild";
 		final String clean_ARG = "-testclean";
 		final String export_ARG = "-testexport";
@@ -273,7 +275,7 @@
 		
 		// Just sanity check to make sure deprecated methods still exist.
 		IBuildArgumentsInfo testDeprecation = defaultConfig.getBuildArgumentsInfo();
-		String test = testDeprecation.getAbldBuildArgs();
+		/*String test =*/ testDeprecation.getAbldBuildArgs();
 		
 		
 		// read the arguments
@@ -311,15 +313,15 @@
 		BuildArgumentsInfo argInfoFromDisk = defaultConfig.getBuildArgumentsInfoCopy();
 		
 		// read the args now that were pulled from disk, make sure it's OK
-		assertTrue("Failed to re-read build args", argInfoCopyVerify.abldBuildArgs.contains(build_ARG));
-		assertTrue("Failed to re-read clean args", argInfoCopyVerify.abldCleanArgs.contains(clean_ARG));
-		assertTrue("Failed to re-read export args", argInfoCopyVerify.abldExportArgs.contains(export_ARG));
-		assertTrue("Failed to re-read final args", argInfoCopyVerify.abldFinalArgs.contains(final_ARG));
-		assertTrue("Failed to re-read freeze args", argInfoCopyVerify.abldFreezeArgs.contains(freeze_ARG));
-		assertTrue("Failed to re-read library args", argInfoCopyVerify.abldLibraryArgs.contains(library_ARG));
-		assertTrue("Failed to re-read makefile args", argInfoCopyVerify.abldMakefileArgs.contains(makefile_ARG));
-		assertTrue("Failed to re-read resource args", argInfoCopyVerify.abldResourceArgs.contains(resource_ARG));
-		assertTrue("Failed to re-read target args", argInfoCopyVerify.abldTargetArgs.contains(target_ARG));
+		assertTrue("Failed to re-read build args", argInfoFromDisk.abldBuildArgs.contains(build_ARG));
+		assertTrue("Failed to re-read clean args", argInfoFromDisk.abldCleanArgs.contains(clean_ARG));
+		assertTrue("Failed to re-read export args", argInfoFromDisk.abldExportArgs.contains(export_ARG));
+		assertTrue("Failed to re-read final args", argInfoFromDisk.abldFinalArgs.contains(final_ARG));
+		assertTrue("Failed to re-read freeze args", argInfoFromDisk.abldFreezeArgs.contains(freeze_ARG));
+		assertTrue("Failed to re-read library args", argInfoFromDisk.abldLibraryArgs.contains(library_ARG));
+		assertTrue("Failed to re-read makefile args", argInfoFromDisk.abldMakefileArgs.contains(makefile_ARG));
+		assertTrue("Failed to re-read resource args", argInfoFromDisk.abldResourceArgs.contains(resource_ARG));
+		assertTrue("Failed to re-read target args", argInfoFromDisk.abldTargetArgs.contains(target_ARG));
 		
 		// Now restore the settings, write to disk and verify
 		defaultConfig.setBuildArgumentsInfo(argInfoCopyOrig);
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestDefaultTranslationUnitProvider.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestDefaultTranslationUnitProvider.java	Sun Dec 06 20:47:07 2009 -0600
@@ -21,6 +21,7 @@
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
 
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Path;
 
 import java.io.File;
 
@@ -56,7 +57,7 @@
 			assertSame(tu, tu2);
 			
 			// detect change
-			Thread.sleep(500);
+			Thread.sleep(FileUtils.getMinimumFileTimestampResolution(new Path(file1.getAbsolutePath())));
 			FileUtils.writeFileContents(file1, "text2".toCharArray(), null);
 			tu2 = tuProvider.getTranslationUnit(file1, cachingModelDocumentProvider);
 			assertNotNull(tu2);
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestEpocEngineHelper.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestEpocEngineHelper.java	Sun Dec 06 20:47:07 2009 -0600
@@ -48,11 +48,9 @@
 import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext;
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
 
-import junit.framework.TestCase;
+public class TestEpocEngineHelper extends BaseTest {
 
-public class TestEpocEngineHelper extends TestCase {
-
-	private static final String BASE_DIR = "Data/TestProject/";
+	private static final String BASE_DIR = "data/TestProject/";
 	private static final String CARBIDE_PROJECT_NAME = "CarbideProject";
 	private static final String NON_CARBIDE_PROJECT_NAME = "NonCarbideProject";
 	private static final String PROJECT_RELATIVE_BLDINF_PATH = "group/bld.inf";
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestEpocEnginePathHelper.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestEpocEnginePathHelper.java	Sun Dec 06 20:47:07 2009 -0600
@@ -17,19 +17,21 @@
 */
 package com.nokia.carbide.cdt.builder.test;
 
-import com.nokia.carbide.cdt.builder.EpocEnginePathHelper;
-import com.nokia.cpp.internal.api.utils.core.FileUtils;
+import java.io.File;
+import java.io.FileFilter;
 
-import org.eclipse.core.resources.*;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 
-import java.io.File;
-import java.io.FileFilter;
+import com.nokia.carbide.cdt.builder.EpocEnginePathHelper;
+import com.nokia.cpp.internal.api.utils.core.FileUtils;
 
-import junit.framework.TestCase;
-
-public class TestEpocEnginePathHelper extends TestCase {
+public class TestEpocEnginePathHelper extends BaseTest {
 	final static String PROJECT1_NAME = "TestEngine";
 	final static String PROJECT2_NAME = "TestEngineImported";
 	private IProject project1;
@@ -110,10 +112,10 @@
 		assertFalse(path.isAbsolute());
 		assertEquals(new Path(projectName).append("foo.cpp"), path);
 
-		path = helper.convertToWorkspace(new Path("\\sys\\bin"));
+		path = helper.convertToWorkspace(new Path("/sys/bin"));
 		assertNull(path);
 
-		path = helper.convertToWorkspace(new Path("c:\\data\\aif.rss"));
+		path = helper.convertToWorkspace(getStockFullPath().append("data/aif.rss"));
 		assertNull(path);
 
 	}
@@ -152,13 +154,13 @@
 		assertFalse(path.isAbsolute());
 		assertEquals(new Path("foo.cpp"), path);
 		
-		path = helper.convertToProject(new Path("\\sys\\bin"));
+		path = helper.convertToProject(new Path("/sys/bin"));
 		assertNull(path);
 
-		path = helper.convertToProject(new Path("c:\\data\\aif.rss"));
+		path = helper.convertToProject(getStockFullPath().append("data/aif.rss"));
 		assertNull(path);
 
-		path = helper.convertToProject(new Path("\\epoc32\\include\\oem"));
+		path = helper.convertToProject(new Path("/epoc32/include/oem"));
 		assertNull(path);
 	}
 
@@ -188,15 +190,15 @@
 		assertEquals(projectRoot.append("foo.cpp"), path);
 		
 		// not a real EPOCROOT filesystem path, so it gets the drive letter
-		path = helper.convertToFilesystem(new Path("\\sys\\bin"));
+		path = helper.convertToFilesystem(new Path("/sys/bin"));
 		assertNotNull(path);
 		assertTrue(path.isAbsolute());
-		assertEquals(new Path("\\sys\\bin").setDevice(projectRoot.getDevice()), path);
+		assertEquals(new Path("/sys/bin").setDevice(projectRoot.getDevice()), path);
 	
-		path = helper.convertToFilesystem(new Path("c:\\data\\aif.rss"));
+		path = helper.convertToFilesystem(getStockFullPath().append("data/aif.rss"));
 		assertNotNull(path);
 		assertTrue(path.isAbsolute());
-		assertEquals(new Path("c:\\data\\aif.rss"), path);
+		assertEquals(getStockFullPath().append("data/aif.rss"), path);
 	}
 
 	private void __testToFilesystemPaths(IProject project, IPath projectRoot) {
@@ -286,10 +288,10 @@
 		assertEquals(new Path(project.getName()).append("Base.Mmp"), path);
 		assertNotNull(root.findMember(path));
 
-		path = helper.convertToWorkspace(new Path("\\sys\\bin"));
+		path = helper.convertToWorkspace(new Path("/sys/bin"));
 		assertNull(path);
 
-		path = helper.convertToWorkspace(new Path("c:\\data\\aif.rss"));
+		path = helper.convertToWorkspace(getStockFullPath().append("data/aif.rss"));
 		assertNull(path);
 		
 		/////
@@ -308,7 +310,7 @@
 		
 		////////
 		
-		path = helper.convertFilesystemToWorkspace(new Path("c:/not/in/workspace"));
+		path = helper.convertFilesystemToWorkspace(getStockFullPath().append("not/in/workspace"));
 		assertNull(path);
 		
 		/*
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestImageMakefileViewPathHelper.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestImageMakefileViewPathHelper.java	Sun Dec 06 20:47:07 2009 -0600
@@ -17,6 +17,18 @@
 */
 package com.nokia.carbide.cdt.builder.test;
 
+import java.io.ByteArrayInputStream;
+import java.io.File;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+
 import com.nokia.carbide.cdt.builder.DefaultImageMakefileViewConfiguration;
 import com.nokia.carbide.cdt.builder.ImageMakefileViewPathHelper;
 import com.nokia.carbide.cpp.epoc.engine.EpocEnginePlugin;
@@ -27,15 +39,7 @@
 import com.nokia.carbide.cpp.epoc.engine.preprocessor.AllNodesViewFilter;
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
 
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-
-import junit.framework.TestCase;
-
-public class TestImageMakefileViewPathHelper extends TestCase {
+public class TestImageMakefileViewPathHelper extends BaseTest {
 	final static String PROJECT1_NAME = "TestMk";
 	final static String PROJECT2_NAME = "TestMkImported";
 	private static final IPath IMAGE1_MAKEFILE_PATH = new Path("gfx/Images1.mk");
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestMMPViewPathHelper.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestMMPViewPathHelper.java	Sun Dec 06 20:47:07 2009 -0600
@@ -17,21 +17,26 @@
 */
 package com.nokia.carbide.cdt.builder.test;
 
-import com.nokia.carbide.cdt.builder.*;
+import java.io.File;
+import java.io.FileFilter;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+
+import com.nokia.carbide.cdt.builder.EMMPPathContext;
+import com.nokia.carbide.cdt.builder.InvalidDriveInMMPPathException;
+import com.nokia.carbide.cdt.builder.MMPViewPathHelper;
 import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
 import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin;
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 
-import java.io.File;
-import java.io.FileFilter;
-
-import junit.framework.TestCase;
-
-public class TestMMPViewPathHelper extends TestCase {
+public class TestMMPViewPathHelper extends BaseTest {
 	final static String PROJECT1_NAME = "TestMmp";
 	final static String PROJECT2_NAME = "TestMmpImported";
 	private IPath epocRoot;
@@ -49,7 +54,7 @@
 		super.setUp();
 		tmpDir = FileUtils.getTemporaryDirectory();
 		ISymbianSDK sdk = SDKCorePlugin.getSDKManager().getSDKList().get(0);
-		//epocRoot = new Path("c:\\symbian\\9.1\\S60_3rd\\");
+		//epocRoot = new Path("c:/symbian/9.1/S60_3rd/");
 		epocRoot = new Path(sdk.getEPOCROOT());
 		project1 = ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECT1_NAME);
 		if (project1.exists())
@@ -117,15 +122,15 @@
 		assertEquals(new Path(projectName).append("foo.cpp"), path);
 
 		path = helper.convertMMPToWorkspace(EMMPPathContext.USERINCLUDE, 
-				new Path("\\sys\\bin"));
+				new Path("/sys/bin"));
 		assertNull(path);
 
 		path = helper.convertMMPToWorkspace(EMMPPathContext.AIF_SOURCE, 
-				new Path("c:\\data\\aif.rss"));
+				getStockFullPath().append("data/aif.rss"));
 		assertNull(path);
 		
 		path = helper.convertMMPToWorkspace(EMMPPathContext.SYSTEMINCLUDE, 
-				new Path("+\\include\\oem"));
+				new Path("+/include/oem"));
 		assertNull(path);
 
 	}
@@ -171,19 +176,19 @@
 		assertEquals(new Path("foo.cpp"), path);
 		
 		path = helper.convertMMPToProject(EMMPPathContext.USERINCLUDE, 
-				new Path("\\sys\\bin"));
+				new Path("/sys/bin"));
 		assertNull(path);
 
 		path = helper.convertMMPToWorkspace(EMMPPathContext.AIF_SOURCE, 
-				new Path("c:\\data\\aif.rss"));
+				getStockFullPath().append("data/aif.rss"));
 		assertNull(path);
 
 		path = helper.convertMMPToWorkspace(EMMPPathContext.USERINCLUDE, 
-				new Path("\\epoc32\\include\\oem"));
+				new Path("/epoc32/include/oem"));
 		assertNull(path);
 
 		path = helper.convertMMPToWorkspace(EMMPPathContext.SYSTEMINCLUDE, 
-				new Path("+\\include\\oem"));
+				new Path("+/include/oem"));
 		assertNull(path);
 		
 	}
@@ -218,16 +223,16 @@
 		
 		// this is not a valid path so it will get a drive letter from the project 
 		path = helper.convertMMPToFilesystem(EMMPPathContext.USERINCLUDE, 
-				new Path("\\sys\\bin"));
+				new Path("/sys/bin"));
 		assertNotNull(path);
 		assertTrue(path.isAbsolute());
-		assertEquals(new Path("\\sys\\bin").setDevice(projectRoot.getDevice()), path);
+		assertEquals(new Path("/sys/bin").setDevice(projectRoot.getDevice()), path);
 	
 		path = helper.convertMMPToFilesystem(EMMPPathContext.AIF_SOURCE, 
-				new Path("c:\\data\\aif.rss"));
+				getStockFullPath().append("data/aif.rss"));
 		assertNotNull(path);
 		assertTrue(path.isAbsolute());
-		assertEquals(new Path("c:\\data\\aif.rss"), path);
+		assertEquals(getStockFullPath().append("data/aif.rss"), path);
 	}
 
 	private void __testToFilesystemPaths(IProject project, IPath projectRoot) {
@@ -239,19 +244,19 @@
 		baseFilesystemPathTests(projectRoot, helper);
 		
 		path = helper.convertMMPToFilesystem(EMMPPathContext.USERINCLUDE, 
-				new Path("\\epoc32\\include\\oem"));
+				new Path("/epoc32/include/oem"));
 		assertNotNull(path);
 		assertTrue(path.isAbsolute());
 		// the caps may change for the real FS
-		//assertEquals(epocRoot.append("\\epoc32\\include\\oem"), path);
-		assertEquals(epocRoot.append("\\epoc32\\include\\oem").toOSString().toLowerCase(), path.toOSString().toLowerCase());
+		//assertEquals(epocRoot.append("/epoc32/include/oem"), path);
+		assertEquals(epocRoot.append("/epoc32/include/oem").toOSString().toLowerCase(), path.toOSString().toLowerCase());
 		
 		path = helper.convertMMPToFilesystem(EMMPPathContext.SYSTEMINCLUDE, 
-				new Path("+\\include\\oem"));
+				new Path("+/include/oem"));
 		assertNotNull(path);
 		assertTrue(path.isAbsolute());
-		//assertEquals(epocRoot.append("\\epoc32\\include\\oem"), path);
-		assertEquals(epocRoot.append("\\epoc32\\include\\oem").toOSString().toLowerCase(), path.toOSString().toLowerCase());
+		//assertEquals(epocRoot.append("/epoc32/include/oem"), path);
+		assertEquals(epocRoot.append("/epoc32/include/oem").toOSString().toLowerCase(), path.toOSString().toLowerCase());
 		
 	}
 	public void testToFilesystemPaths() {
@@ -270,11 +275,11 @@
 
 		// no EPOCROOT, so no answers
 		path = helper.convertMMPToFilesystem(EMMPPathContext.USERINCLUDE, 
-				new Path("\\epoc32\\include\\oem"));
+				new Path("/epoc32/include/oem"));
 		assertNull(path);
 
 		path = helper.convertMMPToFilesystem(EMMPPathContext.SYSTEMINCLUDE, 
-				new Path("+\\include\\oem"));
+				new Path("+/include/oem"));
 		assertNull(path);
 	}
 	
@@ -314,7 +319,7 @@
 		try {
 			path = helper.convertProjectOrFullPathToMMP(EMMPPathContext.SOURCEPATH, 
 					epocRoot.append("epoc32").append("include").append("oem"));
-			assertEquals(new Path("\\epoc32\\include\\oem"), path);
+			assertEquals(new Path("/epoc32/include/oem"), path);
 		} catch (InvalidDriveInMMPPathException e) {
 			fail();
 		}
@@ -327,13 +332,15 @@
 			fail();
 		}
 
-		try {
-			path = helper.convertProjectOrFullPathToMMP(EMMPPathContext.AIF_SOURCE, 
-					new Path("f:/schnozz/foo.rss"));
-			fail();
-		} catch (InvalidDriveInMMPPathException e) {
-			assertEquals(new Path("f:/schnozz/foo.rss"), e.getPath());
-			assertEquals(new Path("/schnozz/foo.rss"), e.getPathNoDevice());
+		if (HostOS.IS_WIN32) {
+			try {
+				path = helper.convertProjectOrFullPathToMMP(EMMPPathContext.AIF_SOURCE, 
+						new Path("f:/schnozz/foo.rss"));
+				fail();
+			} catch (InvalidDriveInMMPPathException e) {
+				assertEquals(new Path("f:/schnozz/foo.rss"), e.getPath());
+				assertEquals(new Path("/schnozz/foo.rss"), e.getPathNoDevice());
+			}
 		}
 		
 	}
@@ -351,11 +358,11 @@
 		twoWayTest(helper, EMMPPathContext.SOURCE, new Path("src/file/../../foo.cpp"));
 		twoWayTest(helper, EMMPPathContext.START_BITMAP_SOURCE, new Path("src/file/../../foo.cpp"));
 		
-		twoWayTest(helper, EMMPPathContext.USERINCLUDE, new Path("\\sys\\bin"));
+		twoWayTest(helper, EMMPPathContext.USERINCLUDE, new Path("/sys/bin"));
 		// this case won't pass since drive letters are dropped.
-		//twoWayTest(helper, EMMPPathContext.AIF_SOURCE, new Path("c:\\data\\aif.rss"));
-		twoWayTest(helper, EMMPPathContext.AIF_SOURCE, new Path("\\data\\aif.rss"));
-		twoWayTest(helper, EMMPPathContext.SYSTEMINCLUDE, new Path("epoc32\\include\\oem"));
+		//twoWayTest(helper, EMMPPathContext.AIF_SOURCE, new Path("c:/data/aif.rss"));
+		twoWayTest(helper, EMMPPathContext.AIF_SOURCE, new Path("/data/aif.rss"));
+		twoWayTest(helper, EMMPPathContext.SYSTEMINCLUDE, new Path("epoc32/include/oem"));
 	}
 
 	private void twoWayTest(MMPViewPathHelper helper, EMMPPathContext context, IPath path) {
@@ -462,19 +469,19 @@
 		assertNotNull(root.findMember(path));
 
 		path = helper.convertMMPToWorkspace(EMMPPathContext.USERINCLUDE, 
-				new Path("\\sys\\bin"));
+				new Path("/sys/bin"));
 		assertNull(path);
 
 		path = helper.convertMMPToWorkspace(EMMPPathContext.AIF_SOURCE, 
-				new Path("c:\\data\\aif.rss"));
+				getStockFullPath().append("data/aif.rss"));
 		assertNull(path);
 		
 		path = helper.convertMMPToWorkspace(EMMPPathContext.SYSTEMINCLUDE, 
-				new Path("+\\include\\oem"));
+				new Path("+/include/oem"));
 		assertNull(path);
 		
 		/////
-		//test full paths
+		//test full paths.  
 		path = helper.convertMMPToWorkspace(EMMPPathContext.START_BITMAP_SOURCE, 
 				projectRoot.append("base.mmp"));
 		assertNotNull(path);
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestPKGViewPathHelper.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestPKGViewPathHelper.java	Sun Dec 06 20:47:07 2009 -0600
@@ -17,25 +17,36 @@
 */
 package com.nokia.carbide.cdt.builder.test;
 
-import com.nokia.carbide.cdt.builder.*;
-import com.nokia.carbide.cdt.builder.project.*;
-import com.nokia.carbide.cdt.internal.api.builder.SISBuilderInfo2;
-import com.nokia.carbide.cpp.epoc.engine.preprocessor.AcceptedNodesViewFilter;
-import com.nokia.carbide.cpp.project.core.ProjectCorePlugin;
-import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.*;
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 import org.eclipse.cdt.core.CCorePlugin;
 import org.eclipse.cdt.core.dom.IPDOMManager;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
 
-import java.io.ByteArrayInputStream;
-import java.util.*;
+import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin;
+import com.nokia.carbide.cdt.builder.DefaultViewConfiguration;
+import com.nokia.carbide.cdt.builder.PKGViewPathHelper;
+import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration;
+import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo;
+import com.nokia.carbide.cdt.builder.project.ISISBuilderInfo;
+import com.nokia.carbide.cdt.internal.api.builder.SISBuilderInfo2;
+import com.nokia.carbide.cpp.epoc.engine.preprocessor.AcceptedNodesViewFilter;
+import com.nokia.carbide.cpp.project.core.ProjectCorePlugin;
+import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.EPKGLanguage;
+import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGInstallFile;
+import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGModel;
+import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGView;
+import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.PKGModelHelper;
 
-import junit.framework.TestCase;
-
-public class TestPKGViewPathHelper extends TestCase {
+public class TestPKGViewPathHelper extends BaseTest {
 	
 	private static final String PROJECT_NAME = "TestPKG";
 	private static final IPath PKG_PATH = new Path("sis/test.pkg");
@@ -125,7 +136,7 @@
 
 		IPath path1 = new Path(config.getSDK().getEPOCROOT()).append("epoc32/release").append(config.getPlatformString()).append(config.getTargetString()).append("test.exe");
 		IPath path2 = project.getLocation().append("sis/test.txt");
-		IPath path3 = new Path("\\Symbian\\9.1\\S60_3rd\\file.txt");
+		IPath path3 = new Path("/Symbian/9.1/S60_3rd/file.txt");
 		
 		List<IPath> paths = new ArrayList<IPath>();
 		
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestPlugin.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestPlugin.java	Sun Dec 06 20:47:07 2009 -0600
@@ -74,17 +74,18 @@
 	}
 	
 	/**
-	 * Get build configurations for the first non-empty SDK we find
-	 * @return
+	 * Get some build configurations for the first non-empty SDK we find.
+	 * @return a list of contexts, maximum 8
 	 */
 	public static List<ISymbianBuildContext> getUsableBuildConfigs() {
 		for (ISymbianSDK sdk : SDKCorePlugin.getSDKManager().getSDKList()) {
 			List<ISymbianBuildContext> contexts = sdk.getUnfilteredBuildConfigurations();
-			if (contexts.size() > 0)
-				return contexts;
+			if (contexts.size() > 0) {
+				return contexts.subList(0, Math.min(contexts.size(), 8));
+			}
 		}
 		TestCase.fail("No installed SDKs provide build configurations");
-		return Collections.EMPTY_LIST;
+		return Collections.emptyList();
 	}
 
 }
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestProjectExportsGatherer.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestProjectExportsGatherer.java	Sun Dec 06 20:47:07 2009 -0600
@@ -29,7 +29,7 @@
 
 import junit.framework.TestCase;
 
-public class TestProjectExportsGatherer extends TestCase {
+public class TestProjectExportsGatherer extends BaseTest {
 	private IPath projectDataPath;
 	private IPath epocRoot;
     
@@ -81,7 +81,7 @@
 	@Override
 	protected void setUp() throws Exception {
 		super.setUp();
-		epocRoot = new Path("C:\\symbian\\9.4\\S60_5th");
+		epocRoot = getStockFullPath().append("symbian/9.4/S60_5th");
 				
 	}
 
@@ -111,8 +111,8 @@
 		ProjectExportsGatherer gatherer = createGatherer();
 		IPath src1 = projectDataPath.append("gfx/foo.svg");
 		IPath src2 = projectDataPath.append("doc/README.txt");
-		IPath epoc1 = new Path("c:\\private\\12345678\\foo.svg");
-		IPath epoc2 = new Path("c:\\sys\\readmes\\README.txt");
+		IPath epoc1 = new Path("c:/private/12345678/foo.svg");
+		IPath epoc2 = new Path("c:/sys/readmes/README.txt");
 		
 		Map<IPath, IPath> filesystemToEpocExportMap = gatherer.getFilesystemToEpocExportMap();
 		assertEquals(2, filesystemToEpocExportMap.size());
@@ -136,15 +136,15 @@
 		projectDataPath = getProjectData("pkgOnly");
 		ProjectExportsGatherer gatherer = createGatherer();
 		
-		IPath epoc1a = projectDataPath.append("sis\\text\\englishfile.txt");
-		IPath epoc1b = epocRoot.append("text\\frenchfile.txt");
-		IPath dev1 = new Path("$:\\private\\10000005\\import\\InstTest\\lang.txt");
+		IPath epoc1a = projectDataPath.append("sis/text/englishfile.txt");
+		IPath epoc1b = epocRoot.append("text/frenchfile.txt");
+		IPath dev1 = new Path("$:/private/10000005/import/InstTest/lang.txt");
 		
-		IPath epoc2 = epocRoot.append("epoc32\\text\\file1.txt");
-		IPath dev2 = new Path("!:\\private\\10000005\\import\\InstTest\\file1.txt");
+		IPath epoc2 = epocRoot.append("epoc32/text/file1.txt");
+		IPath dev2 = new Path("!:/private/10000005/import/InstTest/file1.txt");
 
-		IPath epoc3 = epocRoot.append("epoc32\\files\\option1.txt");
-		IPath dev3 = new Path("!:\\private\\10000005\\import\\InstTest\\option1.txt");
+		IPath epoc3 = epocRoot.append("epoc32/files/option1.txt");
+		IPath dev3 = new Path("!:/private/10000005/import/InstTest/option1.txt");
 
 		Map<IPath, IPath> filesystemToEpocExportMap = gatherer.getFilesystemToEpocExportMap();
 		assertEquals(0, filesystemToEpocExportMap.size());
@@ -174,21 +174,21 @@
 		projectDataPath = getProjectData("exportAndPkg");
 		ProjectExportsGatherer gatherer = createGatherer();
 		
-		IPath src1a = projectDataPath.append("sis\\text\\englishfile.txt");
-		//IPath epoc1a = projectDataPath.append("sis\\text\\englishfile.txt");
-		//IPath src1b = projectDataPath.append("sis\\text\\frenchfile.txt");
-		IPath epoc1b = epocRoot.append("epoc32\\text\\frenchfile.txt");
-		IPath dev1 = new Path("$:\\private\\10000005\\import\\InstTest\\lang.txt");
+		IPath src1a = projectDataPath.append("sis/text/englishfile.txt");
+		//IPath epoc1a = projectDataPath.append("sis/text/englishfile.txt");
+		//IPath src1b = projectDataPath.append("sis/text/frenchfile.txt");
+		IPath epoc1b = epocRoot.append("epoc32/text/frenchfile.txt");
+		IPath dev1 = new Path("$:/private/10000005/import/InstTest/lang.txt");
 		
-		IPath src2 = projectDataPath.append("gfx\\foo.svg");
-		IPath epocTarget2 = new Path("c:\\private\\12345678\\foo.svg");
-		IPath epocHost2 = epocRoot.append("epoc32\\data\\c\\private\\12345678\\foo.svg");
-		IPath dev2 = new Path("!:\\private\\10000005\\foo.svg");
+		IPath src2 = projectDataPath.append("gfx/foo.svg");
+		IPath epocTarget2 = new Path("c:/private/12345678/foo.svg");
+		IPath epocHost2 = epocRoot.append("epoc32/data/c/private/12345678/foo.svg");
+		IPath dev2 = new Path("!:/private/10000005/foo.svg");
 
-		IPath src3 = projectDataPath.append("doc\\README.txt");
-		IPath epocHost3 = epocRoot.append("epoc32\\release\\armv5\\udeb\\z\\sys\\readmes\\README.txt");
-		IPath epoc3 = new Path("z:\\sys\\readmes\\README.txt");
-		IPath dev3 = new Path("!:\\private\\10000005\\import\\InstTest\\README.txt");
+		IPath src3 = projectDataPath.append("doc/README.txt");
+		IPath epocHost3 = epocRoot.append("epoc32/release/armv5/udeb/z/sys/readmes/README.txt");
+		IPath epoc3 = new Path("z:/sys/readmes/README.txt");
+		IPath dev3 = new Path("!:/private/10000005/import/InstTest/README.txt");
 
 		IPath src4 = projectDataPath.append("inc/Test.h");
 		IPath epoc4 = new Path("/epoc32/include/Test.h");
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/CarbideErrorParserTestHarness.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/CarbideErrorParserTestHarness.java	Sun Dec 06 20:47:07 2009 -0600
@@ -23,7 +23,6 @@
 
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
-import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PrintStream;
@@ -53,6 +52,7 @@
 import com.nokia.carbide.cdt.builder.builder.CarbideCommandLauncher;
 import com.nokia.carbide.cdt.builder.test.TestPlugin;
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 
 public class CarbideErrorParserTestHarness extends CarbideCommandLauncher {
 	static final String EMPTY = "^EMPTY^";
@@ -85,23 +85,12 @@
 	}
 	
 	private String readFile(java.io.File consoleOutput) {
-		FileReader consoleReader;
-		StringBuffer sb = new StringBuffer();
 		try {
-			consoleReader = new FileReader(consoleOutput);
-			char[] buf = new char[1024];
-	        int len;
-	        while ((len = consoleReader.read(buf)) > 0) {
-	            sb.append(buf, 0, len);
-	        }
-	        consoleReader.close();
-
-		} catch (FileNotFoundException e) {
-			Assert.fail();
-		} catch (IOException e) {
-			Assert.fail();
+			return new String(FileUtils.readFileContents(consoleOutput, null));
+		} catch (CoreException e) {
+			Assert.fail(e.toString());
+			return null;
 		}
-        return sb.toString();
 	}
 	
 	public void writeFileContentsToStdout(java.io.File consoleOutput) {
@@ -110,18 +99,16 @@
 
 	// Drive the whole parsing mechanism, stdout is output normally came from console outout
 	public void writeStringToStdout(String consoleOutput) {
-		// pick out the stdout stream directly, where CDT error parser sniff
-		// for error messages from build console
 		try {
+			// pick out the stdout stream directly, where CDT error parser sniff
+			// for error messages from build console
 			stdoutStream.getProject().deleteMarkers(ICModelMarker.C_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE); // clear UI list before we start
 			stdoutStream.clearScratchBuffer();	// some error parser do multiple lines
 			consoleOutput += "\n";	// force the input file to flush all lines
 			stdoutStream.write(consoleOutput.getBytes());
 			stdoutStream.flush();
-		} catch (IOException e) {
-			Assert.fail();
-		} catch (CoreException e) {
-			Assert.fail();
+		} catch (Exception e) {
+			Assert.fail(e.toString());
 		}
 	}
 	
@@ -151,7 +138,7 @@
 		try {
 			return parseStringAndTestAgainstXML(readFile(consoleOutput), new FileInputStream(controlXml));
 		} catch (FileNotFoundException e) {
-			Assert.fail();
+			Assert.fail(e.toString());
 		}
 		return false;
 	}
@@ -163,6 +150,9 @@
 	 * @return
 	 */
 	public boolean parseStringAndTestAgainstXML (String consoleOutput, InputStream xmlInputStream) {
+        // make slashes match what the tool would really generate
+		if (HostOS.IS_UNIX)
+			consoleOutput = consoleOutput.replaceAll("\\\\(?!\r|\n)", "/");
 		writeStringToStdout(consoleOutput);
 		return testIdeMarkerAgainstXML (xmlInputStream);
 	}
@@ -222,12 +212,13 @@
 		}
 		if (result.description.equals(expected.description) == false) {
 			if (expected.description.equals(EMPTY) == false) {
-				Assert.fail("Unexpected message: EXPECTED value is: " + expected.description + ", ACTUAL: " + result.description);				
+				Assert.assertEquals("Unexpected message",
+						expected.description, result.description);				
 			}
 		} else {
 			if (result.description.equals(expected.description) == false) {
-				Assert.fail("Message from IDE marker is " + result.description +
-						", expected value is " + expected.description);
+				Assert.assertEquals("Message from IDE marker does not match",
+						expected.description, result.description);
 				return false;
 			}
 		}
@@ -253,9 +244,13 @@
 			}			
 		} else {
 			if (result.externalPath.equals(expected.externalPath) == false) {
-				Assert.fail("External path string from IDE marker is " + result.externalPath +
-								", expected value is " + expected.externalPath);
-				return false;
+				// note: for some reason, on Unix, relative paths become full paths
+				if (result.externalPath.makeRelative().equals(expected.externalPath.makeRelative())) {
+					// fine
+				} else {
+					Assert.assertEquals("External path string from IDE marker", expected.externalPath, result.externalPath);
+					return false;
+				}
 			}			
 		}
 		return true;
@@ -293,6 +288,10 @@
 
 		        Attribute messageNode = markerInfo.getAttribute(MESSAGE);
 		        description = messageNode.getValue();
+		        // make slashes match what the tool would really generate
+		        if (HostOS.IS_UNIX) {
+		        	description = description.replaceAll("\\\\(?!\r|\n)", "/");	
+		        }
 		        
 		        Attribute severityNode = markerInfo.getAttribute(SEVERITY);
 		        severity = Integer.parseInt(severityNode.getValue());
@@ -301,7 +300,7 @@
 		        variableName = variableNameNode.getValue();
 		        
 		        Attribute externalPathStringNode = markerInfo.getAttribute(EXTERNAL_PATH_STRING);
-		        externalPath = new org.eclipse.core.runtime.Path(externalPathStringNode.getValue());		        
+		        externalPath = HostOS.createPathFromString(externalPathStringNode.getValue());		        
 
 	        	ProblemMarkerInfo details = new ProblemMarkerInfo(file, lineNumber, description, severity, variableName, externalPath);
 	        	xmlFilePromblemMarkerInfoList.add(details);
@@ -361,7 +360,7 @@
 				if (marker.externalPath == null || marker.externalPath.equals("")) {
 					externalPathString = EMPTY;
 				} else {
-					externalPathString = marker.externalPath.toString();
+					externalPathString = marker.externalPath.toPortableString();
 				}
 				child.setAttribute(EXTERNAL_PATH_STRING, externalPathString);
 				
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/ErrorParserRegressionGenerator.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/ErrorParserRegressionGenerator.java	Sun Dec 06 20:47:07 2009 -0600
@@ -42,7 +42,7 @@
 		// TODO Auto-generated constructor stub
 	}
 
-	private static final String PROJECT_NAME = "TestErrorParser";
+	//private static final String PROJECT_NAME = "TestErrorParser";
 	// Platform matters, set this before you build
 	private static final String PLATFORM_STRING = ISymbianBuildContext.GCCE_PLATFORM;
 
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestGcceErrorParser.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestGcceErrorParser.java	Sun Dec 06 20:47:07 2009 -0600
@@ -20,10 +20,11 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import junit.framework.TestCase;
+
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.NullProgressMonitor;
 
-import com.nokia.carbide.automation.utils.UITestCase;
 import com.nokia.carbide.automation.utils.debugger.DebuggerTestCaseParameters;
 import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin;
 import com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder;
@@ -36,7 +37,7 @@
 import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin;
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
 
-public class TestGcceErrorParser extends UITestCase implements DebuggerTestCaseParameters {
+public class TestGcceErrorParser extends TestCase implements DebuggerTestCaseParameters {
 
 	public TestGcceErrorParser(String name) {
 		super(name);
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestMakeErrorParser.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestMakeErrorParser.java	Sun Dec 06 20:47:07 2009 -0600
@@ -20,10 +20,11 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import junit.framework.TestCase;
+
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.NullProgressMonitor;
 
-import com.nokia.carbide.automation.utils.UITestCase;
 import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin;
 import com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder;
 import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration;
@@ -35,7 +36,7 @@
 import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin;
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
 
-public class TestMakeErrorParser extends UITestCase {
+public class TestMakeErrorParser extends TestCase {
 
 	public TestMakeErrorParser(String name) {
 		super(name);
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEnginePathHelper.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEnginePathHelper.java	Sun Dec 06 20:47:07 2009 -0600
@@ -133,6 +133,7 @@
 	 * @return workspace-relative non-absolute path, or null if not resolvable to workspace
 	 */
 	public IPath convertFilesystemToWorkspace(IPath fullPath) {
+		fullPath = FileUtils.findMatchingPathCaseInsensitive(fullPath);
 		IPath wsPath = FileUtils.convertToWorkspacePath(fullPath, true);
 		if (wsPath != null && wsPath.isAbsolute())
 			wsPath = wsPath.makeRelative();
@@ -191,7 +192,8 @@
 	
 	/**
 	 * Convert the given path (from an IView API) into a 
-	 * canonical full path in the local filesystem.
+	 * canonical full path in the local filesystem.  This will resolve differences
+	 * in case sensitivity.
 	 * @param path relative or absolute path
 	 * @return absolute path, never null unless it came in null
 	 */
@@ -216,7 +218,11 @@
 				// in case the path is absolute without a drive letter
 				device = projectRoot.getDevice();
 			}
+			
+			// canonicalize (to remove .. , resolve links, etc)
 			fullPath = new Path(fullPath.toFile().getCanonicalPath()).setDevice(device);
+			fullPath = FileUtils.findMatchingPathCaseInsensitive(fullPath);
+			
 		} catch (IOException e) {
 		}
 
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java	Sun Dec 06 20:47:07 2009 -0600
@@ -83,6 +83,7 @@
 import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGView;
 import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.PKGModelHelper;
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
 
 /**
@@ -110,10 +111,10 @@
     private static final String DEFAULT_KEY_NAME = "key-gen.key"; //$NON-NLS-1$
     private static final String DEFAULT_CERT_NAME = "cert-gen.cer"; //$NON-NLS-1$
     private static final String DEAULT_PASSWORD = "DefaultPassword"; //$NON-NLS-1$
-    private static final String MAKEKEYS_EXE = "makekeys.exe"; //$NON-NLS-1$
-    private static final String MAKESIS_EXE = "makesis.exe"; //$NON-NLS-1$
+    private static final String MAKEKEYS_EXE = "makekeys" + HostOS.EXE_EXT; //$NON-NLS-1$
+    private static final String MAKESIS_EXE = "makesis" + HostOS.EXE_EXT; //$NON-NLS-1$
     
-    private static final String SIGNSIS_EXE = "signsis.exe"; //$NON-NLS-1$
+    private static final String SIGNSIS_EXE = "signsis" + HostOS.EXE_EXT; //$NON-NLS-1$
     
 	private static List<IPath> normalMakMakePaths = Collections.synchronizedList(new ArrayList<IPath>());
 	private static List<IPath> testMakMakePaths = Collections.synchronizedList(new ArrayList<IPath>());
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ProjectExportsGatherer.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ProjectExportsGatherer.java	Sun Dec 06 20:47:07 2009 -0600
@@ -252,7 +252,7 @@
 			
 			// we only support exports which might reasonably make it onto the device,
 			// which means ones either explictly or implicitly targeting a drive.
-			if (targetPath.isAbsolute() && targetPath.getDevice() != null) {
+			if (isWin32DrivePath(targetPath)) {
 				// accept
 			}
 			else if (targetPath.isAbsolute() && targetPath.getDevice() == null
@@ -325,32 +325,48 @@
 	}
 
 	/**
+	 * Tell if the path is a Win32 path with drive letter or UNC.
+	 * @param path
+	 */
+	protected boolean isWin32DrivePath(IPath path) {
+		return (path.getDevice() != null && path.getDevice().length() == 2) 
+			|| (!HostOS.IS_WIN32 && path.segmentCount() > 0 && path.segment(0).matches("[A-Za-z]:"));
+	}
+
+	/**
 	 * Convert a path like c:\private\foo.svg to $(EPOCROOT)data\c\private\foo.svg 
 	 * @param host
 	 * @return converted path or original
 	 */
 	private IPath epocHostToEPOCROOTData(IPath host) {
-		if (host.getDevice() == null || host.getDevice().length() > 2)
-			return host;
-		if (!host.isAbsolute())
+		if (!isWin32DrivePath(host))
 			return host;
 		IPath nativ = epocRoot.append("epoc32").append("data") //$NON-NLS-1$ //$NON-NLS-2$
-			.append(host.getDevice().substring(0, 1)).append(host.setDevice(null));
+			.append(convertDriveToPathSegment(host));
 		return nativ;
 	}
 	
 	/**
+	 * @param host
+	 * @return
+	 */
+	private IPath convertDriveToPathSegment(IPath host) {
+		if (host.getDevice() != null)
+			return new Path(host.getDevice().substring(0, 1)).append(host.setDevice(null));
+		else
+			return new Path(host.segment(0).substring(0, 1)).append(host.removeFirstSegments(1)); 
+	}
+
+	/**
 	 * Convert a path like c:\private\foo.svg to $(EPOCROOT)release\<platform>\<target>\<drive>\<path>
 	 * @param host
 	 * @return converted path or original
 	 */
 	private IPath epocHostToEPOCPlatformData(IPath host) {
-		if (host.getDevice() == null || host.getDevice().length() > 2)
-			return host;
-		if (!host.isAbsolute())
+		if (!isWin32DrivePath(host))
 			return host;
 		IPath nativ = epocRoot.append("epoc32").append("release").append(platform).append(target) //$NON-NLS-1$ //$NON-NLS-2$
-			.append(host.getDevice().substring(0, 1)).append(host.setDevice(null));
+			.append(convertDriveToPathSegment(host));
 		return nativ;
 	}
 }
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/SISBuilderInfo2.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/SISBuilderInfo2.java	Sun Dec 06 20:47:07 2009 -0600
@@ -25,6 +25,7 @@
 import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo;
 import com.nokia.carbide.cdt.builder.project.ISISBuilderInfo;
 import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 import com.nokia.cpp.internal.api.utils.core.TrackedResource;
 
 public class SISBuilderInfo2 implements ISISBuilderInfo {
@@ -234,15 +235,18 @@
 		return searchLocation;
 	}
 	
+	protected IPath createFullPath(String path) {
+		IPath fullPath = new Path(path);
+		if (!fullPath.isAbsolute()) {
+			IPath projectPath = CarbideBuilderPlugin.getProjectRoot(projectTracker.getProject());
+			if (projectPath != null)
+				fullPath = projectPath.append(fullPath);
+		}
+		return fullPath;
+		
+	}
 	public IPath getPKGFullPath() {
-		IPath fullPath;
-		if (getPKGFileString().indexOf(":") > 0) { //$NON-NLS-1$
-			fullPath = new Path(getPKGFileString());
-		} else {		
-			fullPath = CarbideBuilderPlugin.getProjectRoot(projectTracker.getProject());
-			if (fullPath != null)
-				fullPath = fullPath.append(getPKGFileString());
-		}
+		IPath fullPath = createFullPath(getPKGFileString());
 		return fullPath;
 	}
 	
@@ -251,13 +255,7 @@
 	}
 	
 	public IPath getCertificateFullPath() {
-		IPath fullPath;
-		if (getCertificate().indexOf(":") > 0) { //$NON-NLS-1$
-			fullPath = new Path(getCertificate());
-		} else {		
-			fullPath = CarbideBuilderPlugin.getProjectRoot(projectTracker.getProject());
-			fullPath = fullPath.append(getCertificate());
-		}
+		IPath fullPath = createFullPath(getCertificate());
 		return fullPath;
 	}
 
@@ -266,13 +264,7 @@
 	}
 	
 	public IPath getKeyFullPath() {
-		IPath fullPath;
-		if (getKey().indexOf(":") > 0) { //$NON-NLS-1$
-			fullPath = new Path(getKey());
-		} else {		
-			fullPath = CarbideBuilderPlugin.getProjectRoot(projectTracker.getProject());
-			fullPath = fullPath.append(getKey());
-		}
+		IPath fullPath = createFullPath(getKey());
 		return fullPath;
 	}
 
@@ -280,25 +272,32 @@
 		return outputFilename;
 	}
 	
-	public IPath getUnsignedSISFullPath() {
+	protected IPath getSISRelativeFullPath(String fileName, String extension) {
 		IPath fullPath;
-		if (getUnsignedSISFileName().length() == 0) {
+		if (fileName.length() == 0) {
 			// Use default PKG file name
 			fullPath = getPKGFullPath();
 			fullPath = fullPath.removeFileExtension();
-			fullPath = fullPath.addFileExtension("sis"); //$NON-NLS-1$
-		} else if (getUnsignedSISFileName().indexOf(":") > 0) { //$NON-NLS-1$
-			// SIS already a full path
-			fullPath = new Path(getUnsignedSISFileName());
+			fullPath = fullPath.addFileExtension(extension);
 		} else {
-			// probably a relative path, make relative to PKG file
-			fullPath = getPKGFullPath();
-			fullPath = fullPath.removeLastSegments(1);
-			fullPath = fullPath.append(getUnsignedSISFileName());
+			IPath fileNamePath = HostOS.createPathFromString(fileName);
+			if (fileNamePath.isAbsolute()) {
+				// SIS already a full path
+				fullPath = fileNamePath;
+			} else {
+				// probably a relative path, make relative to PKG file
+				fullPath = getPKGFullPath();
+				fullPath = fullPath.removeLastSegments(1);
+				fullPath = fullPath.append(fileNamePath);
+			}
 		}
 		return fullPath;
 	}
 
+	public IPath getUnsignedSISFullPath() {
+		return getSISRelativeFullPath(getUnsignedSISFileName(), "sis"); //$NON-NLS-1$
+	}
+
 	public String getPassword() {
 		return password;
 	}
@@ -308,22 +307,7 @@
 	}
 	
 	public IPath getSignedSISFullPath() {
-		IPath fullPath;
-		if (getSignedSISFileName().length() == 0) {
-			// Use default PKG file name
-			fullPath = getPKGFullPath();
-			fullPath = fullPath.removeFileExtension();
-			fullPath = fullPath.addFileExtension("sisx"); //$NON-NLS-1$
-		} else if (getSignedSISFileName().indexOf(":") > 0) { //$NON-NLS-1$
-			// SIS already a full path
-			fullPath = new Path(getSignedSISFileName());
-		} else {
-			// probably a relative path, make relative to PKG file
-			fullPath = getPKGFullPath();
-			fullPath = fullPath.removeLastSegments(1);
-			fullPath = fullPath.append(getSignedSISFileName());
-		}
-		return fullPath;
+		return getSISRelativeFullPath(getSignedSISFileName(), "sisx"); //$NON-NLS-1$
 	}
 
 	public void setCertificate(String certString) {
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ui/messages.properties	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ui/messages.properties	Sun Dec 06 20:47:07 2009 -0600
@@ -1,5 +1,5 @@
 ManageConfigurationsDialog.Add_Remove_Build_Configs=Add/Remove Carbide Build Configurations
-ManageConfigurationsDialog.Config_Label_ToolTip=Show the SDKs and build configurations that the current project can use
+ManageConfigurationsDialog.Config_Label_ToolTip=Show the SDKs and build configurations, filtered by the Platform Filtering preferences, that the current project can use
 ManageConfigurationsDialog.Available_SDks_and_Configs=\n Available SDKs and Configurations:\n\n
 ManageConfigurationsDialog.Unavailable_Config_Label_ToolTip=Show the SDKs and build configurations that are unavailable to the current project
 ManageConfigurationsDialog.Unavailable_SDks_and_Configs=\n Unavailable SDKs and Configurations:\n\n
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java	Sun Dec 06 20:47:07 2009 -0600
@@ -46,6 +46,7 @@
 import com.nokia.carbide.cpp.internal.qt.core.QtCorePlugin;
 import com.nokia.carbide.cpp.sdk.core.*;
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
 
 
@@ -65,8 +66,8 @@
     private static final String FINAL_CMD = "final"; //$NON-NLS-1$
     private static final String TEST_CMD = "test"; //$NON-NLS-1$
 
-    private static final IPath MAKE = new Path("make.exe"); //$NON-NLS-1$
-    private static final IPath PERL = new Path("perl.exe"); //$NON-NLS-1$
+    private static final IPath MAKE = new Path("make" + HostOS.EXE_EXT); //$NON-NLS-1$
+    private static final IPath PERL = new Path("perl" + HostOS.EXE_EXT); //$NON-NLS-1$
 
 	private static final String ABLD_BAT_NAME = "abld.bat"; //$NON-NLS-1$
 
@@ -2738,10 +2739,10 @@
 		
 		// now add preprocess commands to the resource file rules.  if ALT_PRE env variable is set then
 		// use scpp.exe, otherwise use cpp.exe.  pipe the output to a dependency file in the makefile directory.
-		String cpp = "cpp.exe";
+		String cpp = "cpp" + HostOS.EXE_EXT;
 		for (String var : getResolvedEnvVars(config)) {
 			if (var.compareTo("ALT_PRE") == 0 || var.startsWith("ALT_PRE=")) {
-				cpp = "rcpp.exe";
+				cpp = "rcpp" + HostOS.EXE_EXT;
 				break;
 			}
 		}
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ROMBuilderInfo.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ROMBuilderInfo.java	Sun Dec 06 20:47:07 2009 -0600
@@ -22,6 +22,7 @@
 
 import com.nokia.carbide.cdt.builder.project.IROMBuilderInfo;
 import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 
 
 public class ROMBuilderInfo implements IROMBuilderInfo {
@@ -37,11 +38,11 @@
 	public ROMBuilderInfo(ISymbianSDK sdk) {
 
 		this.romBuildCommandLine = ""; //$NON-NLS-1$
-		this.romBuildWorkingDirectory = "C:\\"; //$NON-NLS-1$
+		this.romBuildWorkingDirectory = HostOS.IS_WIN32 ? "C:\\" : "/tmp"; //$NON-NLS-1$ //$NON-NLS-2$
 		
 		// now set epoc32\rom folder in the sdk as the default working dir 
 		// this is most common folder that rom images are built from for most symbian kits..
-		String dir = sdk.getEPOCROOT() + "epoc32\\rom\\";  //$NON-NLS-1$
+		String dir = sdk.getEPOCROOT() + "epoc32/rom/";  //$NON-NLS-1$
 		if (new File(dir).exists())
 			romBuildWorkingDirectory = dir;
 	}
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/AbstractGCCEErrorParser.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/AbstractGCCEErrorParser.java	Sun Dec 06 20:47:07 2009 -0600
@@ -39,7 +39,7 @@
 		 *	int severity
 		 */
 			// arm-none-symbianelf-g++: \test\test.cpp: No such file or directory
-			new ErrorPattern("(.*):\\s*(.*:)\\s*(.*(?:[Nn]o such file:\\s*)?[Nn]o such file or directory)", 2, 0, 3, 0, IMarkerGenerator.SEVERITY_ERROR_RESOURCE),	//$NON-NLS-1$
+			new ErrorPattern("(.*):\\s*(.*):\\s*(.*(?:[Nn]o such file:\\s*)?[Nn]o such file or directory)", 2, 0, 3, 0, IMarkerGenerator.SEVERITY_ERROR_RESOURCE),	//$NON-NLS-1$
 			// arm-none-symbianelf-g++: no input files
 			new ErrorPattern("(.*):\\s*(.*[Nn]o input files)", 0, 0, 2, 0, IMarkerGenerator.SEVERITY_ERROR_RESOURCE),	//$NON-NLS-1$
 			//arm-none-symbianelf-g++: warning: `-x c++' after last input file has no effect
--- a/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/PreprocessHandler.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/PreprocessHandler.java	Sun Dec 06 20:47:07 2009 -0600
@@ -84,6 +84,7 @@
 import com.nokia.carbide.cpp.internal.builder.utils.ui.LanguageSelectionDialog;
 import com.nokia.carbide.cpp.internal.builder.utils.ui.PreprocessPreferencePage;
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
 
 public class PreprocessHandler extends AbstractHandler {
@@ -130,10 +131,10 @@
 			        		CarbideCommandLauncher launcher = new CarbideCommandLauncher(project, monitor, CarbideCPPBuilder.getParserIdArray(buildConfig.getErrorParserId()), cpi.getINFWorkingDirectory());
 							launcher.showCommand(true);
 
-							String cppTool = "cpp.exe"; //$NON-NLS-1$
+							String cppTool = "cpp" + HostOS.EXE_EXT; //$NON-NLS-1$
 							for (String var : CarbideCPPBuilder.getResolvedEnvVars(buildConfig)) {
 								if (var.compareTo("ALT_PRE") == 0 || var.startsWith("ALT_PRE=")) { //$NON-NLS-1$ //$NON-NLS-2$
-									cppTool = "rcpp.exe"; //$NON-NLS-1$
+									cppTool = "rcpp" + HostOS.EXE_EXT; //$NON-NLS-1$
 									break;
 								}
 							}
--- a/core/com.nokia.carbide.cpp.codescanner/src/com/nokia/carbide/cpp/internal/codescanner/config/CSConfigManager.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.codescanner/src/com/nokia/carbide/cpp/internal/codescanner/config/CSConfigManager.java	Sun Dec 06 20:47:07 2009 -0600
@@ -36,6 +36,7 @@
 
 import com.nokia.carbide.cpp.internal.codescanner.CSPlugin;
 import com.nokia.carbide.cpp.internal.codescanner.ui.CSPreferenceConstants;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 
 /**
  * A class for handling global and project specific Codescanner configuration settings.
@@ -46,7 +47,7 @@
 	public static final String CS_CONFIG_SETTINGS_FILE = "carbide_cs_config.xml";
 
 	// name of CodeScanner commandline tool
-	public static final String CS_CMDLINE_TOOL = "codescanner.exe";
+	public static final String CS_CMDLINE_TOOL = "codescanner" + HostOS.EXE_EXT;
 
 	// private members
 	private static CSConfigSettings defaultConfig;
--- a/core/com.nokia.carbide.cpp.leavescan/META-INF/MANIFEST.MF	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.leavescan/META-INF/MANIFEST.MF	Sun Dec 06 20:47:07 2009 -0600
@@ -11,5 +11,6 @@
  org.eclipse.core.resources,
  org.eclipse.cdt.core,
  com.nokia.carbide.cdt.builder,
- com.nokia.carbide.cpp.sdk.core
+ com.nokia.carbide.cpp.sdk.core,
+ com.nokia.cpp.utils.core
 Bundle-ActivationPolicy: lazy
--- a/core/com.nokia.carbide.cpp.leavescan/src/com/nokia/carbide/cpp/internal/leavescan/popup/actions/LeavescanAction.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.leavescan/src/com/nokia/carbide/cpp/internal/leavescan/popup/actions/LeavescanAction.java	Sun Dec 06 20:47:07 2009 -0600
@@ -43,6 +43,7 @@
 import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo;
 import com.nokia.carbide.cpp.internal.leavescan.LeavescanPlugin;
 import com.nokia.carbide.cpp.internal.leavescan.ui.LeavescanPreferenceConstants;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 
 public class LeavescanAction implements IObjectActionDelegate {
 	
@@ -164,9 +165,9 @@
 						leaveScanArgList.add("/c");
 						
 						if (leaveScanFolder.length() > 0){
-							leaveScanArgList.add(leaveScanFolder + "leavescan.exe");
+							leaveScanArgList.add(leaveScanFolder + "leavescan" + HostOS.EXE_EXT);
 						} else {
-							leaveScanArgList.add("leavescan.exe");
+							leaveScanArgList.add("leavescan" + HostOS.EXE_EXT);
 						}
 
 						if (noisyOutput) {
@@ -273,9 +274,9 @@
 					leaveScanArgList.add("/c");
 					
 					if (leaveScanFolder.length() > 0){
-						leaveScanArgList.add(leaveScanFolder + "leavescan.exe");
+						leaveScanArgList.add(leaveScanFolder + "leavescan" + HostOS.EXE_EXT);
 					} else {
-						leaveScanArgList.add("leavescan.exe");
+						leaveScanArgList.add("leavescan" + HostOS.EXE_EXT);
 					}
 
 					if (noisyOutput) {
--- a/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/DevicesLoaderTest.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/DevicesLoaderTest.java	Sun Dec 06 20:47:07 2009 -0600
@@ -22,6 +22,7 @@
 import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
 import com.nokia.carbide.cpp.sdk.core.SymbianSDKFactory;
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 
 import org.eclipse.emf.common.util.EList;
 import org.osgi.framework.Version;
@@ -35,11 +36,11 @@
 public class DevicesLoaderTest extends BaseDeviceModifierTest {
 	
 	private static final String UIQ3_SDKID = "UIQ3";
-	private static final String UIQ3_EPOCROOT = "C:\\Symbian\\UIQ3SDK\\";
 	private static final String S60_SDKID = "S60_CustKit";
 	private static final String TV_SDKID = "TV_CustKit";
-	private static final String M_DRIVE = "m:\\";
-	private static final String P_DRIVE = "p:\\";
+	private static final String UIQ3_EPOCROOT = HostOS.IS_WIN32 ? "C:\\Symbian\\UIQ3SDK\\" : "/opt/symbian/UIQ3SDK/";
+	private static final String M_DRIVE = HostOS.IS_WIN32 ? "m:\\" : "/media/M/";
+	private static final String P_DRIVE = HostOS.IS_WIN32 ? "p:\\" : "/media/P/";
 	
 	@Override
 	protected void setUp() throws Exception {
@@ -59,19 +60,19 @@
 		Version osVersion = new Version("9.1");
 		Version sdkVersion = new Version("3.0");
 		ISymbianSDK sdk = SymbianSDKFactory.createInstance(S60_SDKID, M_DRIVE, ISymbianSDK.SERIES60_SDK_NAME, osVersion, "", sdkVersion, true);
-		DevicesLoader.updateDevice(sdk, devicesFile.toURL());
+		DevicesLoader.updateDevice(sdk, devicesFile.toURI().toURL());
 		
 		sdk = SymbianSDKFactory.createInstance(TV_SDKID, P_DRIVE, ISymbianSDK.TECHVIEW_SDK_NAME, osVersion, "", sdkVersion, false);
-		DevicesLoader.updateDevice(sdk, devicesFile.toURL());
+		DevicesLoader.updateDevice(sdk, devicesFile.toURI().toURL());
 		
 		sdk = SymbianSDKFactory.createInstance(UIQ3_SDKID, UIQ3_EPOCROOT, ISymbianSDK.UIQ_SDK_NAME, osVersion, "", sdkVersion, false);
-		DevicesLoader.updateDevice(sdk, devicesFile.toURL());	
+		DevicesLoader.updateDevice(sdk, devicesFile.toURI().toURL());	
 	}
 	
 	
 	
 	public void testDevicesLoader() throws Exception {
-		DevicesType devicesType = DevicesLoader.loadDevices(devicesFile.toURL());
+		DevicesType devicesType = DevicesLoader.loadDevices(devicesFile.toURI().toURL());
 		EList devices = devicesType.getDevice();
 		assertEquals(3, devices.size());
 		for (Iterator iter = devices.iterator(); iter.hasNext();) {
@@ -96,19 +97,19 @@
 
 	
 	public void testDeleteDevice() throws Exception{
-		DevicesType devicesType = DevicesLoader.loadDevices(devicesFile.toURL());
+		DevicesType devicesType = DevicesLoader.loadDevices(devicesFile.toURI().toURL());
 		EList devices = devicesType.getDevice();
 		assertEquals(3, devices.size());
 		for (Iterator iter = devices.iterator(); iter.hasNext();) {
 			DeviceType device = (DeviceType) iter.next();
 			if (device.getId().equals(UIQ3_SDKID)){
-				DevicesLoader.deleteDeviceEntry(device, devicesFile.toURL());
+				DevicesLoader.deleteDeviceEntry(device, devicesFile.toURI().toURL());
 				break;
 			}
 		}
 		
 		// read the file back in...
-		devicesType = DevicesLoader.loadDevices(devicesFile.toURL());
+		devicesType = DevicesLoader.loadDevices(devicesFile.toURI().toURL());
 		devices = devicesType.getDevice();
 		assertEquals(2, devices.size());
 	}
--- a/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SBVCatalogTest.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SBVCatalogTest.java	Sun Dec 06 20:47:07 2009 -0600
@@ -148,17 +148,4 @@
 		
 		
 	}
-	
-	/**
-	 * @param built
-	 * @param string
-	 * @return
-	 */
-	private boolean findPlatform(ISBVPlatform[] platforms, String string) {
-		for (ISBVPlatform platform : platforms)
-			if (platform.getName().equalsIgnoreCase(string))
-				return true;
-		return false;
-	}
-
 }
--- a/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SDKCreationTest.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SDKCreationTest.java	Sun Dec 06 20:47:07 2009 -0600
@@ -43,7 +43,7 @@
 	    FileUtils.writeFileContents(devicesFile, devicesSkeleton.toCharArray(), null);
 		assertTrue(devicesFile.exists());
 		
-			DevicesType devicesType = DevicesLoader.loadDevices(devicesFile.toURL());
+			DevicesType devicesType = DevicesLoader.loadDevices(devicesFile.toURI().toURL());
 			EList devices = devicesType.getDevice();
 			for (Iterator iter = devices.iterator(); iter.hasNext();) {
 				SymbianSDK sdk = new SymbianSDK((DeviceType) iter.next());
--- a/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SymbianContextTest.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SymbianContextTest.java	Sun Dec 06 20:47:07 2009 -0600
@@ -39,7 +39,6 @@
 
 	@Override
 	protected void tearDown() throws Exception {
-		// TODO Auto-generated method stub
 		super.tearDown();
 	}
 
@@ -49,26 +48,28 @@
 		assertNotNull(sdkList);
 		assertTrue(sdkList.size() > 0);
 		
-		ISymbianSDK sdk = SDKCorePlugin.getSDKManager().getSDK("S60_5th_Edition_SDK_v1.0", true);
-		assertNotNull("SDK should exist for test", sdk);
-		SymbianBuildContext context = new SymbianBuildContext(sdk, "WINSCW", "UDEB");
-		ISymbianSDK contextSDK = context.getSDK();
-		
-		assertTrue(contextSDK.equals(sdk));
-		
-		// test that get get the macros
-		List<String> platMacros = contextSDK.getPlatformMacros("WINSCW");
-		assertTrue("WINSCW platform macros should be > 0", platMacros.size() > 0);
-		
-		// test that we get the SDK version
-		Version sdkVer = contextSDK.getSDKVersion();
-		assertEquals(5,sdkVer.getMajor());
-		assertEquals(0,sdkVer.getMinor());
-		
-		// test that we get the OS version
-		Version osVer = contextSDK.getOSVersion();
-		assertEquals(9,osVer.getMajor());
-		assertEquals(4,osVer.getMinor());
+		for (ISymbianSDK sdk : sdkList) {
+			if (sdk.getName().equals("S60_5th_Edition_SDK_v1.0")) {
+				// test that we get the SDK version
+				Version sdkVer = sdk.getSDKVersion();
+				assertEquals(5,sdkVer.getMajor());
+				assertEquals(0,sdkVer.getMinor());
+				
+				// test that we get the OS version
+				Version osVer = sdk.getOSVersion();
+				assertEquals(9,osVer.getMajor());
+				assertEquals(4,osVer.getMinor());
+			}
+			
+			SymbianBuildContext context = new SymbianBuildContext(sdk, "WINSCW", "UDEB");
+			ISymbianSDK contextSDK = context.getSDK();
+			
+			assertEquals(sdk, contextSDK);
+			
+			// test that get get the macros
+			List<String> platMacros = contextSDK.getPlatformMacros("WINSCW");
+			assertTrue("WINSCW platform macros should be > 0", platMacros.size() > 0);
+		}
 		
 	}
 	
--- a/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/TestDevicesXMLListener.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/TestDevicesXMLListener.java	Sun Dec 06 20:47:07 2009 -0600
@@ -27,6 +27,7 @@
 
 import com.nokia.carbide.cpp.internal.api.sdk.ICarbideDevicesXMLChangeListener;
 import com.nokia.carbide.cpp.internal.api.sdk.ISDKManagerInternal;
+import com.nokia.carbide.cpp.internal.api.sdk.SBSv2Utils;
 import com.nokia.carbide.cpp.sdk.core.*;
 
 /**
@@ -66,6 +67,9 @@
 	// Here we just rescan the sdks and the listener will perform the test
 	public void testCarbideConfigurationChangedListener() throws Exception{
 		 
+		if (!SBSv2Utils.enableSBSv1Support())
+			return;
+		
 		ISDKManager sdkMgr = SDKCorePlugin.getSDKManager();
 		
 		// get devics.xml and make a backup copy
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java	Sun Dec 06 20:47:07 2009 -0600
@@ -22,7 +22,10 @@
 import org.eclipse.cdt.utils.spawner.EnvironmentReader;
 import org.eclipse.core.filesystem.URIUtil;
 import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.osgi.framework.Version;
+import org.osgi.service.prefs.BackingStoreException;
 import org.w3c.dom.*;
 import org.xml.sax.InputSource;
 import org.xml.sax.helpers.DefaultHandler;
@@ -114,16 +117,21 @@
      */
     public static List<ISymbianSDK> getSupportedSDKs(List<ISymbianSDK> sdks) {
     	List<ISymbianSDK> supportedSDKs = new ArrayList<ISymbianSDK>();
-    	
-    	//TODO need a better way to do this from Symbian.
-    	// For now, just filter out anything older than 9.4
-    	for (ISymbianSDK sdk : sdks) {
-    		Version osVersion = sdk.getOSVersion();
-    		if (osVersion.getMajor() > 8 && osVersion.getMinor() > 3) {
-    			supportedSDKs.add(sdk);
-    		}
+
+    	// If there is no SBSv1 builder, then assume all SDKs are SBSv2 capable
+    	if (!enableSBSv1Support()) {
+    		supportedSDKs.addAll(sdks);
+    	} else {
+	    	//TODO need a better way to do this from Symbian.
+	    	// For now, just filter out anything older than 9.4
+	    	for (ISymbianSDK sdk : sdks) {
+	    		Version osVersion = sdk.getOSVersion();
+	    		if (osVersion.getMajor() > 8 ||
+	    				(osVersion.getMajor() == 8 && osVersion.getMinor() > 3)) {
+	    			supportedSDKs.add(sdk);
+	    		}
+	    	}
     	}
-    	
     	return supportedSDKs;
     }
     
@@ -132,9 +140,9 @@
 	 * be filtered out of any UI
 	 */
 	public static String[] getSBSv2ConfigurationsToFilter() {
-		Preferences prefs = SDKCorePlugin.getDefault().getPluginPreferences();
+		IEclipsePreferences prefs = new InstanceScope().getNode(SDKCorePlugin.PLUGIN_ID);
 		if (prefs != null) {
-			String configs = prefs.getString(SBSV2_FILTERED_CONFIGS_STORE);
+			String configs = prefs.get(SBSV2_FILTERED_CONFIGS_STORE, "");
 			return configs.split(SBSV2_FILTERED_CONFIGS_DELIMETER);
 		}
 		return new String[0];
@@ -146,7 +154,7 @@
 	 * @param configs configs to be filtered
 	 */
 	public static void setSBSv2ConfigurationsToFilter(String[] configs) {
-		Preferences prefs = SDKCorePlugin.getDefault().getPluginPreferences();
+		IEclipsePreferences prefs = new InstanceScope().getNode(SDKCorePlugin.PLUGIN_ID);
 		if (prefs != null) {
 			String store = ""; //$NON-NLS-1$
 			for (String config : configs) {
@@ -159,8 +167,13 @@
 			}
 			if (store.length() >= 0){
 				// lenght of zero means there are not configs to filter (or show them all)
-				prefs.setValue(SBSV2_FILTERED_CONFIGS_STORE, store);
-				SDKCorePlugin.getDefault().savePluginPreferences();
+				prefs.put(SBSV2_FILTERED_CONFIGS_STORE, store);
+				try {
+					prefs.flush();
+				} catch (BackingStoreException e) {
+					Logging.log(SDKCorePlugin.getDefault(),
+							Logging.newStatus(SDKCorePlugin.getDefault(), e));
+				}
 			}
 		}
 	}
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianMacroStore.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianMacroStore.java	Sun Dec 06 20:47:07 2009 -0600
@@ -13,7 +13,6 @@
 
 package com.nokia.carbide.cpp.internal.api.sdk;
 
-import java.io.File;
 import java.io.IOException;
 import java.net.URISyntaxException;
 import java.net.URL;
@@ -25,7 +24,6 @@
 import java.util.List;
 
 import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.common.util.EList;
 import org.osgi.framework.Bundle;
@@ -53,10 +51,10 @@
 
 public class SymbianMacroStore {
 	
-	private static final String PLUGIN_DATA_FOLDER = "data";
-	private static final String MACRO_STORE_FILE = "symbianMacroStore.xml";
-	private static final String BEECH_BRANCH_ID = "a";
-	private static final String CEDAR_BRANCH_ID = "b";
+	//private static final String PLUGIN_DATA_FOLDER = "data";
+	//private static final String MACRO_STORE_FILE = "symbianMacroStore.xml";
+	//private static final String BEECH_BRANCH_ID = "a";
+	//private static final String CEDAR_BRANCH_ID = "b";
 	private static final String MACRO_STORE_LOCATION ="/data/symbianMacroStore.xml";
 	private static SymbianMacroStore instance;
 	
@@ -157,6 +155,7 @@
 			}
 	} 
 	
+	/*
     private File getMacroStoreFile() throws IOException {
     	String location = "";
 		try {
@@ -170,6 +169,7 @@
 		}
 		return new File (location + File.separator + MACRO_STORE_FILE);
 	}
+	*/
 	
     private void initData(){
     	osMacros = new HashMap<String, List<String>>();
@@ -284,7 +284,7 @@
     		}
     		
     		if (macroList == null) {
-    			macroList = Collections.EMPTY_LIST;
+    			macroList = Collections.emptyList();
     		}
 		}
     	
@@ -325,7 +325,7 @@
     	}
     	
     	if (supportedOSVersionList == null){
-    		return Collections.EMPTY_LIST;
+    		return Collections.emptyList();
     	}
     	
     	Collections.sort(supportedOSVersionList, new Comparator<String>() {
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/BSFCatalog.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/BSFCatalog.java	Sun Dec 06 20:47:07 2009 -0600
@@ -49,6 +49,9 @@
 			return;
 		}
 		
+		// sort by alphabetical order
+		Arrays.sort(bsfFiles); 
+		
 		// gather the individual BSF platforms
 		for (File bsfFile : bsfFiles) {
 			IPath bsfPath = new Path(bsfFile.getAbsolutePath());
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBVCatalog.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBVCatalog.java	Sun Dec 06 20:47:07 2009 -0600
@@ -16,6 +16,7 @@
 import java.io.FilenameFilter;
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import org.eclipse.core.runtime.IPath;
@@ -50,6 +51,9 @@
 			return;
 		}
 		
+		// sort alphabetically
+		Arrays.sort(sbvFiles);
+		
 		// gather the individual SBV platforms
 		for (File sbvFile : sbvFiles) {
 			IPath sbvPath = new Path(sbvFile.getAbsolutePath());
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java	Sun Dec 06 20:47:07 2009 -0600
@@ -42,6 +42,7 @@
 import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
 import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin;
 import com.nokia.carbide.cpp.sdk.core.SDKEnvInfoFailureException;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
 
 public class SDKManager extends AbstractSDKManager {
@@ -240,9 +241,9 @@
 
 		String gcceToolDir = installPath + "\\bin";
 		
-		String[] gccBinToolList = { "arm-none-symbianelf-nm.exe",
-									"arm-none-symbianelf-readelf.exe",
-									"arm-none-symbianelf-c++filt.exe"
+		String[] gccBinToolList = { "arm-none-symbianelf-nm" + HostOS.EXE_EXT,
+									"arm-none-symbianelf-readelf" + HostOS.EXE_EXT,
+									"arm-none-symbianelf-c++filt" + HostOS.EXE_EXT
 									};
 		String toolName = null;
 		String toolPathName = null;
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java	Sun Dec 06 20:47:07 2009 -0600
@@ -14,6 +14,7 @@
 
 import com.nokia.carbide.cpp.epoc.engine.preprocessor.*;
 import com.nokia.carbide.cpp.internal.api.sdk.BuildPlat;
+import com.nokia.carbide.cpp.internal.api.sdk.SBSv2Utils;
 import com.nokia.carbide.cpp.internal.api.sdk.SymbianBuildContext;
 import com.nokia.carbide.cpp.internal.sdk.core.gen.Devices.DefaultType;
 import com.nokia.carbide.cpp.internal.sdk.core.gen.Devices.DeviceType;
@@ -236,7 +237,7 @@
 		List <String>buildPlats =  getAvailablePlatforms();
 		
 		if (buildPlats.size() == 0){
-			return Collections.EMPTY_LIST;
+			return Collections.emptyList();
 		}
 		
 		buildTargets.add(new SymbianBuildContext(this, ISymbianBuildContext.EMULATOR_PLATFORM, ISymbianBuildContext.DEBUG_TARGET));
@@ -313,15 +314,30 @@
 	}
  	
 	public List<ISymbianBuildContext> getFilteredBuildConfigurations() {
-		
-		 List<ISymbianBuildContext> buildContexts =  getUnfilteredBuildConfigurations();
+		// This is probably a bug, but the filtering only uses SBSv1 preferences if SBSv1 is enabled...
+		List<ISymbianBuildContext> filteredContexts;
+		if (SBSv2Utils.enableSBSv1Support()) {
+			filteredContexts = getSBSv1FilteredBuildConfigurations();
+		} else {
+			if (SBSv2Utils.enableSBSv2Support()) {
+				filteredContexts = SBSv2Utils.getFilteredSBSv2BuildContexts(this);
+			} else {
+				// be optimistic in this case... SBSv3? ;)
+				filteredContexts = getUnfilteredBuildConfigurations();
+			}
+		}
+		return filteredContexts;
+	}
+
+	protected List<ISymbianBuildContext> getSBSv1FilteredBuildConfigurations() {
+		List<ISymbianBuildContext> buildContexts =  getUnfilteredBuildConfigurations();
 		
 		if (buildContexts.size() == 0){
-			return Collections.EMPTY_LIST;
+			return Collections.emptyList();
 		}
 		
 		ISDKManager sdkMgr = SDKCorePlugin.getSDKManager();
-		 List<BuildPlat> platFilterList = sdkMgr.getPlatformList();
+		List<BuildPlat> platFilterList = sdkMgr.getPlatformList();
 		
 		Iterator<ISymbianBuildContext> li = buildContexts.iterator();
 
@@ -343,9 +359,8 @@
 				
 			}
 		}
-
+		
 		return buildContexts;
-		
 	}
 
 	public IPath getIncludePath() {
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java	Sun Dec 06 20:47:07 2009 -0600
@@ -26,7 +26,7 @@
 import com.nokia.carbide.template.engine.ITemplate;
 import com.nokia.carbide.templatewizard.process.AbstractProjectProcess;
 import com.nokia.carbide.templatewizard.process.IParameter;
-import com.nokia.cpp.internal.api.utils.core.Check;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 
 /**
  * Process used to fill in S60 specific include symbols for INF/MMP files 
@@ -49,7 +49,11 @@
 	private static final String BUILD_HELP_SIS_PREFIX = "buildHelpSISPrefix";
 	private static final String DISABLE_HELP_STRING = "//";
 	private static final String DISABLE_HELP_PKG = ";";
-	private static final String HELP_COMPILER = "epoc32/tools/cshlpcmp.bat";
+	
+	private static final String HELP_COMPILER_VARIABLE = "cshlpcmp";
+	private static final String HELP_COMPILER_WIN32 = "cshlpcmp.bat";
+	private static final String HELP_COMPILER_PERL = "cshlpcmp.pl";
+	
 	private static final String HELP_SUPPORT_MACRO = "helpSupport";
 	private static final String HELP_SUPPORT_STRING = "MACRO _HELP_AVAILABLE_";
 
@@ -63,17 +67,18 @@
 		includesValue = createCustKitIncludes(template);
 		template.getTemplateValues().put(S60_50_BUILD_MACROS, includesValue);
 
-		boolean hasHelp = isHelpCompilerAvailable(template);
+		String helpCompiler = findHelpCompiler(template);
 		String enableHelpString = "";
 		String enableHelpSISString = "";
 		String helpSupportString = "";
-		if (hasHelp) {
+		if (helpCompiler != null) {
 			helpSupportString = HELP_SUPPORT_STRING;
 		}
 		else {
 			enableHelpString = DISABLE_HELP_STRING;
 			enableHelpSISString = DISABLE_HELP_PKG;
 		}
+		template.getTemplateValues().put(HELP_COMPILER_VARIABLE, helpCompiler != null ? helpCompiler : "cshlpcmp"); //$NON-NLS-1$
 		template.getTemplateValues().put(BUILD_HELP_PREFIX, enableHelpString);
 		template.getTemplateValues().put(BUILD_HELP_SIS_PREFIX, enableHelpSISString);
 		template.getTemplateValues().put(HELP_SUPPORT_MACRO, helpSupportString);
@@ -84,26 +89,45 @@
 		return SDKCorePlugin.getDefault();
 	}
 	
-	private boolean isHelpCompilerAvailable(ITemplate template) {
+	@SuppressWarnings("unchecked")
+	private ISymbianBuildContext[] getBuildContexts(ITemplate template) {
 		Object object = template.getTemplateValues().get(SELECTED_BUILD_CONFIGS_VALUE_KEY);
 		if (object instanceof List) {
-			List listOfBuildConfigs = (List) object;
-			for (Object obj : listOfBuildConfigs) {
-				Check.checkContract(obj instanceof ISymbianBuildContext);
-				ISymbianBuildContext symbianBuildContext = (ISymbianBuildContext)obj;
-				ISymbianSDK sdk = symbianBuildContext.getSDK();
-				if (sdk != null) {
-					File contextHelpCompiler = new File(sdk.getEPOCROOT() + HELP_COMPILER);
+			List<ISymbianBuildContext> listOfBuildConfigs = (List<ISymbianBuildContext>) object;
+			return (ISymbianBuildContext[]) listOfBuildConfigs
+					.toArray(new ISymbianBuildContext[listOfBuildConfigs.size()]);
+		}
+		return new ISymbianBuildContext[0];
+	}
+	
+	/**
+	 * Check whether the help compiler is available, and what its name is.
+	 * @param template
+	 * @return
+	 */
+	private String findHelpCompiler(ITemplate template) {
+		String[] helpCompilerNames;
+		
+		if (HostOS.IS_WIN32) {
+			helpCompilerNames = new String[] { HELP_COMPILER_WIN32, HELP_COMPILER_PERL };
+		} else {
+			helpCompilerNames = new String[] { HELP_COMPILER_PERL };
+		}
+		for (ISymbianBuildContext symbianBuildContext : getBuildContexts(template)) {
+			ISymbianSDK sdk = symbianBuildContext.getSDK();
+			if (sdk != null) {
+				File tools = new File(sdk.getEPOCROOT(), "epoc32/tools");
+				for (String filename : helpCompilerNames) {
+					File contextHelpCompiler = new File(tools, filename);
 					if (contextHelpCompiler.exists()) {
-						return true;
+						return contextHelpCompiler.getName();
 					}
 				}
 			}
 		}
-		return false;
+		return null;
 	}
 
-	@SuppressWarnings("unchecked")
 	/**
 	 * Check the SDK version and certain includes to figure out which include macros to add.
 	 * Starting with S60 5.0 CustKits (2007 WK 24), many source bases are using macros for include paths.
@@ -111,45 +135,39 @@
 	 * values/logic here.
 	 */
 	private String createCustKitIncludes(ITemplate template){
-		Object object = template.getTemplateValues().get(SELECTED_BUILD_CONFIGS_VALUE_KEY);
 		String S60_50_Macros_String = "";
-		if (object instanceof List) {
-			List listOfBuildConfigs = (List) object;
-			for (Object obj : listOfBuildConfigs) {
-				Check.checkContract(obj instanceof ISymbianBuildContext);
-				ISymbianBuildContext symbianBuildContext = (ISymbianBuildContext)obj;
-				ISymbianSDK sdk = symbianBuildContext.getSDK();
-				if (sdk != null) {
-					File middleWareInclude = new File(sdk.getEPOCROOT() + S60_MIDDWARE_INC);
-					
-					// NOTE: Here we need to check the SDK major version becuase
-					// the 3.2 CustKit
-					// has the middleware folder but doesn't use the new build
-					// macros for include paths
-					if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists()) {
-						// add symbol as at least one build config is a CustKit
-						S60_50_Macros_String = S60_INC_MACROS;
-						break;
-					}
-					
-					middleWareInclude = new File(sdk.getEPOCROOT() + S60_MIDDWARE_INC2);
-					File sfoPath = new File(sdk.getEPOCROOT() + S60_SF_FOLDER);
-					// check for middleware paths and /sf path (if SFO kit)
-					if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists() && sfoPath.exists()) {
-						// add symbol as at least one build config is a CustKit
-						S60_50_Macros_String = S60_INC_MACROS_SF;
-						break;
-					}
-					
-					// try newer middleware paths moved to app layer includes
-					
-					if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists()) {
-						// add symbol as at least one build config is a CustKit
-						S60_50_Macros_String = S60_INC_MACROS2;
-						break;
-					}
+		for (ISymbianBuildContext symbianBuildContext : getBuildContexts(template)) {
+			ISymbianSDK sdk = symbianBuildContext.getSDK();
+			if (sdk != null) {
+				File middleWareInclude = new File(sdk.getEPOCROOT(), S60_MIDDWARE_INC);
+				
+				// NOTE: Here we need to check the SDK major version becuase
+				// the 3.2 CustKit
+				// has the middleware folder but doesn't use the new build
+				// macros for include paths
+				if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists()) {
+					// add symbol as at least one build config is a CustKit
+					S60_50_Macros_String = S60_INC_MACROS;
+					break;
+				}
+				
+				middleWareInclude = new File(sdk.getEPOCROOT(), S60_MIDDWARE_INC2);
+				File sfoPath = new File(sdk.getEPOCROOT(), S60_SF_FOLDER);
+				// check for middleware paths and /sf path (if SFO kit)
+				if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists() && sfoPath.exists()) {
+					// add symbol as at least one build config is a CustKit
+					S60_50_Macros_String = S60_INC_MACROS_SF;
+					break;
+				}
+				
+				// try newer middleware paths moved to app layer includes
+				
+				if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists()) {
+					// add symbol as at least one build config is a CustKit
+					S60_50_Macros_String = S60_INC_MACROS2;
+					break;
+				}
 
-				}
 			}
 		}
 		
--- a/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/BuildPlatformFilterPage.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/BuildPlatformFilterPage.java	Sun Dec 06 20:47:07 2009 -0600
@@ -53,14 +53,16 @@
 		GridData tabFolderGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
 		tabFolder.setLayoutData(tabFolderGridData);
 		
-		TabItem sbsv1TabItem = new TabItem(tabFolder, SWT.NONE);
-		sbsv1TabItem.setText(Messages.getString("BuildPlatformFilterPage.SBSv1TabText")); //$NON-NLS-1$
-		sbsv1TabItem.setToolTipText(Messages.getString("BuildPlatformFilterPage.SBSv1TabToolTip")); //$NON-NLS-1$
-
-		sbsv1Tab = new SBSv1PlatformFilterComposite(tabFolder);
-		sbsv1Tab.createControls();
-		sbsv1TabItem.setControl(sbsv1Tab);
-
+		if (SBSv2Utils.enableSBSv1Support()) {
+			TabItem sbsv1TabItem = new TabItem(tabFolder, SWT.NONE);
+			sbsv1TabItem.setText(Messages.getString("BuildPlatformFilterPage.SBSv1TabText")); //$NON-NLS-1$
+			sbsv1TabItem.setToolTipText(Messages.getString("BuildPlatformFilterPage.SBSv1TabToolTip")); //$NON-NLS-1$
+	
+			sbsv1Tab = new SBSv1PlatformFilterComposite(tabFolder);
+			sbsv1Tab.createControls();
+			sbsv1TabItem.setControl(sbsv1Tab);
+		}
+		
 		if (SBSv2Utils.enableSBSv2Support()) {
 			TabItem sbsv2TabItem = new TabItem(tabFolder, SWT.NONE);
 			sbsv2TabItem.setText(Messages.getString("BuildPlatformFilterPage.SBSv2TabText")); //$NON-NLS-1$
@@ -81,7 +83,9 @@
 	}
 	
 	public boolean performOk() {
-		sbsv1Tab.performOk();
+		if (sbsv1Tab != null) {
+			sbsv1Tab.performOk();
+		}
 		
 		if (sbsv2Tab != null) {
 			sbsv2Tab.performOk();
@@ -98,8 +102,12 @@
 
 	@Override
 	protected void performDefaults() {
-		sbsv1Tab.setDefaults();
-		sbsv2Tab.setDefaults();
+		if (sbsv1Tab != null) {
+			sbsv1Tab.setDefaults();
+		}
+		if (sbsv2Tab != null) {
+			sbsv2Tab.setDefaults();
+		}
 		super.performDefaults();
 	}
 	
--- a/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/messages.properties	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/messages.properties	Sun Dec 06 20:47:07 2009 -0600
@@ -118,8 +118,8 @@
 BuildTargetsPage.BuildConfigsLabel=SDKs and Build Configurations
 BuildTargetsPage.BuildConfigsToolTip=Select the build configurations to create for this project.  You can add and remove these once the project has been created.
 BuildTargetsPage.FilterText=Filter SDKs based on selected template
-BuildTargetsPage.NoMatchingSDKsError=There are no matching Symbian OS SDKs installed and enabled.
-BuildTargetsPage.NoSDKsError=There are no Symbian OS SDKs installed and enabled.
+BuildTargetsPage.NoMatchingSDKsError=There are no matching Symbian OS SDKs installed or enabled (check SDK Preferences and Platform Filtering preferences).
+BuildTargetsPage.NoSDKsError=There are no Symbian OS SDKs installed or enabled (check SDK Preferences and Platform Filtering preferences).
 BuildTargetsPage.NoBuildConfigsSelectedError=Please select at least one build configuration.
 BuildTargetsPage.DifferentDrivesError=There are known build problems when the bld.inf file and SDK are on different drives ({0})
 BuildTargetsPage.NoDriveSpecWarning=You have chosen an SDK EPOCROOT without a drive specification. Building will work but other features such as the indexer and MMP editor may not fully function.
--- a/core/com.nokia.cpp.utils.core/src/com/nokia/cpp/internal/api/utils/core/FileUtils.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.cpp.utils.core/src/com/nokia/cpp/internal/api/utils/core/FileUtils.java	Sun Dec 06 20:47:07 2009 -0600
@@ -297,7 +297,8 @@
      * the workspace via links (very slow)
      * @return new path (workspace-relative) or null if not resolvable to workspace
      */
-    static public IPath convertToWorkspacePath(IPath cpath, boolean makeCanonical, boolean resolveLinks) {
+    @SuppressWarnings("deprecation")
+	static public IPath convertToWorkspacePath(IPath cpath, boolean makeCanonical, boolean resolveLinks) {
         if (!Platform.isRunning() || cpath == null)
             return null;
         
@@ -883,4 +884,83 @@
 	private static IStatus createErrorStatus(Exception e) {
 		return new Status(IStatus.ERROR, UtilsCorePlugin.ID, null, e);
 	}
+	
+	/**
+	 * Get the minimum timestamp resolution for a file in ms (based on heuristics for the OS).
+	 * @param path path to file of interest, or <code>null</code> for worst case
+	 * @return number of ms of resolution.  E.g., 50 means only changes in 50ms increments are stored
+	 */
+	public static long getMinimumFileTimestampResolution(IPath path) {
+		// VFAT on Win32 uses 2 second increments.  Linux ext2/3 uses 1 second resolution,
+		// until ext4, where it becomes nanoseconds.
+		// Assume the worst format in all cases.
+		long res = HostOS.IS_WIN32 ? 2000 : 1000;
+		if (path != null) {
+			// todo
+		}
+		return res;
+	}
+
+	/**
+	 * Locate the file on the filesystem which has the same path, but with
+	 * only case sensitivity differences.  This is only meaningful for fully
+	 * case sensitive and case-preserving filesystems.
+	 * @param path 
+	 * @return path pointing to existing file (possibly with different case in components) or
+	 * original path if there is no match
+	 */
+	public static IPath findMatchingPathCaseInsensitive(IPath path) {
+		// case is insensitive already
+		if (HostOS.IS_WIN32)
+			return path;
+		
+		if (path == null || !path.isAbsolute() || path.toFile().exists())
+			return path;
+		
+		StringBuilder builder = new StringBuilder();
+		
+		if (path.getDevice() != null) {
+			builder.append(path.getDevice());
+		}
+		
+		builder.append('/');
+		
+		boolean failedLookup = false;
+		
+		for (int seg = 0; seg < path.segmentCount(); seg++) {
+			final String segment = path.segment(seg);
+			
+			final String[] matches = { segment };
+			
+			if (!failedLookup) {
+				File dir = new File(builder.toString());
+				if (!new File(dir, matches[0]).exists()) {
+					// component has wrong case; find the first one matching case-insensitively
+					String[] names = dir.list(new FilenameFilter() {
+						
+						public boolean accept(File dir, String name) {
+							if (name.equalsIgnoreCase(segment)) {
+								matches[0] = name;
+								return true;
+							}
+							return false;
+						}
+					});
+					
+					if (names.length == 0) {
+						// no matches!  the rest of the path won't match either
+						failedLookup = true;
+					}
+				}
+			}
+			builder.append(matches[0]);
+			builder.append('/');
+		}
+		
+		if (!path.hasTrailingSeparator() && builder.length() > 0 && builder.charAt(builder.length() - 1) == '/') {
+			builder.setLength(builder.length() - 1);
+		}
+		return new Path(builder.toString());
+	}	
+
 }
--- a/core/com.nokia.cpp.utils.core/src/com/nokia/cpp/internal/api/utils/core/HostOS.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/core/com.nokia.cpp.utils.core/src/com/nokia/cpp/internal/api/utils/core/HostOS.java	Sun Dec 06 20:47:07 2009 -0600
@@ -30,10 +30,12 @@
 	public static boolean IS_WIN32 = File.separatorChar == '\\';
 	/** Is the host some Unix variant? */
 	public static boolean IS_UNIX = File.separatorChar == '/';
+	/** Executable file extension */
+	public static final String EXE_EXT = IS_WIN32 ? ".exe" : "";
 	
 	/** The name of the PATH variable in the environment.  Capitalized differently per OS. */
 	public static String PATH_VARIABLE_NAME = IS_WIN32 ? "Path" : "PATH";
-	
+
 	/**
 	 * Convert a variable constructed blindly for a Win32 environment into
 	 * Unix-like syntax.  This is typically used for PATH or lists
@@ -94,6 +96,21 @@
 	}
 
 	/**
+	 * Create an IPath from a string which may be a Win32 path. <p>
+	 * (This won't work in Unix when using a Win32 path.)
+	 * @param path
+	 * @return converted string
+	 */
+	public static IPath createPathFromString(String path) {
+		if (path == null) return null;
+		// handle Windows slashes and canonicalize
+		path = path.replaceAll("\\\\", "/");
+		return new Path(path);
+	}
+	
+
+	
+	/**
 	 * Ensure that the executable name mentioned is canonical for the machine.
 	 * This only affects Windows, currently, ensuring that an ".exe" is attached.
 	 * @param executablePath
@@ -104,7 +121,7 @@
 			IPath executablePath = new Path(executable);
 			String ext = executablePath.getFileExtension();
 			if (ext == null) {
-				executable += ".exe";
+				executable += EXE_EXT;
 			}
 		}
 		return executable;
@@ -156,6 +173,4 @@
 		
 		return path;
 	}
-	
-	
 }
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/DebuggerTab.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/DebuggerTab.java	Sun Dec 06 20:47:07 2009 -0600
@@ -76,6 +76,7 @@
 		breakAtMain.setLayoutData(data);
 		breakAtMain.setFont(parent.getFont());
 		breakAtMain.setToolTipText(Messages.getString("DebuggerTab.7")); //$NON-NLS-1$
+		breakAtMain.setData(".uid", "DebuggerTab.breakAtMain");  //$NON-NLS-1$ //$NON-NLS-2$
 		breakAtMain.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				updateLaunchConfigurationDialog();
@@ -88,6 +89,7 @@
 		data.horizontalSpan = 1;
 		mainBreakSymbol.setLayoutData(data);
 		mainBreakSymbol.setToolTipText(Messages.getString("DebuggerTab.7")); //$NON-NLS-1$
+		mainBreakSymbol.setData(".uid", "DebuggerTab.mainBreakSymbol");  //$NON-NLS-1$ //$NON-NLS-2$
 		mainBreakSymbol.addModifyListener(new ModifyListener() {
 			public void modifyText(ModifyEvent e) {
 				updateLaunchConfigurationDialog();
@@ -100,6 +102,7 @@
 		viewOutput.setLayoutData(data);
 		viewOutput.setFont(parent.getFont());
 		viewOutput.setToolTipText(Messages.getString("DebuggerTab.10")); //$NON-NLS-1$
+		viewOutput.setData(".uid", "DebuggerTab.viewOutput");  //$NON-NLS-1$ //$NON-NLS-2$
 		viewOutput.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				updateLaunchConfigurationDialog();
@@ -112,6 +115,7 @@
 		viewDebugTrace.setLayoutData(data);
 		viewDebugTrace.setFont(parent.getFont());
 		viewDebugTrace.setToolTipText(Messages.getString("DebuggerTab.17")); //$NON-NLS-1$
+		viewDebugTrace.setData(".uid", "DebuggerTab.viewDebugTrace");  //$NON-NLS-1$ //$NON-NLS-2$
 		viewDebugTrace.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				updateLaunchConfigurationDialog();
@@ -124,6 +128,7 @@
 		viewMessages.setLayoutData(data);
 		viewMessages.setFont(parent.getFont());
 		viewMessages.setToolTipText(Messages.getString("DebuggerTab.12")); //$NON-NLS-1$
+		viewMessages.setData(".uid", "DebuggerTab.viewMessages");  //$NON-NLS-1$ //$NON-NLS-2$
 		viewMessages.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				updateLaunchConfigurationDialog();
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/EmulationMainTab.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/EmulationMainTab.java	Sun Dec 06 20:47:07 2009 -0600
@@ -109,13 +109,13 @@
 		gd.horizontalSpan = 2;
 		hostLabel.setLayoutData(gd);
 		hostLabel.setToolTipText(Messages.getString("EmulationMainTab.3")); //$NON-NLS-1$
-		hostLabel.setData(".uid", "EmulationMainTab.hostLabel");
+		hostLabel.setData(".uid", "EmulationMainTab.hostLabel");  //$NON-NLS-1$ //$NON-NLS-2$
 
 		hostText = new Text(projComp, SWT.SINGLE | SWT.BORDER);
 		gd = new GridData(GridData.FILL_HORIZONTAL);
 		hostText.setLayoutData(gd);
 		hostText.setToolTipText(Messages.getString("EmulationMainTab.3")); //$NON-NLS-1$
-		hostText.setData(".uid", "EmulationMainTab.hostText");
+		hostText.setData(".uid", "EmulationMainTab.hostText");  //$NON-NLS-1$ //$NON-NLS-2$
 		hostText.addModifyListener(new ModifyListener() {
 
 			public void modifyText(ModifyEvent evt) {
@@ -124,7 +124,7 @@
 		});
 
 		hostBrowse = createPushButton(projComp, Messages.getString("EmulationMainTab.4"), null); //$NON-NLS-1$
-		hostBrowse.setData(".uid", "EmulationMainTab.hostBrowse");
+		hostBrowse.setData(".uid", "EmulationMainTab.hostBrowse");  //$NON-NLS-1$ //$NON-NLS-2$
 		hostBrowse.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent evt) {
 				FileDialog dialog = new FileDialog(getShell(), SWT.NONE);
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/ExecutablesTab.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/ExecutablesTab.java	Sun Dec 06 20:47:07 2009 -0600
@@ -95,6 +95,7 @@
 				targetingRulesCombo.add(Messages.getString("ExecutablesTab.4")); //$NON-NLS-1$
 			}
 			targetingRulesCombo.setText(Messages.getString("ExecutablesTab.5")); //$NON-NLS-1$
+			targetingRulesCombo.setData(".uid", "ExecutablesTab.targetingRulesCombo");  //$NON-NLS-1$ //$NON-NLS-2$
 			final GridData gd_targetingRulesCombo = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
 			targetingRulesCombo.setLayoutData(gd_targetingRulesCombo);
 			targetingRulesCombo.addListener(SWT.Selection, new Listener() {
@@ -156,6 +157,7 @@
 
 		addButton = new Button(buttonComp, SWT.PUSH);
 		addButton.setText(Messages.getString("ExecutablesTab.6")); //$NON-NLS-1$
+		addButton.setData(".uid", "ExecutablesTab.addButton");  //$NON-NLS-1$ //$NON-NLS-2$
 		addButton.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				FileDialog dialog = new FileDialog(getShell(), SWT.NONE);
@@ -177,6 +179,7 @@
 
 		selectAllButton = new Button(buttonComp, SWT.PUSH);
 		selectAllButton.setText(Messages.getString("ExecutablesTab.9")); //$NON-NLS-1$
+		selectAllButton.setData(".uid", "ExecutablesTab.selectAllButton");  //$NON-NLS-1$ //$NON-NLS-2$
 		selectAllButton.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				executablesBlock.setAllChecked(true);
@@ -185,6 +188,7 @@
 
 		unselectAllButton = new Button(buttonComp, SWT.PUSH);
 		unselectAllButton.setText(Messages.getString("ExecutablesTab.10")); //$NON-NLS-1$
+		unselectAllButton.setData(".uid", "ExecutablesTab.unselectAllButton");  //$NON-NLS-1$ //$NON-NLS-2$
 		unselectAllButton.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				executablesBlock.setAllChecked(false);
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/InstallationTab.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/InstallationTab.java	Sun Dec 06 20:47:07 2009 -0600
@@ -119,11 +119,13 @@
 		data.horizontalSpan = 2;
 		hostLabel.setLayoutData(data);
 		hostLabel.setToolTipText(Messages.getString("InstallationTab.2")); //$NON-NLS-1$
+		hostLabel.setData(".uid", "InstallationTab.hostLabel");  //$NON-NLS-1$ //$NON-NLS-2$
 
 		hostPath = new Text(projComp, SWT.BORDER);
 		data = new GridData(GridData.FILL_HORIZONTAL);
 		hostPath.setLayoutData(data);
 		hostPath.setToolTipText(Messages.getString("InstallationTab.2")); //$NON-NLS-1$
+		hostPath.setData(".uid", "InstallationTab.hostPath");  //$NON-NLS-1$ //$NON-NLS-2$
 		hostPath.addModifyListener(new ModifyListener() {
 			public void modifyText(ModifyEvent e) {
 				updatePULabel();
@@ -132,6 +134,7 @@
 		});
 
 		hostBrowse = createPushButton(projComp, Messages.getString("InstallationTab.3"), null); //$NON-NLS-1$
+		hostBrowse.setData(".uid", "InstallationTab.hostBrowse");  //$NON-NLS-1$ //$NON-NLS-2$
 		hostBrowse.addSelectionListener(new SelectionAdapter() {
 
 			public void widgetSelected(SelectionEvent evt) {
@@ -156,11 +159,13 @@
 		data.horizontalSpan = 2;
 		targetLabel.setLayoutData(data);
 		targetLabel.setToolTipText(Messages.getString("InstallationTab.6")); //$NON-NLS-1$
+		targetLabel.setData(".uid", "InstallationTab.targetLabel");  //$NON-NLS-1$ //$NON-NLS-2$
 
 		targetPath = new Text(projComp, SWT.BORDER);
 		data = new GridData(GridData.FILL_HORIZONTAL);
 		targetPath.setLayoutData(data);
 		targetPath.setToolTipText(Messages.getString("InstallationTab.6")); //$NON-NLS-1$
+		targetPath.setData(".uid", "InstallationTab.targetPath");  //$NON-NLS-1$ //$NON-NLS-2$
 		targetPath.addModifyListener(new ModifyListener() {
 			public void modifyText(ModifyEvent e) {
 				updateLaunchConfigurationDialog();
@@ -174,6 +179,7 @@
 		data.horizontalSpan = 2;
 		forceInstall.setLayoutData(data);
 		forceInstall.setToolTipText(Messages.getString("InstallationTab.8")); //$NON-NLS-1$
+		forceInstall.setData(".uid", "InstallationTab.forceInstall");  //$NON-NLS-1$ //$NON-NLS-2$
 		forceInstall.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				updateLaunchConfigurationDialog();
@@ -211,7 +217,7 @@
 		data.horizontalSpan = 1;
 		driveLabel.setLayoutData(data);
 		driveLabel.setToolTipText(Messages.getString("InstallationTab.12")); //$NON-NLS-1$
-
+		driveLabel.setData(".uid", "InstallationTab.driveLabel");  //$NON-NLS-1$ //$NON-NLS-2$
 		drive = new Combo(installerUIGroup.getGroup(), SWT.READ_ONLY);
 		for (int i=0; i<driveLetterArray.length; i++) {
 			drive.add(driveLetterArray[i]);
@@ -220,6 +226,7 @@
 		data.horizontalSpan = 1;
 		drive.setLayoutData(data);
 		drive.setToolTipText(Messages.getString("InstallationTab.12")); //$NON-NLS-1$
+		
 		drive.addModifyListener(new ModifyListener() {
 			public void modifyText(ModifyEvent e) {
 				updateLaunchConfigurationDialog();
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/RomLogFileTab.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/RomLogFileTab.java	Sun Dec 06 20:47:07 2009 -0600
@@ -100,6 +100,7 @@
 		parseRomLogGroup.setText(Messages.getString("RomLogFileTab.1")); //$NON-NLS-1$
 		parseRomLogGroup.setFont(parent.getFont());
 		parseRomLogGroup.setToolTipText(Messages.getString("RomLogFileTab.2")); //$NON-NLS-1$
+		parseRomLogGroup.setData(".uid", "RomLogFileTab.parseRomLogGroup");  //$NON-NLS-1$ //$NON-NLS-2$
 		parseRomLogGroup.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				updateLaunchConfigurationDialog();
@@ -111,12 +112,15 @@
 		data.horizontalSpan = 2;
 		romLogFileLabel.setLayoutData(data);
 		romLogFileLabel.setToolTipText(Messages.getString("RomLogFileTab.4")); //$NON-NLS-1$
+		romLogFileLabel.setData(".uid", "RomLogFileTab.romLogFileLabel");  //$NON-NLS-1$ //$NON-NLS-2$
+
 
 		romLogFilePath = new Text(parseRomLogGroup.getGroup(), SWT.BORDER);
 		data = new GridData(GridData.FILL_HORIZONTAL);
 		data.horizontalSpan = 1;
 		romLogFilePath.setLayoutData(data);
 		romLogFilePath.setToolTipText(Messages.getString("RomLogFileTab.4")); //$NON-NLS-1$
+		romLogFilePath.setData(".uid", "RomLogFileTab.romLogFilePath");  //$NON-NLS-1$ //$NON-NLS-2$
 		romLogFilePath.addModifyListener(new ModifyListener() {
 			public void modifyText(ModifyEvent e) {
 				updateLaunchConfigurationDialog();
@@ -124,6 +128,7 @@
 		});
 
 		romLogFileBrowse = createPushButton(parseRomLogGroup.getGroup(), Messages.getString("RomLogFileTab.5"), null); //$NON-NLS-1$
+		romLogFileBrowse.setData(".uid", "RomLogFileTab.romLogFileBrowse");  //$NON-NLS-1$ //$NON-NLS-2$
 		romLogFileBrowse.addSelectionListener(new SelectionAdapter() {
 
 			public void widgetSelected(SelectionEvent evt) {
@@ -147,11 +152,13 @@
 		data.horizontalSpan = 2;
 		epoc32DirLabel.setLayoutData(data);
 		epoc32DirLabel.setToolTipText(Messages.getString("RomLogFileTab.10")); //$NON-NLS-1$
+		epoc32DirLabel.setData(".uid", "RomLogFileTab.epoc32DirLabel");  //$NON-NLS-1$ //$NON-NLS-2$
 
 		epoc32DirPath = new Text(parseRomLogGroup.getGroup(), SWT.BORDER);
 		data = new GridData(GridData.FILL_HORIZONTAL);
 		epoc32DirPath.setLayoutData(data);
 		epoc32DirPath.setToolTipText(Messages.getString("RomLogFileTab.10")); //$NON-NLS-1$
+		epoc32DirPath.setData(".uid", "RomLogFileTab.epoc32DirPath");  //$NON-NLS-1$ //$NON-NLS-2$
 		epoc32DirPath.addModifyListener(new ModifyListener() {
 			public void modifyText(ModifyEvent e) {
 				updateLaunchConfigurationDialog();
@@ -159,6 +166,7 @@
 		});
 
 		epoc32DirBrowse = createPushButton(parseRomLogGroup.getGroup(), Messages.getString("RomLogFileTab.5"), null); //$NON-NLS-1$
+		epoc32DirBrowse.setData(".uid", "RomLogFileTab.epoc32DirBrowse");  //$NON-NLS-1$ //$NON-NLS-2$
 		epoc32DirBrowse.addSelectionListener(new SelectionAdapter() {
 
 			public void widgetSelected(SelectionEvent evt) {
@@ -181,6 +189,7 @@
 		data.horizontalSpan = 2;
 		logUnresolvedModules.setLayoutData(data);
 		logUnresolvedModules.setToolTipText(Messages.getString("RomLogFileTab.14")); //$NON-NLS-1$
+		logUnresolvedModules.setData(".uid", "RomLogFileTab.logUnresolvedModules");  //$NON-NLS-1$ //$NON-NLS-2$
 		logUnresolvedModules.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				updateLaunchConfigurationDialog();
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/RunModeMainTab.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/RunModeMainTab.java	Sun Dec 06 20:47:07 2009 -0600
@@ -119,6 +119,7 @@
 
 		remoteLabel = new Label(projComp, SWT.NONE);
 		remoteLabel.setText(Messages.getString("RunModeMainTab.2")); //$NON-NLS-1$
+		remoteLabel.setData(".uid", "RunModeMainTab.remoteLabel");  //$NON-NLS-1$ //$NON-NLS-2$
 		gd = new GridData();
 		gd.horizontalSpan = 2;
 		remoteLabel.setLayoutData(gd);
@@ -128,6 +129,7 @@
 		gd = new GridData(GridData.FILL_HORIZONTAL);
 		remoteText.setLayoutData(gd);
 		remoteText.setToolTipText(Messages.getString("RunModeMainTab.3")); //$NON-NLS-1$
+		remoteText.setData(".uid", "RunModeMainTab.remoteText");  //$NON-NLS-1$ //$NON-NLS-2$
 		remoteText.addModifyListener(new ModifyListener() {
 
 			public void modifyText(ModifyEvent evt) {
--- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/TestsPlugin.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/TestsPlugin.java	Sun Dec 06 20:47:07 2009 -0600
@@ -63,17 +63,18 @@
 	}
 
 	/**
-	 * Get build configurations for the first non-empty SDK we find
-	 * @return
+	 * Get some build configurations for the first non-empty SDK we find.
+	 * @return a list of contexts, no more than 8.
 	 */
 	public static List<ISymbianBuildContext> getUsableBuildConfigs() {
 		for (ISymbianSDK sdk : SDKCorePlugin.getSDKManager().getSDKList()) {
 			List<ISymbianBuildContext> contexts = sdk.getUnfilteredBuildConfigurations();
-			if (contexts.size() > 0)
-				return contexts;
+			if (contexts.size() > 0) {
+				return contexts.subList(0, Math.min(contexts.size(), 8));
+			}
 		}
 		TestCase.fail("No installed SDKs provide build configurations");
-		return Collections.EMPTY_LIST;
+		return Collections.emptyList();
 	}
 
 }
--- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestBSFView.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestBSFView.java	Sun Dec 06 20:47:07 2009 -0600
@@ -52,7 +52,7 @@
 			}
 	
 			public Collection<IDefine> getMacros() {
-				return Collections.EMPTY_LIST ;
+				return Collections.emptyList() ;
 			}
 			
 			public IViewParserConfiguration getViewParserConfiguration() {
--- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestModelProvider.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestModelProvider.java	Sun Dec 06 20:47:07 2009 -0600
@@ -73,6 +73,7 @@
 	/* (non-Javadoc)
 	 * @see com.nokia.carbide.cpp.epoc.engine.tests.BaseTest#setUp()
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
 	protected void setUp() throws Exception {
 		super.setUp();
--- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestModelsAndViews.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestModelsAndViews.java	Sun Dec 06 20:47:07 2009 -0600
@@ -28,7 +28,6 @@
 import com.nokia.carbide.cpp.epoc.engine.preprocessor.IDefine;
 import com.nokia.carbide.cpp.epoc.engine.preprocessor.IViewFilter;
 import com.nokia.carbide.cpp.epoc.engine.tests.model.dummy.DummyModel;
-import com.nokia.carbide.cpp.epoc.engine.tests.model.dummy.IDummyModel;
 import com.nokia.carbide.cpp.epoc.engine.tests.model.dummy.IDummyView;
 import com.nokia.carbide.internal.api.cpp.epoc.engine.dom.IASTTranslationUnit;
 import com.nokia.carbide.internal.cpp.epoc.engine.model.ViewASTBase;
@@ -67,7 +66,7 @@
 			}
 
 			public Collection<IDefine> getMacros() {
-				return Collections.EMPTY_LIST;
+				return Collections.emptyList();
 			}
 			
 			public IViewParserConfiguration getViewParserConfiguration() {
@@ -148,7 +147,7 @@
 		assertEquals(model, view.getModel());
 		
 		// ensure model knows
-		IView<IDummyModel>[] views = model.getViews();
+		IView[] views = model.getViews();
 		assertEquals(1, views.length);
 		assertEquals(view, views[0]);
 		
--- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestPKGView.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestPKGView.java	Sun Dec 06 20:47:07 2009 -0600
@@ -23,6 +23,7 @@
 import com.nokia.carbide.cpp.epoc.engine.preprocessor.*;
 import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.*;
 import com.nokia.carbide.internal.cpp.epoc.engine.model.pkg.PKGView;
+import com.nokia.cpp.internal.api.utils.core.HostOS;
 import com.nokia.cpp.internal.api.utils.core.Logging;
 
 import org.eclipse.core.runtime.*;
@@ -67,7 +68,7 @@
 		"{\"c:\\users\\E0192828\\back.txt\", \"c:\\users\\E0FG\\front.txt\"}-\"sp ac es.txt\"\r\n" +
 		"\"c:\\users\\E0192828\\back.txt\" - \"sp ac es.txt\"";
 	
-	private static final Map<String, String> lang2SrcFileMap = new HashMap();
+	private static final Map<String, String> lang2SrcFileMap = new HashMap<String, String>();
 	static {
 		for (String[] lang2SrcFileSpec : LANG_TO_SRC_FILES) {
 			lang2SrcFileMap.put(lang2SrcFileSpec[0], lang2SrcFileSpec[1]);
@@ -85,7 +86,7 @@
 	@Override
 	protected void setUp() throws Exception {
 		super.setUp();
-		this.path = new Path("c:\\symbian\\9.4\\epoc32\\tools\\Test.PKG");
+		this.path = new Path(getTokenAbsolutePath()).append("/symbian/9.4/epoc32/tools/Test.PKG");
 	
 		config = new IViewConfiguration() {
 	
@@ -94,7 +95,7 @@
 			}
 	
 			public Collection<IDefine> getMacros() {
-				return Collections.EMPTY_LIST ;
+				return Collections.emptyList() ;
 			}
 			
 			public IViewParserConfiguration getViewParserConfiguration() {
@@ -139,24 +140,24 @@
 		
 		// first install file is language dependent
 		IPKGInstallFile installFile = installFileList.get(0);
-		assertEquals(new Path(LANG_DEST_FILE), installFile.getDestintationFile());
+		assertEquals(HostOS.createPathFromString(LANG_DEST_FILE), installFile.getDestintationFile());
 		List<EPKGLanguage> langs = view.getLanguages();
 		assertEquals(2, langs.size());
 		Map<EPKGLanguage, IPath> sourceFiles = installFile.getSourceFiles();
 		for (EPKGLanguage lang : langs) {
 			IPath srcFilePath = sourceFiles.get(lang);
 			String srcFile = lang2SrcFileMap.get(lang.getCode());
-			assertEquals(new Path(srcFile), srcFilePath);
+			assertEquals(HostOS.createPathFromString(srcFile), srcFilePath);
 		}
 		
 		// second install file is language independent
 		installFile = installFileList.get(1);
-		assertEquals(new Path(NO_LANG_DEST_FILE), installFile.getDestintationFile());
+		assertEquals(HostOS.createPathFromString(NO_LANG_DEST_FILE), installFile.getDestintationFile());
 		sourceFiles = installFile.getSourceFiles();
 		assertEquals(1, sourceFiles.size());
 		assertTrue(sourceFiles.containsKey(EPKGLanguage.INDEPENDENT));
 		IPath srcFilePath = sourceFiles.get(EPKGLanguage.INDEPENDENT);
-		assertEquals(new Path(NO_LANG_SRC_FILE), srcFilePath);
+		assertEquals(HostOS.createPathFromString(NO_LANG_SRC_FILE), srcFilePath);
 		assertEquals(1, installFile.getOptions().size());
 		assertEquals(NO_LANG_OPTION, installFile.getOptions().get(0));
 		
@@ -186,7 +187,7 @@
 		IPath destintationFile = conditionalInstallFile.getDestintationFile();
 		assertTrue(destintationFile.isEmpty());
 		assertEquals(1, conditionalInstallFile.getSourceFiles().size());
-		assertEquals(new Path(CONDITIONAL_SRC_FILE), conditionalInstallFile.getSourceFiles().get(EPKGLanguage.INDEPENDENT));
+		assertEquals(HostOS.createPathFromString(CONDITIONAL_SRC_FILE), conditionalInstallFile.getSourceFiles().get(EPKGLanguage.INDEPENDENT));
 		assertEquals(2, conditionalInstallFile.getOptions().size());
 		
 		commitTest(view, modelText);
@@ -199,9 +200,9 @@
 		
 		// fully create and add a language independent install file statement
 		IPKGInstallFile installFile1 = view.createInstallFile(null);
-		installFile1.getSourceFiles().put(EPKGLanguage.INDEPENDENT, new Path(NO_LANG_SRC_FILE));
+		installFile1.getSourceFiles().put(EPKGLanguage.INDEPENDENT, HostOS.createPathFromString(NO_LANG_SRC_FILE));
 		installFile1.getOptions().add(NO_LANG_OPTION);
-		installFile1.setDestinationFile(new Path(NO_LANG_DEST_FILE));
+		installFile1.setDestinationFile(HostOS.createPathFromString(NO_LANG_DEST_FILE));
 		view.addInstallFile(installFile1);
 		
 		// create a language dependent install file and modify after add
@@ -209,9 +210,9 @@
 		view.addInstallFile(installFile2);
 		for (String[] lang2SrcFileArray : LANG_TO_SRC_FILES) {
 			installFile2.getSourceFiles().put(
-					EPKGLanguage.forLangCode(lang2SrcFileArray[0]), new Path(lang2SrcFileArray[1]));
+					EPKGLanguage.forLangCode(lang2SrcFileArray[0]), HostOS.createPathFromString(lang2SrcFileArray[1]));
 		}
-		installFile2.setDestinationFile(new Path(LANG_DEST_FILE));
+		installFile2.setDestinationFile(HostOS.createPathFromString(LANG_DEST_FILE));
 		
 		// NOTE: the newlines are lost and shouldn't be
 		//String modifiedModelText = modelText + NO_LANG_INSTALL_FILE_STATEMENT + "\n" + LANG_INSTALL_FILE_STATEMENT;
@@ -244,13 +245,13 @@
 		
 		IPKGInstallFile file = installFiles[0];
 		assertEquals(2, file.getSourceFiles().size());
-		assertEquals(new Path("c:\\users\\E0192828\\back.txt"), file.getSourceFiles().get(EPKGLanguage.EN));
-		assertEquals(new Path("c:\\users\\E0FG\\front.txt"), file.getSourceFiles().get(EPKGLanguage.FR));
+		assertEquals(new Path("c:/users/E0192828/back.txt"), file.getSourceFiles().get(EPKGLanguage.EN));
+		assertEquals(new Path("c:/users/E0FG/front.txt"), file.getSourceFiles().get(EPKGLanguage.FR));
 		assertEquals(new Path("sp ac es.txt"), file.getDestintationFile());
 		
 		file = installFiles[1];
 		assertEquals(1, file.getSourceFiles().size());
-		assertEquals(new Path("c:\\users\\E0192828\\back.txt"), file.getSourceFiles().get(EPKGLanguage.INDEPENDENT));
+		assertEquals(new Path("c:/users/E0192828/back.txt"), file.getSourceFiles().get(EPKGLanguage.INDEPENDENT));
 		assertEquals(new Path("sp ac es.txt"), file.getDestintationFile());
 		
 		commitTest(view, ESCAPABLE_FILES);
--- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestStandaloneModelProvider.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestStandaloneModelProvider.java	Sun Dec 06 20:47:07 2009 -0600
@@ -70,6 +70,7 @@
 	/* (non-Javadoc)
 	 * @see com.nokia.carbide.cpp.epoc.engine.tests.BaseTest#setUp()
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
 	protected void setUp() throws Exception {
 		super.setUp();
--- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewChanging.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewChanging.java	Sun Dec 06 20:47:07 2009 -0600
@@ -62,7 +62,7 @@
 			}
 
 			public Collection<IDefine> getMacros() {
-				return Collections.EMPTY_LIST;
+				return Collections.emptyList();
 			}
 			
 			public IViewParserConfiguration getViewParserConfiguration() {
--- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewDOMSynchronizer.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewDOMSynchronizer.java	Sun Dec 06 20:47:07 2009 -0600
@@ -192,7 +192,7 @@
 			}
 			
 			public Pair<IASTNode, IASTNode> getInsertAnchors() {
-				return new Pair(null, null);
+				return new Pair<IASTNode, IASTNode>(null, null);
 			}
 		};
 	}
@@ -212,7 +212,7 @@
 			}
 			
 			public Pair<IASTNode, IASTNode> getInsertAnchors() {
-				return new Pair(before, after);
+				return new Pair<IASTNode, IASTNode>(before, after);
 			}
 		};
 	}
--- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewDataCache.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewDataCache.java	Sun Dec 06 20:47:07 2009 -0600
@@ -61,7 +61,7 @@
 	private File projectDir;
 
 	// Try to wait long enough to ensure the timestamp-based check will detect a change
-	private static final long FS_TIME_RESOLUTION = ViewDataCache.ModelFileTimestampCollection.MIN_TIMESTAMP_RESOLUTION;
+	private static final long FS_TIME_RESOLUTION = FileUtils.getMinimumFileTimestampResolution(null);
 	
 	/* (non-Javadoc)
 	 * @see com.nokia.carbide.cpp.epoc.engine.tests.BaseTest#setUp()
--- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/workspace/TestWorkspaceModelProvider.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/workspace/TestWorkspaceModelProvider.java	Sun Dec 06 20:47:07 2009 -0600
@@ -471,7 +471,8 @@
 	 */
 	public void testExternalModification_bug3557() throws Exception {
 		// make the mmp
-		IPath fullMmpPath = new Path("c:/tempmodel.mmp");
+		IPath fullMmpPath = new Path(getTokenAbsolutePath()).append("tempmodel.mmp");
+		fullMmpPath.toFile().getParentFile().mkdirs();
 		
 		String text = 
 			"START BITMAP foo.mbm\n"+
--- a/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/cpp/epoc/engine/preprocessor/DefaultTranslationUnitProvider.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/cpp/epoc/engine/preprocessor/DefaultTranslationUnitProvider.java	Sun Dec 06 20:47:07 2009 -0600
@@ -36,7 +36,7 @@
 import com.nokia.cpp.internal.api.utils.core.*;
 public class DefaultTranslationUnitProvider implements ITranslationUnitProvider {
 
-	private static DefaultTranslationUnitProvider instance;
+	private static DefaultTranslationUnitProvider instance = new DefaultTranslationUnitProvider();
 
 	// not final or static for debugging
 	private boolean DUMP = false;
@@ -62,9 +62,6 @@
 	 * @return instance, never null
 	 */
 	public static DefaultTranslationUnitProvider getInstance() {
-		if (instance == null) {
-			instance = new DefaultTranslationUnitProvider();
-		}
 		return instance;
 	}
 	
--- a/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/internal/cpp/epoc/engine/model/ViewDataCache.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/internal/cpp/epoc/engine/model/ViewDataCache.java	Sun Dec 06 20:47:07 2009 -0600
@@ -218,13 +218,6 @@
 	
 	public static class ModelFileTimestampCollection {
 		/**
-		 * The minimum timestamp resolution for a file in ms (based on heuristics for the OS).
-		 * VFAT on Win32 uses 2 second increments.  Linux ext2/3 uses 1 second resolution, 
-		 * until ext4, where it becomes nanoseconds.
-		 * Assume the worst format in all cases.
-		 */
-		public static final long MIN_TIMESTAMP_RESOLUTION = HostOS.IS_WIN32 ? 2000 : 1000;
-		/**
 		 * Delay in ms between successive checks of the filesystem, to avoid wasting time
 		 * when such checks are slow, and in cases where it's unlikely the human will edit files
 		 * fast enough to care.
@@ -424,6 +417,7 @@
 	 * @return
 	 * @throws CoreException
 	 */
+	@SuppressWarnings("unchecked")
 	private Data getViewData(IPath modelPath, IViewConfiguration configuration,
 			ViewConfigState state, ViewConfigKey key) throws CoreException {
 		Data data;
--- a/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/internal/cpp/epoc/engine/model/pkg/PKGView.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/internal/cpp/epoc/engine/model/pkg/PKGView.java	Sun Dec 06 20:47:07 2009 -0600
@@ -366,7 +366,7 @@
 		IASTPKGInstallFileStatement installFileStmt = (IASTPKGInstallFileStatement) node;
 		PKGInstallFile installFile = new PKGInstallFile(installFileStmt, parentNode);
 		IASTLiteralTextNode targetFile = installFileStmt.getTargetFile();
-		installFile.setDestinationFile(new Path(TextUtils.unquote(targetFile
+		installFile.setDestinationFile(HostOS.createPathFromString(TextUtils.unquote(targetFile
 				.getStringValue(), '"')));
 		IASTListNode<IASTLiteralTextNode> optionNodes = installFileStmt
 				.getOptions();
@@ -388,7 +388,7 @@
 			} else {
 				for (IASTLiteralTextNode sourceNode : sourceNodes) {
 					sourceFiles.put(languages.get(languageIndex++),
-							new Path(TextUtils.unquote(sourceNode
+							HostOS.createPathFromString(TextUtils.unquote(sourceNode
 									.getStringValue(), '"')));
 				}
 			}
@@ -397,7 +397,7 @@
 			// always return
 			// single source
 			// node
-			sourceFiles.put(EPKGLanguage.INDEPENDENT, new Path(TextUtils
+			sourceFiles.put(EPKGLanguage.INDEPENDENT, HostOS.createPathFromString(TextUtils
 					.unquote(sourceNodes.get(0).getStringValue(), '"')));
 		}
 		if (parentNode == null)
@@ -460,13 +460,13 @@
 				for (IASTLiteralTextNode sourceNode : sourceNodes) {
 					// remove the leading '@'
 					sourceFiles.put(languages.get(languageIndex++),
-							new Path(TextUtils.unquote(sourceNode.getStringValue().substring(1), '"')));
+							HostOS.createPathFromString(TextUtils.unquote(sourceNode.getStringValue().substring(1), '"')));
 				}
 			}
 		} else { // language independent
 			Check.checkContract(sourceNodes.size() == 1); // parser should
 			// always return single source node.  remove the leading '@'.
-			sourceFiles.put(EPKGLanguage.INDEPENDENT, new Path(TextUtils
+			sourceFiles.put(EPKGLanguage.INDEPENDENT, HostOS.createPathFromString(TextUtils
 					.unquote(sourceNodes.get(0).getStringValue().substring(1), '"')));
 		}
 		
--- a/project/com.nokia.carbide.cpp.project.core/src/com/nokia/carbide/cpp/internal/project/core/updater/SymbianBuildParser.java	Sun Dec 06 20:41:47 2009 -0600
+++ b/project/com.nokia.carbide.cpp.project.core/src/com/nokia/carbide/cpp/internal/project/core/updater/SymbianBuildParser.java	Sun Dec 06 20:47:07 2009 -0600
@@ -73,7 +73,7 @@
 	private static final String MACROS = "macros"; //$NON-NLS-1$
 	private static final String MBM = "mbm"; //$NON-NLS-1$
 	private static final String MIF = "mif"; //$NON-NLS-1$
-	private static final String DEFAULT_TARGET = "untitled.exe"; //$NON-NLS-1$
+	private static final String DEFAULT_TARGET = HostOS.IS_WIN32 ? "untitled.exe" : "untitled"; //$NON-NLS-1$ //$NON-NLS-2$
 	private static final String DEFAULT_TARGETTYPE = "exe"; //$NON-NLS-1$
 	private static final String[] plaformMacros = {
 		"GCC32", "EPOC32", "MARM", "EABI", "GENERIC_MARM",  //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
--- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/group/bld.inf	Sun Dec 06 20:41:47 2009 -0600
+++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/group/bld.inf	Sun Dec 06 20:47:07 2009 -0600
@@ -16,7 +16,7 @@
 
 gnumakefile icons_scalable_dc.mk
 
-$(buildHelpPrefix)gnumakefile ..\$(helpDir)\build_help.mk
+$(buildHelpPrefix)gnumakefile ../$(helpDir)/build_help.mk
 
 $(baseName).mmp
 
--- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/help/build_help.mk	Sun Dec 06 20:41:47 2009 -0600
+++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/help/build_help.mk	Sun Dec 06 20:47:07 2009 -0600
@@ -18,7 +18,7 @@
 
 MAKMAKE : $(baseName)_$(uid3).hlp
 $(baseName)_$(uid3).hlp : $(baseName).xml $(baseName).cshlp Custom.xml
-	cshlpcmp $(baseName).cshlp
+	$(cshlpcmp) $(baseName).cshlp
 ifeq (WINSCW,$(findstring WINSCW, $(PLATFORM)))
 	md $(EPOCROOT)epoc32\$(PLATFORM)\c\resource\help
 	copy $(baseName)_$(uid3).hlp $(EPOCROOT)epoc32\$(PLATFORM)\c\resource\help
--- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/group/bld.inf	Sun Dec 06 20:41:47 2009 -0600
+++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/group/bld.inf	Sun Dec 06 20:47:07 2009 -0600
@@ -16,7 +16,7 @@
 
 gnumakefile icons_scalable_dc.mk
 
-$(buildHelpPrefix)gnumakefile ..\$(helpDir)\build_help.mk
+$(buildHelpPrefix)gnumakefile ../$(helpDir)/build_help.mk
 
 $(baseName).mmp
 
--- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/help/build_help.mk	Sun Dec 06 20:41:47 2009 -0600
+++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/help/build_help.mk	Sun Dec 06 20:47:07 2009 -0600
@@ -18,7 +18,7 @@
 
 MAKMAKE : $(baseName)_$(uid3).hlp
 $(baseName)_$(uid3).hlp : $(baseName).xml $(baseName).cshlp Custom.xml
-	cshlpcmp $(baseName).cshlp
+	$(cshlpcmp) $(baseName).cshlp
 ifeq (WINSCW,$(findstring WINSCW, $(PLATFORM)))
 	md $(EPOCROOT)epoc32\$(PLATFORM)\c\resource\help
 	copy $(baseName)_$(uid3).hlp $(EPOCROOT)epoc32\$(PLATFORM)\c\resource\help