Fixed broken single header following script change
- fixed the script (was missing #ifdefs)
- also fixed single include (Xcode) test project
- build 16
diff --git a/README.md b/README.md
index ff20b3f..5e93e7d 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 ![catch logo](catch-logo-small.png)
 
-*v1.0 build 15 (master branch)*
+*v1.0 build 16 (master branch)*
 
 Build status (on Travis CI) [![Build Status](https://travis-ci.org/philsquared/Catch.png)](https://travis-ci.org/philsquared/Catch)
 
diff --git a/include/internal/catch_version.hpp b/include/internal/catch_version.hpp
index 6548fc9..13f1169 100644
--- a/include/internal/catch_version.hpp
+++ b/include/internal/catch_version.hpp
@@ -13,7 +13,7 @@
 namespace Catch {
 
     // These numbers are maintained by a script
-    Version libraryVersion( 1, 0, 15, "master" );
+    Version libraryVersion( 1, 0, 16, "master" );
 }
 
 #endif // TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
diff --git a/projects/SelfTest/TestMain.cpp b/projects/SelfTest/TestMain.cpp
index 1d7211e..575a456 100644
--- a/projects/SelfTest/TestMain.cpp
+++ b/projects/SelfTest/TestMain.cpp
@@ -14,13 +14,6 @@
 #pragma clang diagnostic ignored "-Wweak-vtables"
 #endif
 
-#include "internal/catch_text.h"
-#include "internal/catch_console_colour.hpp"
-#include "internal/catch_commandline.hpp"
-#include "internal/catch_test_spec.h"
-
-#include "reporters/catch_reporter_xml.hpp"
-
 template<size_t size>
 void parseIntoConfig( const char * (&argv)[size], Catch::ConfigData& config ) {
     Clara::CommandLine<Catch::ConfigData> parser = Catch::makeCommandLineParser();
diff --git a/projects/XCode4/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.pbxproj b/projects/XCode4/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.pbxproj
index 440f12a..209296a 100644
--- a/projects/XCode4/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.pbxproj
+++ b/projects/XCode4/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.pbxproj
@@ -8,7 +8,6 @@
 
 /* Begin PBXBuildFile section */
 		4A2894D615D3956000E20735 /* ApproxTests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A2894D515D3956000E20735 /* ApproxTests.cpp */; };
-		4AB735F815D396ED00F9F7C3 /* catch_self_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A2894D815D3957500E20735 /* catch_self_test.cpp */; };
 		4AB735FA15D396F400F9F7C3 /* TestMain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A2894E015D3957500E20735 /* TestMain.cpp */; };
 		4AB735FB15D3970C00F9F7C3 /* ClassTests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A2894DA15D3957500E20735 /* ClassTests.cpp */; };
 		4AB735FC15D3971100F9F7C3 /* ConditionTests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A2894DB15D3957500E20735 /* ConditionTests.cpp */; };
@@ -33,8 +32,6 @@
 
 /* Begin PBXFileReference section */
 		4A2894D515D3956000E20735 /* ApproxTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ApproxTests.cpp; path = ../../../SelfTest/ApproxTests.cpp; sourceTree = "<group>"; };
-		4A2894D815D3957500E20735 /* catch_self_test.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = catch_self_test.cpp; path = ../../../SelfTest/catch_self_test.cpp; sourceTree = "<group>"; };
-		4A2894D915D3957500E20735 /* catch_self_test.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = catch_self_test.hpp; path = ../../../SelfTest/catch_self_test.hpp; sourceTree = "<group>"; };
 		4A2894DA15D3957500E20735 /* ClassTests.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ClassTests.cpp; path = ../../../SelfTest/ClassTests.cpp; sourceTree = "<group>"; };
 		4A2894DB15D3957500E20735 /* ConditionTests.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ConditionTests.cpp; path = ../../../SelfTest/ConditionTests.cpp; sourceTree = "<group>"; };
 		4A2894DC15D3957500E20735 /* ExceptionTests.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ExceptionTests.cpp; path = ../../../SelfTest/ExceptionTests.cpp; sourceTree = "<group>"; };
@@ -61,8 +58,6 @@
 			isa = PBXGroup;
 			children = (
 				4A2894E015D3957500E20735 /* TestMain.cpp */,
