Index: code/branches/buildsystem2/src/cpptcl/CHANGES
===================================================================
--- code/branches/buildsystem2/src/cpptcl/CHANGES	(revision 2600)
+++ code/branches/buildsystem2/src/cpptcl/CHANGES	(revision 2600)
@@ -0,0 +1,46 @@
+This file contains the history of changes in the C++/Tcl library.
+
+---
+The version 1.1.3 differs from 1.1.2 in the following ways:
+
+- A bug in the initialization of interpreter object was fixed.
+
+---
+The version 1.1.2 differs from 1.1.1 in the following ways:
+
+- Copyright was updated to cover 2006.
+
+- Information was added to docs about the usage of the Boost library.
+
+- Few bug fixes were applied to allow empty parameter lists with variadic
+  functions.
+
+---
+The version 1.1.1 differs from 1.1.0 in the following ways:
+
+- Explicit instantiations of some templates were moved to proper namespace.
+
+
+---
+The version 1.1.0 differs from 1.0.0 in the following ways:
+
+- CHANGES file was added.
+
+- LICENSE file was added with clear description of the license terms.
+
+- Copyright was updated to cover 2005.
+
+- Small patch was added to make the code compile on g++ 3.2.
+
+- New assign method was added that accepts Tcl_Obj.
+
+- Overload of interpreter::eval was added that accepts istream& parameter.
+  This allows to evaluate the contents of arbitrary stream
+  (for example, a file).
+
+- Support for package definitions was added.
+
+- Support for const class member functions was added.
+
+- Support for variadic free functions, constructors and class methods
+  was added.
Index: code/branches/buildsystem2/src/cpptcl/CppTcl.cc
===================================================================
--- code/branches/buildsystem2/src/cpptcl/CppTcl.cc	(revision 2599)
+++ code/branches/buildsystem2/src/cpptcl/CppTcl.cc	(revision 2600)
@@ -25,5 +25,5 @@
 {
      Tcl_Obj *obj = Tcl_GetObjResult(interp_);
-
+     
      int val, cc;
      cc = Tcl_GetBooleanFromObj(interp_, obj, &val);
@@ -32,5 +32,5 @@
           throw tcl_error(interp_);
      }
-
+     
      return static_cast<bool>(val);
 }
@@ -39,5 +39,5 @@
 {
      Tcl_Obj *obj = Tcl_GetObjResult(interp_);
-
+     
      double val;
      int cc = Tcl_GetDoubleFromObj(interp_, obj, &val);
@@ -46,5 +46,5 @@
           throw tcl_error(interp_);
      }
-
+     
      return val;
 }
@@ -53,5 +53,5 @@
 {
      Tcl_Obj *obj = Tcl_GetObjResult(interp_);
-
+     
      int val, cc;
      cc = Tcl_GetIntFromObj(interp_, obj, &val);
@@ -60,5 +60,5 @@
           throw tcl_error(interp_);
      }
-
+     
      return val;
 }
@@ -67,5 +67,5 @@
 {
      Tcl_Obj *obj = Tcl_GetObjResult(interp_);
-
+     
      long val;
      int cc;
@@ -75,5 +75,5 @@
           throw tcl_error(interp_);
      }
-
+     
      return val;
 }
@@ -195,5 +195,5 @@
           return false;
      }
-
+     
      piti = pit->second.find(cmdName);
      return piti != pit->second.end();
@@ -284,5 +284,5 @@
           return TCL_ERROR;
      }
-
+     
      string cmdName(Tcl_GetString(objv[0]));
      callback_interp_map::iterator iti = it->second.find(cmdName);
@@ -294,5 +294,5 @@
           return TCL_ERROR;
      }
-
+     
      policies_map::iterator pit = call_policies.find(interp);
      if (pit == call_policies.end())
@@ -303,5 +303,5 @@
           return TCL_ERROR;
      }
-
+     
      policies_interp_map::iterator piti;
      if (find_policies(interp, cmdName, piti) == false)
@@ -314,5 +314,5 @@
 
      policies &pol = piti->second;
-
+     
      try
      {
@@ -331,5 +331,5 @@
           return TCL_ERROR;
      }
-
+     
      return TCL_OK;
 }
@@ -397,5 +397,5 @@
           return TCL_ERROR;
      }
