File blocxx-gcc47.patch of Package blocxx

Index: src/blocxx/COWReference.hpp
===================================================================
--- src/blocxx/COWReference.hpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/COWReference.hpp	2012-06-06 10:02:19.932170506 +0200
@@ -42,9 +42,32 @@
 #include "blocxx/ReferenceHelpers.hpp"
 #include "blocxx/SafeBool.hpp"
 
+#include <vector>
+#include <list>
+#include <map>
+
 namespace BLOCXX_NAMESPACE
 {
 
+template <class T>
+inline std::vector<T>* COWReferenceClone(std::vector<T>* obj)
+{
+        return new std::vector<T>(*obj);
+}
+
+template <class Key, class T, class Compare>
+std::map<Key, T, Compare>* COWReferenceClone(std::map<Key, T, Compare>* obj)
+{
+        return new std::map<Key, T, Compare>(*obj);
+}
+
+template <class T>
+std::list<T>* COWReferenceClone(std::list<T>* obj)
+{
+        return new std::list<T>(*obj);
+}
+
+
 /**
  * COWReference
  * A smart pointer that uses non-intrusive reference counting. It supports
Index: src/blocxx/List.hpp
===================================================================
--- src/blocxx/List.hpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/List.hpp	2012-06-06 10:02:19.933170458 +0200
@@ -654,11 +654,6 @@ inline void swap(List<T>& x, List<T>& y)
 {
 	x.swap(y);
 }
-template <class T>
-std::list<T>* COWReferenceClone(std::list<T>* obj)
-{
-	return new std::list<T>(*obj);
-}
 
 } // end namespace BLOCXX_NAMESPACE
 
Index: src/blocxx/Map.hpp
===================================================================
--- src/blocxx/Map.hpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/Map.hpp	2012-06-06 10:02:19.933170458 +0200
@@ -230,11 +230,6 @@ public:
 	friend bool operator< <>(const Map<Key, T, Compare>& x,
 		const Map<Key, T, Compare>& y);
 };
-template <class Key, class T, class Compare>
-std::map<Key, T, Compare>* COWReferenceClone(std::map<Key, T, Compare>* obj)
-{
-	return new std::map<Key, T, Compare>(*obj);
-}
 template<class Key, class T, class Compare>
 inline bool operator==(const Map<Key, T, Compare>& x,
 	const Map<Key, T, Compare>& y)
Index: src/blocxx/vector.hpp
===================================================================
--- src/blocxx/vector.hpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/vector.hpp	2012-06-06 10:02:19.933170458 +0200
@@ -46,17 +46,6 @@
 namespace BLOCXX_NAMESPACE
 {
 
-/**
- * The purpose of this header is to only have one definition of this function.  Various classes use 
- * COWReference<std::vector<T> > and thus need this function.
- */
-template <class T>
-inline std::vector<T>* COWReferenceClone(std::vector<T>* obj)
-{
-	return new std::vector<T>(*obj);
-}
-
-
 } // end namespace BLOCXX_NAMESPACE
 
 
Index: src/blocxx/FileSystem.hpp
===================================================================
--- src/blocxx/FileSystem.hpp.orig	2007-10-24 11:04:07.000000000 +0200
+++ src/blocxx/FileSystem.hpp	2012-06-06 10:02:19.933170458 +0200
@@ -49,6 +49,7 @@
 #include "blocxx/GlobalPtr.hpp"
 #endif
 
+#include <unistd.h>
 #include <utility>
 
 #ifdef BLOCXX_HAVE_SYS_PARAM_H