-				4A2894D815D3957500E20735 /* catch_self_test.cpp */,
-				4A2894D915D3957500E20735 /* catch_self_test.hpp */,
 			);
 			name = "Self Test";
 			sourceTree = "<group>";
@@ -159,7 +154,6 @@
 			buildActionMask = 2147483647;
 			files = (
 				4A2894D615D3956000E20735 /* ApproxTests.cpp in Sources */,
-				4AB735F815D396ED00F9F7C3 /* catch_self_test.cpp in Sources */,
 				4AB735FA15D396F400F9F7C3 /* TestMain.cpp in Sources */,
 				4AB735FB15D3970C00F9F7C3 /* ClassTests.cpp in Sources */,
 				4AB735FC15D3971100F9F7C3 /* ConditionTests.cpp in Sources */,
@@ -224,6 +218,7 @@
 		4A90B5E115D2E3E900EF71BC /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				CLANG_CXX_LIBRARY = "libc++";
 				HEADER_SEARCH_PATHS = "../../../single_include/**";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 			};
@@ -232,6 +227,7 @@
 		4A90B5E215D2E3E900EF71BC /* Release */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				CLANG_CXX_LIBRARY = "libc++";
 				HEADER_SEARCH_PATHS = "../../../single_include/**";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 			};
diff --git a/scripts/generateSingleHeader.py b/scripts/generateSingleHeader.py
index 0f7aa9e..839c72c 100644
--- a/scripts/generateSingleHeader.py
+++ b/scripts/generateSingleHeader.py
@@ -26,125 +26,126 @@
 includeImpl = True
 
 for arg in sys.argv[1:]:
-	arg = string.lower(arg)
-	if arg == "nobump":
-		bumpVersion = False
-		print "Not bumping version number"
-	elif arg == "noimpl":
-		includeImpl = False
-		bumpVersion = False
-		print "Not including impl code (and not bumping version)"
-	else:
-		print "\n** Unrecognised argument: " + arg + " **\n"
-		exit(1)
+    arg = string.lower(arg)
+    if arg == "nobump":
+        bumpVersion = False
+        print "Not bumping version number"
+    elif arg == "noimpl":
+        includeImpl = False
+        bumpVersion = False
+        print "Not including impl code (and not bumping version)"
+    else:
+        print "\n** Unrecognised argument: " + arg + " **\n"
+        exit(1)
 
 out = open( outputPath, 'w' )
 ifdefs = 0
 implIfDefs = -1
 
 def write( line ):
-	if includeImpl or implIfDefs == -1:
-		out.write( line )
+    if includeImpl or implIfDefs == -1:
+        out.write( line )
 
 def parseFile( path, filename ):
-	global ifdefs
-	global implIfDefs
+    global ifdefs
+    global implIfDefs
 
-	f = open( path + filename, 'r' )
-	blanks = 0
-	for line in f:
-		if ifParser.match( line ):
-			ifdefs = ifdefs + 1
-		elif endIfParser.match( line ):
-			ifdefs = ifdefs - 1
-		m = includesParser.match( line )
-		if m:
-			header = m.group(1)
-			headerPath, sep, headerFile = header.rpartition( "/" )
-			if not headerFile in seenHeaders:
-				seenHeaders.add( headerFile )
-				write( "// #included from: {0}\n".format( header ) )
-				if( headerPath == "internal" and path.endswith( "internal/" ) ):
-					headerPath = ""
-					sep = ""
-				if os.path.exists( path + headerPath + sep + headerFile ):
-					parseFile( path + headerPath + sep, headerFile )
-				else:
-					parseFile( rootPath + headerPath + sep, headerFile )
-		elif ifImplParser.match(line):
-			implIfDefs = ifdefs
-		elif (not guardParser.match( line ) or defineParser.match( line ) ) and not commentParser1.match( line )and not commentParser2.match( line ):
-			if blankParser.match( line ):
-				blanks = blanks + 1
-			else:
-				blanks = 0
-			if blanks < 2:
-				write( line.rstrip() + "\n" )
+    f = open( path + filename, 'r' )
+    blanks = 0
+    for line in f:
+        if ifParser.match( line ):
+            ifdefs = ifdefs + 1
+        elif endIfParser.match( line ):
+            ifdefs = ifdefs - 1
+        m = includesParser.match( line )
+        if m:
+            header = m.group(1)
+            headerPath, sep, headerFile = header.rpartition( "/" )
+            if not headerFile in seenHeaders:
+                seenHeaders.add( headerFile )
+                write( "// #included from: {0}\n".format( header ) )
+                if( headerPath == "internal" and path.endswith( "internal/" ) ):
+                    headerPath = ""
+                    sep = ""
+                if os.path.exists( path + headerPath + sep + headerFile ):
+                    parseFile( path + headerPath + sep, headerFile )
+                else:
+                    parseFile( rootPath + headerPath + sep, headerFile )
+        else:
+            if ifImplParser.match(line):
+                implIfDefs = ifdefs
+            if (not guardParser.match( line ) or defineParser.match( line ) ) and not commentParser1.match( line )and not commentParser2.match( line ):
+                if blankParser.match( line ):
+                    blanks = blanks + 1
+                else:
+                    blanks = 0
+                if blanks < 2:
+                    write( line.rstrip() + "\n" )
 
 class Version:
-	def __init__(self):
-		f = open( versionPath, 'r' )
-		for line in f:
-			m = versionParser.match( line )
-			if m:
-				self.variableDecl = m.group(1)
-				self.majorVersion = int(m.group(2))
-				self.minorVersion = int(m.group(3))
-				self.buildNumber = int(m.group(4))
-				self.branchName = m.group(5)
-		f.close()
+    def __init__(self):
+        f = open( versionPath, 'r' )
+        for line in f:
+            m = versionParser.match( line )
+            if m:
+                self.variableDecl = m.group(1)
+                self.majorVersion = int(m.group(2))
+                self.minorVersion = int(m.group(3))
+                self.buildNumber = int(m.group(4))
+                self.branchName = m.group(5)
+        f.close()
 
-	def incrementBuildNumber(self):
-		self.buildNumber = self.buildNumber+1
+    def incrementBuildNumber(self):
+        self.buildNumber = self.buildNumber+1
 
-	def updateVersionFile(self):
-		f = open( versionPath, 'r' )
-		lines = []
-		for line in f:
-			m = versionParser.match( line )
-			if m:
-				lines.append( '{0}( {1}, {2}, {3}, "{4}" );'.format( self.variableDecl, self.majorVersion, self.minorVersion, self.buildNumber, self.branchName ) )
-			else:
-				lines.append( line.rstrip() )
-		f.close()
-		f = open( versionPath, 'w' )
-		for line in lines:
-			f.write( line + "\n" )
+    def updateVersionFile(self):
+        f = open( versionPath, 'r' )
+        lines = []
+        for line in f:
+            m = versionParser.match( line )
+            if m:
+                lines.append( '{0}( {1}, {2}, {3}, "{4}" );'.format( self.variableDecl, self.majorVersion, self.minorVersion, self.buildNumber, self.branchName ) )
+            else:
+                lines.append( line.rstrip() )
+        f.close()
+        f = open( versionPath, 'w' )
+        for line in lines:
+            f.write( line + "\n" )
 
-	def updateReadmeFile(self):
-		f = open( readmePath, 'r' )
-		lines = []
-		for line in f:
-			lines.append( line.rstrip() )
-		f.close()
-		f = open( readmePath, 'w' )
-		for line in lines:
-			if line.startswith( "*v" ):
-				f.write( '*v{0}.{1} build {2} ({3} branch)*\n'.format( self.majorVersion, self.minorVersion, self.buildNumber, self.branchName ) )
-			else:
-				f.write( line + "\n" )
+    def updateReadmeFile(self):
+        f = open( readmePath, 'r' )
+        lines = []
+        for line in f:
+            lines.append( line.rstrip() )
+        f.close()
+        f = open( readmePath, 'w' )
+        for line in lines:
+            if line.startswith( "*v" ):
+                f.write( '*v{0}.{1} build {2} ({3} branch)*\n'.format( self.majorVersion, self.minorVersion, self.buildNumber, self.branchName ) )
+            else:
+                f.write( line + "\n" )
 
 def generateSingleInclude():
