2000-11-10 Derry Bryson * Fixed memory leak caused by some calling xbString::ctor(). xbString::ctor() is now protected so this shouldn't happen in the future :) * Fixed error in expression processing where a node was being used after being deleted! * Many changes and additions to support compilation under Windows ------------------------------------------------------------------------------- Fri May 29, 2000 See NEWS file for changes. ------------------------------------------------------------------------------- The following is the contents of the original ChangeLog from xBase1.8.1 ------------------------------------------------------------------------------- Fri Mar 19 15:25:43 1999 Vitaly V. Fedrushkov * all includes moved to xbase/ * xbase/xbase.cpp (xbXBase): free(NULL) prevented * xbase/xbexcept.cpp (xbStrError): unreachable return fixed 1999-02-27 Gary Kunkel * created release 1.8.0b, mainly 1999-02-16 Vitaly V Fedrushkov * bin/dbfutil1.cpp, bin/dumpdbt.cpp, examples/sample3.cpp, examples/sample2.cpp: depends on XB_MEMO_FIELDS 1999-02-15 Vitaly V Fedrushkov * xbase/dbf.cpp (PackDatafiles): didn't compile without XB_MEMO_FIELDS * examples/testhtml.cpp: depends on XB_HTML * xbase/dbf.h: DumpHeader() depends on XBASE_DEBUG * bin/dbfutil1.cpp, bin/dumpdbt.cpp, bin/dumphdr.cpp, bin/checkndx.cpp: depends on XBASE_DEBUG * xbase/index.h, xbase/ndx.h, xbase/ntx.h: CheckIndexIntegrity depends on XBASE_DEBUG * configure.in: NTX support auto-configuration added fixed a bug which turned on castellano together with exceptions * xbase/lock.cpp, xbase/dbf.h: got rid of __XBDOS in favor of HAVE_FCNTL * acconfig.h: xbconfig.h.bot moved here (XB_INDEX_ANY): new define based on either XB_INDEX_NDX or XB_INDEX_NTX (XB_EXPRESSIONS): moved from xbase.h * xbase/lock.cpp, xbase/xbase.h, xbase/dbf.cpp, xbase/dbf.h: XB_INDEX_ANY used to include format-independent index processing code * xbase/index.h (class xbIndex): fixed 'const' mismatches at some declarations DumpXxx methods depend on XBASE_DEBUG * xbase/xbase.h: XB_EXPRESSIONS auto-inclusion logic moved to xbconfig.h 1999-02-14 Vitaly V Fedrushkov * xbase/index.cpp: excess #includes removed * xbase/xbcf_b32.h: New. Settings for Borland C++ 4.5. Must be copied to xbconfig.h before compilation. * xbase/xdate.h, xbase/xbexcept.h, xbase/xbase.h, xbase/html.h, xbase/stack.cpp, xbase/dbf.h, xbase/exp.h: options.h changed to xbconfig.h * xbase/options.h: Rewritten. Now contains only user-selectable options. All the rest gets set in xbconfig.h. From now on, options.h is consulted only via hand-made xbconfig.h. * xbase/xbstring.h: xbconfig.h included * xbase/ntx.cpp: added check for unistd.h. Anyone know its purpose here? * xbase/lock.cpp: HAVE_SYS_TYPES_H typo (LockIndex): unrenamed symbol SEEK_ERROR? Already had it fixed and committed, how did it survive... * xbase/html.cpp (Tally): Did not work without fcntl(). Workaround effectively disables locking support even with XB_LOCKING_ON * xbase/memo.cpp (CreateMemoFile), xbase/fields.cpp (GetField): (const char*) to (char*) cast fix * xbase/lock.cpp (LockIndex) xbase/exp.cpp (LoadExpNode) xbase/fields.cpp (GetField) xbase/index.h (class xbIndex) xbase/xbase.cpp (PutShort, PutLong, PutUShort, PutULong, PutDouble) xbase/dbf.h: fixed 'const' mismatches at some declarations 1999-02-13 Vitaly V Fedrushkov * xbase/dbf.cpp (OpenDatabase): Hexcode used instead of 8-bit char for Version * xbase/dbf.h: Ditto * bin/dbfutil1.cpp (ConvertDatabase): Uninitialized pointer fixed * bin/dumpdbt.cpp (main): '#endif XB_LOCKING_ON' fixed * xbase/expfunc.cpp (DESCEND): fixed an OCR-like typo that made DESCEND() useless. 1999-02-11 Vitaly V Fedrushkov * xbase/Makefile.am (libxbase_la_LDFLAGS): CURRENT version number incremented to reflect interface changes * tv/Makefile.am (tvxbase_SOURCES): header file was missing from distribution * Makefile.cvs (all): Fixed a bug that made 'configure' missing from 'make dist' tarball. * Makefile.am, */Makefile.am (MAINTAINERCLEANFILES): All auto-generated files are subject to 'make maintainer-clean', which should now reduce all directories to their CVS contents. 1999-02-11 Vitaly V Fedrushkov * Makefile.am (EXTRA_DIST): COPYING.LIB instead of COPYING.GPL 1999-02-08 Vitaly V Fedrushkov * html/Makefile.am: new file; HTML docs are now subject to `make dist` * Makefile.am (SUBDIRS): html added * configure.in: html/Makefile added 1999-02-08 Bob Cotton dbf.cpp fields.cpp - Added a configurable instance variable, EofChar. Defaults to "\x0D\x1A". - Added SetEofChar() - Added Clipper .NTX support. - Abstracted all referneces from ndx to index. - Added support for Clipper and FoxPro character fields longer then 255 characters. Determined by a char field and a decimal field > 0. - Added LongFieldLen to Schema to represent this. - Fix for incrementing CurRec on an AppendRecord(). - Fix in dump record to handle large fields exp.cpp and expfunc.cpp - Added DESCEND(). Only works for dates. - Added DTOS(). Date to string. - Added RECNO() returns the current record number. - Added 2 and 3 parameter versions of STR() - Added STRZERO() - Small expression parsing fix expproc.cpp - Added support for quoted strings in expressions. ndx.cpp - Changed NodeLink to NdxNodeLink - Moved common instance variables to index.cpp xbase.cpp - Added GetULong(), PutUShort(), PutULong(). Not sure if they're necessary. New Files index.cpp Index Base class for ndx and ntx classes index.h ntx.cpp Clipper NTX class. ntx.h To Do: - Some methods are almost identical in ntx.cpp and ndx.cpp. These could be moved to index.cpp. 1999-02-05 Vitaly V Fedrushkov * xbase/lock.cpp (LockIndex): unrenamed symbol Some HAVE_EXCEPTIONS cleanup: * xbase/dbf.cpp (CreateDatabase, OpenDatabase, AddNdxToIxList): xb_memory_error applied (GetNextRecord, GetPrevRecord): xb_eof_error applied * xbase/expproc.cpp (ProcessOperator): xb_memory_error applied * xbase/memo.cpp (CreateMemoFile): xb_memory_error applied * xbase/ndx.cpp (UncloneNodeChain, CreateIndex, AddKey): xb_memory_error applied (GetNextKey, GetPrevKey): xb_eof_error applied * xbase/xbase.cpp: xbexcept.h included unconditionally (AddDbfToDbfList): xb_memory_error applied * xbase/xbexcept.h: xbStrError() prototype * xbase/xbexcept.cpp (xbStrError): moved outside HAVE_EXCEPTIONS. It is useful anyway. egcs warnings fixes: * xbase/xbase.h (xbXBase::xbXBase): Redundant scope qualifier removed * xbase/xstack.h (xbStack::xbStack): Redundant scope qualifier removed * xbase/exp.h(class xbExpn): Token( void ) removed. Not seen anywhere else. 1999-02-02 Vitaly V Fedrushkov * html/Makefile.am: new file; HTML docs are now subject to `make dist` * Makefile.am (SUBDIRS): html added * configure.in: html/Makefile added 1999-02-01 Vitaly V Fedrushkov DTOS() function from Clipper added: * xbase/expfunc.cpp (DTOS): new function (ProcessFunction): DTOS() function added * xbase/exp.h: DTOS() function added This Page Last Updated 2/2/99 Format of page changed 2/2/99 to try to match GNU format If you make changes/updates to the library, please note them in here with the date, your name and email address. 2/2/99 - V1.8.0a 1999-01-29 Vitaly V Fedrushkov * xbase/Makefile.am (include_HEADERS): xbconfig.h was missing * xbase/exp.cpp (IsSeparator): was misspelled * xbase/lock.cpp (LockIndex): SEEK_ERROR renamed * xbase/ndx.h: NO_ERROR renamed * xbase/dbf.h: NO_ERROR renamed * bin/Xb2cpp.pl: NO_ERROR renamed * xbase/exp.h (struct FuncDtl): renamed to xbFuncDtl * xbase/exp.cpp (xbExpn): FuncDtl renamed * xbase/xdate.h (FMT_XXXX): renamed to XB_FMT_XXXX * xbase/dbf.cpp: FMT_XXXX renamed * xbase/xdate.cpp: FMT_XXXX renamed * xbase/expfunc.cpp (DAY, DOW): FMT_XXXX renamed * examples/testdate.cpp (main): FMT_XXXX renamed * xbase/ndx.h (NDX_NODE_SIZE): renamed to XB_NDX_NODE_SIZE * xbase/ndx.cpp: NDX_NODE_SIZE renamed * xbase/lock.cpp (LockIndex): NDX_NODE_SIZE renamed * xbase/options.h: protective define renamed to __XB_OPTIONS_H__ * xbase/ndx.h: protective define renamed to __XB_NDX_H__ * xbase/retcodes.h: protective define renamed to __XB_RETCODES_H__ (XB_OK): alias to XB_NO_ERROR * AUTHORS: Bob Cotton's email was misspelled - old style ChangeLog follows - Exception support - Denis Pershin - autoconf and automake support - Denis Pershin - fix to TRIM - Michael Bedward - added xbString support - several authors - fix to CreateDatabase for memo field size - always = 10 - Added method xbXBase::DisplayError() 10/27/98 - V1.7.4d - Continued modifications to use const where applicable - Fixes to memo fields - Dbase IV version - always end with 0x1a, 0x1a - Dbase III version - header not updated by BDE-compatability fix - Fixed library to compile when MEMO_FIELDS unvalued - Look at DBF file to determine version, not DBT file 10/26/98 - V1.7.4c - Added fix to NDX module for big endian machines - Updated PackDatabase routine to not lock non-existent memo files - Updated PackDatabase routine to create temp files in same directory as file to be packed - Converted gcvt calls to sprintf calls for enhanced portability - Renamed types.h to xtypes.h for compatibility reasons - Renamed stack.h to xstakc.h for compatibility reasons - Added fix to NDX which was related to NDX not updated on revise - Added additional expression function RECNO() - Installed portability fix in PutFloatField - autoconf support added - Denis Pershin - updates to us const CHAR * where possible - Denis Pershin 6/9/98 - V1.7.4b - Added methods DBF::CalcCheckSum(), HTML::PrintEncodedChar and PrintEncodedString() - Fixed bug in HTML::DeleteEscChars - Fixed memory leak encountered when closing database - General code cleanup - Fix to CopyDbfStructure - Changed date defines WEEK,MONTH and YEAR to FMT_WEEK,FMT_MONTH and FMT_YEAR due to conflicts with the expression logic - Changed define type in CreateDatabase - Changed define type XFLOAT to FLOAT - Alpha release of expression logic routines 6/3/98 - V1.7.3 - Added methods DBF::Zap(), DBF::DeleteAllRecords(), DBF::UndeleteAllRecords(), DBF::RebuildAllIndices() and DBF::CopyDbfStructure() 5/25/98 - V1.7.1 - Fix in NDX::GetPrevRecord when skipping previous to first record - Added support for Big Endian computers (Intel is Little Endian) - renamed HTML::EndPage to HTML::EndHtmlPage - modified HTML::StartHtmlPage to include and title - Added methods DBF::ValidLogicalData and DBF::ValidNumericData - Add Dbase III compatible memo field support 4/15/98 - V1.6b - Numeric key index support - Added field methods GetDoubleField and PutDoubleField - removed ';' from #endif statements in memo.cc and dbf.cc - renamed all .cc files to .cpp files - included notes for compiling with OpenVMS - thanks Jourquin - added record locking enhancements - thanks Michael 4/1/98 - V1.6a - Included beta version for expression support - Multi-field Index Key support - New XBASE Global Level Class for all date and expression functions - Support for non Linux platforms w/ makefiles - Fixed reported bugs - Changed define DEBUG to XBASE_DEBUG due to conflicts when using Xbase DBMS with other libraries - Added "return 0" to the end of SplitLeafNode() in ndx.cc - Fixed SIGSEGV core dump prob when creating index - Changed Status to DbfStatus in dbf.cc and dbf.h to avoid a conflist with Solaris function Status() - Made io.h includes conditional only for DOS compiles in ndx.cc and dbf.cc - Modified version byte in DBF file header to be 83 is memo fields 1/2/98 - V1.5 - Added Dbase IV memo field support - Added field method FieldCount() - Added field method GetFieldName() - Fixed bug in PackDatabase method 12/7/97 - V1.2b - Fixed an unbalanced if statement in the fields.cc logic. 11/20/97 - V1.2 - Updated and added several new methods to the HTML/CGI class. 10/28/97 - V1.05 - Added date method to determine last day of month for given date - Modified PutField method to handle decimal points - Added field methods GetFloatField - Added field methods PutFloatField - Modified PutField method to handle decimal points with floats - Added additional logic to DateIsValid method 10/23/97 - V 1.02 - Added method PackDatabase - Added method ReIndex - Added method KeyExists - Cleaned up ndx.cc source code - Modified header logic to only update counters, not entire node - Added logic to look for last matching key on non-unique indexes to reduce number of node splits 10/15/97 - Release of V 1.0 - Basic DBF and NDX release