Index: src/blocxx/CerrAppender.cpp
===================================================================
--- src/blocxx/CerrAppender.cpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/CerrAppender.cpp	2012-06-06 10:02:19.934170410 +0200
@@ -97,7 +97,7 @@ CerrAppender::doProcessLogMessage(const
 // const char* resetColor = "\x1b[0;37;40m";
 
 // colorized version: const String CerrAppender::STR_DEFAULT_MESSAGE_PATTERN("\x1b[1;37;40m[\x1b[1;31;40m%-.6t\x1b[1;37;40m]\x1b[1;32;40m %m\x1b[0;37;40m");
-const GlobalString CerrAppender::STR_DEFAULT_MESSAGE_PATTERN = BLOCXX_GLOBAL_STRING_INIT("[%-.6t] %m");
+GlobalString CerrAppender::STR_DEFAULT_MESSAGE_PATTERN = BLOCXX_GLOBAL_STRING_INIT("[%-.6t] %m");
 
 
 } // end namespace BLOCXX_NAMESPACE
Index: src/blocxx/CerrAppender.hpp
===================================================================
--- src/blocxx/CerrAppender.hpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/CerrAppender.hpp	2012-06-06 10:02:19.934170410 +0200
@@ -58,7 +58,7 @@ public:
 		const String& pattern);
 
 	virtual ~CerrAppender();
-	static const GlobalString STR_DEFAULT_MESSAGE_PATTERN;
+	static GlobalString STR_DEFAULT_MESSAGE_PATTERN;
 protected:
 	virtual void doProcessLogMessage(const String& formattedMessage, const LogMessage& message) const;
 
Index: src/blocxx/FileAppender.cpp
===================================================================
--- src/blocxx/FileAppender.cpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/FileAppender.cpp	2012-06-06 10:02:19.934170410 +0200
@@ -162,7 +162,7 @@ FileAppender::doProcessLogMessage(const
 }
 
 /////////////////////////////////////////////////////////////////////////////
-const GlobalString FileAppender::STR_DEFAULT_MESSAGE_PATTERN = BLOCXX_GLOBAL_STRING_INIT("%d{%a %b %d %H:%M:%S %Y} [%t]: %m");
+GlobalString FileAppender::STR_DEFAULT_MESSAGE_PATTERN = BLOCXX_GLOBAL_STRING_INIT("%d{%a %b %d %H:%M:%S %Y} [%t]: %m");
 
 } // end namespace BLOCXX_NAMESPACE
 
Index: src/blocxx/FileAppender.hpp
===================================================================
--- src/blocxx/FileAppender.hpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/FileAppender.hpp	2012-06-06 10:02:19.934170410 +0200
@@ -66,7 +66,7 @@ public:
 		bool flushLog=true);
 	virtual ~FileAppender();
 
-	static const GlobalString STR_DEFAULT_MESSAGE_PATTERN;
+	static GlobalString STR_DEFAULT_MESSAGE_PATTERN;
 
 protected:
 	virtual void doProcessLogMessage(const String& formattedMessage, const LogMessage& message) const;
Index: src/blocxx/LogAppender.cpp
===================================================================
--- src/blocxx/LogAppender.cpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/LogAppender.cpp	2012-06-06 10:02:19.935170363 +0200
@@ -388,14 +388,14 @@ LogAppender::createLogAppender(
 }
 
 //////////////////////////////////////////////////////////////////////////////
-const GlobalStringArray LogAppender::ALL_COMPONENTS = BLOCXX_GLOBAL_STRING_INIT("*");
-const GlobalStringArray LogAppender::ALL_CATEGORIES = BLOCXX_GLOBAL_STRING_INIT("*");
-const GlobalString LogAppender::STR_TTCC_MESSAGE_FORMAT = BLOCXX_GLOBAL_STRING_INIT("%r [%t] %-5p %c - %m");
-const GlobalString LogAppender::TYPE_SYSLOG = BLOCXX_GLOBAL_STRING_INIT("syslog");
-const GlobalString LogAppender::TYPE_STDERR = BLOCXX_GLOBAL_STRING_INIT("stderr");
-const GlobalString LogAppender::TYPE_FILE = BLOCXX_GLOBAL_STRING_INIT("file");
-const GlobalString LogAppender::TYPE_MPFILE = BLOCXX_GLOBAL_STRING_INIT("mpfile");
-const GlobalString LogAppender::TYPE_NULL = BLOCXX_GLOBAL_STRING_INIT("null");
+GlobalStringArray LogAppender::ALL_COMPONENTS = BLOCXX_GLOBAL_STRING_INIT("*");
+GlobalStringArray LogAppender::ALL_CATEGORIES = BLOCXX_GLOBAL_STRING_INIT("*");
+GlobalString LogAppender::STR_TTCC_MESSAGE_FORMAT = BLOCXX_GLOBAL_STRING_INIT("%r [%t] %-5p %c - %m");
+GlobalString LogAppender::TYPE_SYSLOG = BLOCXX_GLOBAL_STRING_INIT("syslog");
+GlobalString LogAppender::TYPE_STDERR = BLOCXX_GLOBAL_STRING_INIT("stderr");
+GlobalString LogAppender::TYPE_FILE = BLOCXX_GLOBAL_STRING_INIT("file");
+GlobalString LogAppender::TYPE_MPFILE = BLOCXX_GLOBAL_STRING_INIT("mpfile");
+GlobalString LogAppender::TYPE_NULL = BLOCXX_GLOBAL_STRING_INIT("null");
 
 //////////////////////////////////////////////////////////////////////////////
 LogAppender::LogAppender(const StringArray& components, const StringArray& categories, const String& pattern)
Index: src/blocxx/LogAppender.hpp
===================================================================
--- src/blocxx/LogAppender.hpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/LogAppender.hpp	2012-06-06 10:02:19.935170363 +0200
@@ -150,22 +150,22 @@ public:
 		const LoggerConfigMap& configItems);
 
 	/// Pass to createLogAppender to indicate all components.
-	static const GlobalStringArray ALL_COMPONENTS;
+	static GlobalStringArray ALL_COMPONENTS;
 	/// Pass to createLogAppender to indicate all categories.
-	static const GlobalStringArray ALL_CATEGORIES;
+	static GlobalStringArray ALL_CATEGORIES;
 	/// The Log4j TTCC message format - TTCC is acronym for Time Thread Category Component.
 	/// "%r [%t] %-5p %c - %m"
-	static const GlobalString STR_TTCC_MESSAGE_FORMAT;
+	static GlobalString STR_TTCC_MESSAGE_FORMAT;
 	/// String of the type of the syslog log appender
-	static const GlobalString TYPE_SYSLOG;
+	static GlobalString TYPE_SYSLOG;
 	/// String of the type of the stderr log appender
-	static const GlobalString TYPE_STDERR;
+	static GlobalString TYPE_STDERR;
 	/// String of the type of the file log appender
-	static const GlobalString TYPE_FILE;
+	static GlobalString TYPE_FILE;
 	/// String of the type of the multi-process file log appender
-	static const GlobalString TYPE_MPFILE;
+	static GlobalString TYPE_MPFILE;
 	/// String of the type of the null log appender
-	static const GlobalString TYPE_NULL;
+	static GlobalString TYPE_NULL;
 
 protected:
 
Index: src/blocxx/Logger.cpp
===================================================================
--- src/blocxx/Logger.cpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/Logger.cpp	2012-06-06 10:02:19.935170363 +0200
@@ -51,16 +51,16 @@ namespace BLOCXX_NAMESPACE
 
 BLOCXX_DEFINE_EXCEPTION_WITH_ID(Logger);
 
-const GlobalString Logger::STR_NONE_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("NONE");
-const GlobalString Logger::STR_FATAL_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("FATAL");
-const GlobalString Logger::STR_ERROR_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("ERROR");
-const GlobalString Logger::STR_WARNING_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("WARNING");
-const GlobalString Logger::STR_INFO_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("INFO");
-const GlobalString Logger::STR_DEBUG_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("DEBUG");
-const GlobalString Logger::STR_DEBUG2_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("DEBUG2");
-const GlobalString Logger::STR_DEBUG3_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("DEBUG3");
-const GlobalString Logger::STR_ALL_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("ALL");
-const GlobalString Logger::STR_DEFAULT_COMPONENT = BLOCXX_GLOBAL_STRING_INIT("none");
+GlobalString Logger::STR_NONE_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("NONE");
+GlobalString Logger::STR_FATAL_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("FATAL");
+GlobalString Logger::STR_ERROR_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("ERROR");
+GlobalString Logger::STR_WARNING_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("WARNING");
+GlobalString Logger::STR_INFO_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("INFO");
+GlobalString Logger::STR_DEBUG_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("DEBUG");
+GlobalString Logger::STR_DEBUG2_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("DEBUG2");
+GlobalString Logger::STR_DEBUG3_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("DEBUG3");
+GlobalString Logger::STR_ALL_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("ALL");
+GlobalString Logger::STR_DEFAULT_COMPONENT = BLOCXX_GLOBAL_STRING_INIT("none");
 
 //////////////////////////////////////////////////////////////////////////////
 Logger::Logger(const String& defaultComponent, const LogAppenderRef& appender)
Index: src/blocxx/Logger.hpp
===================================================================
--- src/blocxx/Logger.hpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/Logger.hpp	2012-06-06 10:02:19.935170363 +0200
@@ -87,16 +87,16 @@ class BLOCXX_COMMON_API Logger : public
 {
 public:
 
-	static const GlobalString STR_NONE_CATEGORY;
-	static const GlobalString STR_FATAL_CATEGORY;
-	static const GlobalString STR_ERROR_CATEGORY;
-	static const GlobalString STR_WARNING_CATEGORY;
-	static const GlobalString STR_INFO_CATEGORY;
-	static const GlobalString STR_DEBUG_CATEGORY;
-	static const GlobalString STR_DEBUG2_CATEGORY;
-	static const GlobalString STR_DEBUG3_CATEGORY;
-	static const GlobalString STR_ALL_CATEGORY;
-	static const GlobalString STR_DEFAULT_COMPONENT; // "none"
+	static GlobalString STR_NONE_CATEGORY;
+	static GlobalString STR_FATAL_CATEGORY;
+	static GlobalString STR_ERROR_CATEGORY;
+	static GlobalString STR_WARNING_CATEGORY;
+	static GlobalString STR_INFO_CATEGORY;
+	static GlobalString STR_DEBUG_CATEGORY;
+	static GlobalString STR_DEBUG2_CATEGORY;
+	static GlobalString STR_DEBUG3_CATEGORY;
+	static GlobalString STR_ALL_CATEGORY;
+	static GlobalString STR_DEFAULT_COMPONENT; // "none"
 
 	enum ELoggerErrorCodes
 	{
Index: src/blocxx/LogMessagePatternFormatter.cpp
===================================================================
--- src/blocxx/LogMessagePatternFormatter.cpp.orig	2007-11-05 19:42:21.000000000 +0100
+++ src/blocxx/LogMessagePatternFormatter.cpp	2012-06-06 10:02:19.936170317 +0200
@@ -168,7 +168,7 @@ private:
 };
 
 /////////////////////////////////////////////////////////////////////////////
-const GlobalString LogMessagePatternFormatter::STR_DEFAULT_MESSAGE_PATTERN = BLOCXX_GLOBAL_STRING_INIT("%r [%t] %p %c - %m");
+GlobalString LogMessagePatternFormatter::STR_DEFAULT_MESSAGE_PATTERN = BLOCXX_GLOBAL_STRING_INIT("%r [%t] %p %c - %m");
 
 /////////////////////////////////////////////////////////////////////////////
 LogMessagePatternFormatter::~LogMessagePatternFormatter()
Index: src/blocxx/LogMessagePatternFormatter.hpp
===================================================================
--- src/blocxx/LogMessagePatternFormatter.hpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/LogMessagePatternFormatter.hpp	2012-06-06 10:02:19.936170317 +0200
@@ -52,7 +52,7 @@ class BLOCXX_COMMON_API LogMessagePatter
 {
 public:
 
-	static const GlobalString STR_DEFAULT_MESSAGE_PATTERN;
+	static GlobalString STR_DEFAULT_MESSAGE_PATTERN;
 
 	enum EErrorCodes
 	{
Index: src/blocxx/NullAppender.cpp
===================================================================
--- src/blocxx/NullAppender.cpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/NullAppender.cpp	2012-06-06 10:02:19.936170317 +0200
@@ -65,7 +65,7 @@ NullAppender::doProcessLogMessage(const
 {
 }
 
-const GlobalString NullAppender::STR_DEFAULT_MESSAGE_PATTERN = BLOCXX_GLOBAL_STRING_INIT("");
+GlobalString NullAppender::STR_DEFAULT_MESSAGE_PATTERN = BLOCXX_GLOBAL_STRING_INIT("");
 
 } // end namespace BLOCXX_NAMESPACE
 
Index: src/blocxx/NullAppender.hpp
===================================================================
--- src/blocxx/NullAppender.hpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/NullAppender.hpp	2012-06-06 10:02:19.936170317 +0200
@@ -57,7 +57,7 @@ public:
 		const String& pattern);
 
 	virtual ~NullAppender();
-	static const GlobalString STR_DEFAULT_MESSAGE_PATTERN;
+	static GlobalString STR_DEFAULT_MESSAGE_PATTERN;
 protected:
 	virtual void doProcessLogMessage(const String& formattedMessage, const LogMessage& message) const;
 };
Index: src/blocxx/SyslogAppender.cpp
===================================================================
--- src/blocxx/SyslogAppender.cpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/SyslogAppender.cpp	2012-06-06 10:02:19.937170271 +0200
@@ -225,7 +225,7 @@ SyslogAppender::doProcessLogMessage(cons
 
 /////////////////////////////////////////////////////////////////////////////
 bool SyslogAppender::calledOpenLog = false;
-const GlobalString SyslogAppender::STR_DEFAULT_MESSAGE_PATTERN = BLOCXX_GLOBAL_STRING_INIT("[%t]%m");
+GlobalString SyslogAppender::STR_DEFAULT_MESSAGE_PATTERN = BLOCXX_GLOBAL_STRING_INIT("[%t]%m");
 
 
 } // end namespace BLOCXX_NAMESPACE
Index: src/blocxx/SyslogAppender.hpp
===================================================================
--- src/blocxx/SyslogAppender.hpp.orig	2007-07-24 09:43:19.000000000 +0200
+++ src/blocxx/SyslogAppender.hpp	2012-06-06 10:02:19.937170271 +0200
@@ -57,7 +57,7 @@ public:
 		const String&      identity,
 		const String&      facility);
 	virtual ~SyslogAppender();
-	static const GlobalString STR_DEFAULT_MESSAGE_PATTERN;
+	static GlobalString STR_DEFAULT_MESSAGE_PATTERN;
 protected:
 	virtual void doProcessLogMessage(const String& formattedMessage, const LogMessage& message) const;
 	static bool calledOpenLog;
Index: src/blocxx/Thread.cpp
===================================================================
--- src/blocxx/Thread.cpp.orig	2007-09-19 08:53:49.000000000 +0200
+++ src/blocxx/Thread.cpp	2012-06-06 10:02:19.937170271 +0200
@@ -69,7 +69,7 @@ BLOCXX_DEFINE_EXCEPTION_WITH_ID(Cancella
 
 namespace
 {
-const GlobalString COMPONENT_NAME = BLOCXX_GLOBAL_STRING_INIT("blocxx");
+GlobalString COMPONENT_NAME = BLOCXX_GLOBAL_STRING_INIT("blocxx");
 
 //////////////////////////////////////////////////////////////////////
 // this is what's really passed to threadRunner