The 2.01 release has a few problems:
- The configure script only works if Tcl is present
Fixed versions are available at:
https://www.equi4.com/previews/configure
https://www.equi4.com/previews/configure.in
- The Mk4tcl builds fails with Tcl 8.0.x, because
the mutex defines are missing. Add to mk4tcl.cpp:
#ifndef TCL_DECLARE_MUTEX
#define TCL_DECLARE_MUTEX(v)
#define Tcl_MutexLock(v)
#define Tcl_MutexUnlock(v)
#endifJuly 22, 2000 - found a problem with restructuring doubles. To fix it, apply the following patch:
--- format.cpp.orig Fri Mar 17 16:57:30 2000
+++ format.cpp Sun Jul 23 00:21:31 2000
@@ -1022,10 +1022,12 @@
c4_FormatD (const c4_Property& prop_, c4_HandlerSeq& seq_);
virtual ~c4_FormatD ();
virtual void Initialize(int);
+ virtual void Defined();
+
static int DoCompare(const c4_Bytes& b1_, const c4_Bytes& b2_);
virtual int Compare(int index_, const c4_Bytes& buf_);
};
/////////////////////////////////////////////////////////////////////////////
@@ -1045,10 +1047,23 @@
c4_FormatX::Initialize(colNum_);
// force maximum size, autosizing more than 32 bits won't work
SetAccessWidth(8 * sizeof (double));
+}
+
+void c4_FormatD::Defined()
+{
+ d4_assertThis;
+
+ int numRows = RowCount();
+ t4_u32 sz = ColSize();
+
+ if (numRows > 0 && sz == 0)
+ InsertData(0, numRows * sizeof (double), true);
+
+ c4_FormatX::Defined();
}
int c4_FormatD::DoCompare(const c4_Bytes& b1_, const c4_Bytes& b2_)
{
d4_assert(b1_.Size() == sizeof (double));