-
+     
      string className(Tcl_GetString(objv[0]));
      callback_interp_map::iterator iti = it->second.find(className);
@@ -407,5 +407,5 @@
           return TCL_ERROR;
      }
-
+     
      policies_interp_map::iterator piti;
      if (find_policies(interp, className, piti) == false)
@@ -904,5 +904,5 @@
           throw tcl_error(interp_);
      }
-
+ 
      return result(interp_);
 }
@@ -924,5 +924,5 @@
           throw tcl_error(interp_);
      }
-
+ 
      return result(interp_);
 }
@@ -1010,5 +1010,5 @@
      Tcl_CreateObjCommand(interp_, name.c_str(),
           callback_handler, 0, 0);
-
+     
      callbacks[interp_][name] = cb;
      call_policies[interp_][name] = p;
@@ -1041,5 +1041,5 @@
           throw tcl_error(interp);
      }
-
+     
      return res;
 }
@@ -1053,5 +1053,5 @@
           throw tcl_error(interp);
      }
-
+     
      return res;
 }
@@ -1065,5 +1065,5 @@
           throw tcl_error(interp);
      }
-
+     
      return res != 0;
 }
@@ -1077,5 +1077,5 @@
           throw tcl_error(interp);
      }
-
+     
      return res;
 }
Index: code/branches/buildsystem2/src/cpptcl/CppTcl.h
===================================================================
--- code/branches/buildsystem2/src/cpptcl/CppTcl.h	(revision 2599)
+++ code/branches/buildsystem2/src/cpptcl/CppTcl.h	(revision 2600)
@@ -70,5 +70,5 @@
 public:
      result(Tcl_Interp *interp);
-
+     
      operator bool() const;
      operator double() const;
@@ -171,5 +171,5 @@
                throw tcl_error("Too few arguments.");
           }
-
+          
           std::string methodName(Tcl_GetString(objv[1]));
 
@@ -471,11 +471,11 @@
      interpreter(Tcl_Interp *, bool owner = true);
      ~interpreter();
-
+     
      void make_safe();
-
+     
      Tcl_Interp * get() const { return interp_; }
 
-     // free function definitions
-
+     // free function definitions     
+     
      template <typename R>
      void def(std::string const &name, R (*f)(),
@@ -634,5 +634,5 @@
      }
 
-     // free script evaluation
+     // free script evaluation     
      details::result eval(std::string const &script);
      details::result eval(std::istream &s);
@@ -838,5 +838,5 @@
           throw tcl_error(interp_);
      }
-
+ 
      return details::result(interp_);
 }
Index: code/branches/buildsystem2/src/cpptcl/changes_orxonox.diff
===================================================================
--- code/branches/buildsystem2/src/cpptcl/changes_orxonox.diff	(revision 2600)
+++ code/branches/buildsystem2/src/cpptcl/changes_orxonox.diff	(revision 2600)
@@ -0,0 +1,42 @@
+--- cpptcl.cc	Wed Jan 28 20:56:06 2009
++++ cpptcl.cc	Sat Jan 24 12:52:54 2009
+@@ -858,6 +858,18 @@
+      owner_ = true;
+ }
+ 
++interpreter::interpreter(string const &libpath)
++{
++     interp_ =  Tcl_CreateInterp();
++     owner_ = true;
++
++     try
++     {
++        this->eval("set tcl_library " + libpath);
++        Tcl_Init(this->interp_);
++     } catch (...) {}
++}
++
+ interpreter::interpreter(Tcl_Interp *interp, bool owner)
+ {
+      interp_ =  interp;
+@@ -940,6 +952,10 @@
+      // delete all callbacks that were registered for given interpreter
+ 
+      {
++          // TODO: why could this probably be necessary? map::find of empty map
++          // shouldn't be a problem.
++          if (callbacks.size() == 0)
++            return;
+           callback_map::iterator it = callbacks.find(interp);
+           if (it == callbacks.end())
+           {
+--- cpptcl.h	Wed Jan 28 20:56:11 2009
++++ cpptcl.h	Sat Jan 24 12:52:54 2009
+@@ -467,6 +467,7 @@
+ {
+ public:
+      interpreter();
++     interpreter(std::string const &libpath);
+      interpreter(Tcl_Interp *, bool owner = true);
+      ~interpreter();
+      