-	v = Version()
-	if bumpVersion:
-		v.incrementBuildNumber()
-		v.updateVersionFile()
-		v.updateReadmeFile()
-	out.write( "/*\n" )
-	out.write( " *  CATCH v{0}.{1} build {2} ({3} branch)\n".format( v.majorVersion, v.minorVersion, v.buildNumber, v.branchName ) )
-	out.write( " *  Generated: {0}\n".format( datetime.datetime.now() ) )
-	out.write( " *  ----------------------------------------------------------\n" )
-	out.write( " *  This file has been merged from multiple headers. Please don't edit it directly\n" )
-	out.write( " *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.\n" )
-	out.write( " *\n" )
-	out.write( " *  Distributed under the Boost Software License, Version 1.0. (See accompanying\n" )
-	out.write( " *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n" )
-	out.write( " */\n" )
-	out.write( "#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" )
-	out.write( "#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" )
-	
-	parseFile( rootPath, 'catch.hpp' )
-	
-	out.write( "#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n\n" )
+    v = Version()
+    if bumpVersion:
+        v.incrementBuildNumber()
+        v.updateVersionFile()
+        v.updateReadmeFile()
+    out.write( "/*\n" )
+    out.write( " *  CATCH v{0}.{1} build {2} ({3} branch)\n".format( v.majorVersion, v.minorVersion, v.buildNumber, v.branchName ) )
+    out.write( " *  Generated: {0}\n".format( datetime.datetime.now() ) )
+    out.write( " *  ----------------------------------------------------------\n" )
+    out.write( " *  This file has been merged from multiple headers. Please don't edit it directly\n" )
+    out.write( " *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.\n" )
+    out.write( " *\n" )
+    out.write( " *  Distributed under the Boost Software License, Version 1.0. (See accompanying\n" )
+    out.write( " *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n" )
+    out.write( " */\n" )
+    out.write( "#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" )
+    out.write( "#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" )
+    
+    parseFile( rootPath, 'catch.hpp' )
+    
+    out.write( "#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n\n" )
 
 generateSingleInclude()
diff --git a/single_include/catch.hpp b/single_include/catch.hpp
index 86385c6..f192075 100644
--- a/single_include/catch.hpp
+++ b/single_include/catch.hpp
@@ -1,6 +1,6 @@
 /*
- *  CATCH v1.0 build 15 (master branch)
- *  Generated: 2013-12-03 18:52:51.480072
+ *  CATCH v1.0 build 16 (master branch)
+ *  Generated: 2013-12-04 20:23:35.145591
  *  ----------------------------------------------------------
  *  This file has been merged from multiple headers. Please don't edit it directly
  *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
@@ -178,7 +178,7 @@
     struct SourceLineInfo {
 
         SourceLineInfo();
-        SourceLineInfo( std::string const& _file, std::size_t _line );
+        SourceLineInfo( char const* _file, std::size_t _line );
         SourceLineInfo( SourceLineInfo const& other );
         bool empty() const;
         bool operator == ( SourceLineInfo const& other ) const;
@@ -2591,6 +2591,7 @@
 
 #endif
 
+#if defined( CATCH_CONFIG_MAIN ) || defined( CATCH_CONFIG_RUNNER )
 // #included from: internal/catch_impl.hpp
 #define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
 
@@ -5786,6 +5787,10 @@
         if( tags.find( "hide" ) != tags.end() || tags.find( "." ) != tags.end() )
             isHidden = true;
 
+        if( isHidden ) {
+            tags.insert( "hide" );
+            tags.insert( "." );
+        }
         TestCaseInfo info( _name, _className, desc, tags, isHidden, _lineInfo );
         return TestCase( _testCase, info );
     }
@@ -6134,7 +6139,7 @@
 namespace Catch {
 
     // These numbers are maintained by a script
-    Version libraryVersion( 1, 0, 15, "master" );
+    Version libraryVersion( 1, 0, 16, "master" );
 }
 
 // #included from: catch_text.hpp
@@ -6473,7 +6478,7 @@
     }
 
     SourceLineInfo::SourceLineInfo() : line( 0 ){}
-    SourceLineInfo::SourceLineInfo( std::string const& _file, std::size_t _line )
+    SourceLineInfo::SourceLineInfo( char const* _file, std::size_t _line )
     :   file( _file ),
         line( _line )
     {}
@@ -7866,6 +7871,7 @@
 
 #endif // CATCH_CONFIG_MAIN || CATCH_CONFIG_RUNNER
 
+#ifdef CATCH_CONFIG_MAIN
 // #included from: internal/catch_default_main.hpp
 #define TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED