Contents |
Current Releases |
November 17, 2002 - DataReel version 4.2.1 Beta
Previous Releases |
June 5, 2002 - DataReel version 4.2.0 Beta
August 23, 2001 - DataReel version 4.1
August 21, 2001 - DataReel version 4.0 library kits
June 27, 2001 - DataReel version 4.0
Include File changes |
asprint.h ============================================================== 03/11/2002: Users now have the option to use the ANSI Standard C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. By default the old iostream library will be used for all iostream operations. ============================================================== btnode.h ============================================================== 02/08/2002: All B-tree node functions using non-persistent file address units have been modified to use FAU_t data types instead of FAU types. FAU_t types are native or built-in integer types and require no additional overhead to process. All persistent file address units still use the FAU integer type, which is a platform independent type allowing database files to be shared across multiple platforms. ============================================================== bstreei.h ============================================================== No Changes ============================================================== btcache.h ============================================================== Empty file - Placeholder for future B-tree cache classes. ============================================================== btnode.h ============================================================== 02/08/2002: All B-tree node functions using non-persistent file address units have been modified to use FAU_t data types instead of FAU types. FAU_t types are native or built-in integer types and require no additional overhead to process. All persistent file address units still use the FAU integer type, which is a platform independent type allowing database files to be shared across multiple platforms. ============================================================== btstack.h ============================================================== 02/08/2002: All B-tree stack functions using non-persistent file address units have been modified to use FAU_t data types instead of FAU types. FAU_t types are native or built-in integer types and require no additional overhead to process. All persistent file address units still use the FAU integer type, which is a platform independent type allowing database files to be shared across multiple platforms. ============================================================== cdate.h ============================================================== 03/11/2002: By default C++ iostreams are no longer used. In order to use the iostream functions built into this class users must define __USE_CPP_IOSTREAM__ preprocessor directive. When using C++ iostreams users have the option to use the ANSI Standard C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. By default the old iostream library will be used when the __USE_CPP_IOSTREAM__ directive is defined. ============================================================== dbasekey.h ============================================================== 11/05/2001: Added single comparison method to DatabaseKeyB class. To use a single compare instead of the greater then and equal to operators define the __USE_SINGLE_COMPARE__ preprocessor directive when compiling. NOTE: If a dual comparison is used the derived class must override the pure virtual greater than and equal to operators declared in the DatabaseKeyB base class. If the a single comparison method is used the derived class must override the pure virtual DatabaseKeyB::CompareKey() function with return values of: -1 less than, 0 equal to, 1 greater than. ============================================================== dbfcache.h ============================================================== Experimental database cache classes added in version 4.2. ============================================================== devcache.h ============================================================== No changes ============================================================== devtypes.h ============================================================== No changes ============================================================== dfileb.h ============================================================== 03/10/2002: The DiskFileB class no longer uses the C++ fstream class as the underlying file system. The gxDatabase file pointer routines are now used to define the underlying file system used by the DiskFileB class. This change was made to support large files and NTFS file system enhancements for non-database applications. 03/10/2002: The DiskFileB class now includes a full compliment of << and >> overloads used to insert and extract integers, floating points, strings, and characters types. 03/10/2002: Added the bin, text, hex, dec, flush, and clear DiskFileB class I/O manipulator functions used to format I/O within an I/O statement. 03/24/2002: Added the DiskFileB::df_gcount() and df_pcount() process control functions used to return the total number of bytes following read and write operations. ============================================================== eds101.h ============================================================== No changes ============================================================== eds201.h ============================================================== No changes ============================================================== edscfg.h ============================================================== 02/08/2002: All EDS Config functions using non-persistent file address units have been modified to use FAU_t data types instead of FAU types. FAU_t types are native or built-in integer types and require no additional overhead to process. All persistent file address units still use the FAU integer type, which is a platform independent type allowing database files to be shared across multiple platforms. 10/13/2002: Remove all function with non-const char * type arguments. ============================================================== edst101.h ============================================================== No changes ============================================================== ehandler.h ============================================================== No changes ============================================================== fstring.h ============================================================== 07/24/2001: Changed include path for the strutil.h include file from <strutil.h> to "strutil.h" 03/11/2002: By default C++ iostreams are no longer used. In order to use the iostream functions built into this class users must define __USE_CPP_IOSTREAM__ preprocessor directive. When using C++ iostreams users have the option to use the ANSI Standard C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. By default the old iostream library will be used when the __USE_CPP_IOSTREAM__ directive is defined. 05/05/2002: Modified the FString default constructor to clear all the bytes in a string when a FString object is constructed. 10/13/2002: Removed the following conversion function from the FString class due to excessive compiler warning under Linux: operator const int () const { return sptr[0] != 0; } 10/13/2002: Removed the following conversion function to avoid having FString objects being automatically converted to int types: operator int () { return ((sptr != 0) && (s_length != 0)); } 10/13/2002: Added the FString::is_not_null() function to replace the int conversion function. NOTE: The FString class no longer has any conversion functions. ============================================================== futils.h ============================================================== 03/11/2002: Added large file support for the futils_filelength() function. Also, the file length function now takes the string file name instead of an int type representing an open file handle. 08/12/2002: Added the "dirent *entry = 0" parameter to the futils_readdir() function to support thread safe readdir calls under UNIX. 10/17/2002: Added the futils_chmod(const char *fname, const char *mode_str) function used to set file permission under UNIX. ============================================================== gpersist.h ============================================================== 02/08/2002: All gxPersistent functions using non-persistent file address units have been modified to use FAU_t data types instead of FAU types. FAU_t types are native or built-in integer types and require no additional overhead to process. All persistent file address units still use the FAU integer type, which is a platform independent type allowing database files to be shared across multiple platforms. NOTE: This change was not applied to any pure virtual functions. 02/22/2002: Changed default arguments for all functions using the "flush" and "test_tree" variables to false. The caller or derived class must perform file flushing and tree testing as required by the application. 05/07/2002: Added the gxPersistent::Flush() function used by applications to flush the POD database. 05/07/2002: Added the gxPersistent::TestDatabase() function used by applications to test the POD database. 05/07/2002: Added the gxPersistent::GetDatabase() function used to return the current POD database an object is bound to. ============================================================== gthreadt.h ============================================================== No changes ============================================================== gxbstree.h ============================================================== 03/24/2002: Added the Release() synchronization function. The release function is used to signal to the class destructor not to delete the tree when an object is deleted or no longer visible. ============================================================== gxbtree.h ============================================================== 08/08/2001: Added gxBtree::PartialFind() function used to find a key equal to or greater then the specified key even if the specified key does not exist in the B-tree. 08/17/2001: Added the following optimized un-cached sort order search and positioning functions: gxBtree::FindLast(), gxBtree::FindFirst(), gxBtree::PartialFind(), gxBtree::Find(), gxBtree::FindNext(), gxBtree::FindPrev(). 08/17/2001: Added the following functions and data members used for B-tree tuning statistics: gxBtree::ResetStats(), gxBtree::node_writes, gxBtree::node_reads, gxBtree::header_writes, gxBtree::header_reads. 02/03/2002: Changed default arguments for all functions using the "flush" and "test_tree" variables to false. The caller or derived class must perform file flushing and tree testing as required by the application. 02/08/2002: All gxBtree functions using non-persistent file address units have been modified to use FAU_t data types instead of FAU types. FAU_t types are native or built-in integer types and require no additional overhead to process. All persistent file address units still use the FAU integer type, which is a platform independent type allowing database files to be shared across multiple platforms. 03/04/2002: Reassigned the optional gxBtreeHeader::class_id member to be used as a counter for the number of B-trees per index file. 04/15/2002: Added the gxBtree::ChangeKey() function used to change specified keys that already exist in the B-tree index. ============================================================== gxcond.h ============================================================== No changes ============================================================== gxconfig.h ============================================================== 09/10/2002: Changed gxConfig::StoreCfgData() config line parameter from const UString type to const char * type. 10/13/2002: Removed all function with non-const char * type arguments. ============================================================== gxcrc32.h ============================================================== No changes ============================================================== gxcrctab.h ============================================================== No changes ============================================================== gxd_ver.h ============================================================== 02/03/2002: Changed GX database default revision letter to rev E. ============================================================== gxdatagm.h ============================================================== No changes ============================================================== gxdbase.h ============================================================== 02/03/2002: Changed gxDatabase::Write() default arguments for flushing and bit testing. The Write() function will not flush open file buffers and perform CRC testing by default. The caller or derived class must perform file flushing and bit testing as required by the application. 02/08/2002: All gxDatabase functions using non-persistent file address units have been modified to use FAU_t data types instead of FAU types. FAU_t types are native or built-in integer types and require no additional overhead to process. All persistent file address units still use the FAU integer type, which is a platform independent type allowing database files to be shared across multiple platforms. 02/22/2002: Added the gxDatabase::file_stats_header data member to keep persistent file statistics for the number of blocks allocated, deleted, and removed. The gxFileStatsHeader data structure is a new type declared in the gxheader.h include file added specifically for gxDatabase revisions 'D' and 'E'. Using persistent file statistics significantly reduces the amount of overhead normally required to obtain stats by sequentially searching the database file for normal, deleted, and removed blocks. 02/23/2002: Add three new functions to support persistent file statistics in revisions 'D' and 'E': gxDatabaseError gxDatabase::WriteFileStatsHdr(const gxFileStatsHeader &hdr); gxDatabaseError gxDatabase::ReadFileStatsHdr(gxFileStatsHeader &hdr); void gxDatabase::InitFileStatsHdr(gxFileStatsHeader &hdr); 03/24/2002: Added the gxDatabase::Release() synchronization function. Used to signal to the class destructor not to close the file when an object is deleted or no longer visible. 03/25/2002: Added the gxdFPTR *gxDatabase::GetFP() function used to return an object's file pointer. 10/16/2002: Added the gxDatabase::TestBlockHeader() function used to test a block header to ensure that this is a valid block header and not a block of binary data containing words equal to a block checkword. ============================================================== gxderror.h ============================================================== 08/14/2001: Added the gxDBASE_CACHE_ERROR error code to the gxDatabaseError enumeration. ============================================================== gxdfp64.h ============================================================== 03/18/2002: Changed the return types for the gxdFPTR64Read() and gxdFPTR64Write() fucntions to return the number of bytes read and moved rather than the returning 0/1 to indicate a pass/fail condition. This change was made to support additional classes throughout the library. ============================================================== gxdfptr.h ============================================================== 02/01/2002: Add enhanced NTFS compatibility to all WIN32 functions by adding WIN32 file I/O. Define the __WIN32__ and __NTFS__ preprocessor directives to use the WIN32 file I/O API instead of the stdio file I/O. 03/18/2002: Changed the return types for the gxdFPTRRead() and gxdFPTRWrite() fucntions to return the number of bytes read and moved rather than the returning 0/1 to indicate a pass/fail condition. This change was made to support additional classes throughout the library. ============================================================== gxdlcode.h ============================================================== 01/23/2002: Added the __MSVC_DLL__ preprocessor directive, which is now required to compile the DLL library. This directive was added to allow the DLL code base to be combined with the UNIX library and static library code bases. 02/28/2002: Added the __USE_ANSI_CPP__ preprocessor directive used to force compatibility with the new ANSI Standard C++ library. ============================================================== gxdlincs.h ============================================================== 01/23/2002: Added the __MSVC_DLL__ preprocessor directive, which is now required to compile the DLL library. This directive was added to allow the DLL code base to be combined with the UNIX library and static library code bases. ============================================================== gxdstats.h ============================================================== No changes ============================================================== gxdtyp64.h ============================================================== 02/21/2002: Add preprocessor directive for the GNU MINGW32 compiler. ============================================================== gxdtypes.h ============================================================== No changes ============================================================== gxfloat.h ============================================================== No changes ============================================================== gxheader.h ============================================================== 02/08/2002: All gxheader constants using non-persistent file address units have been modified to use FAU_t data types instead of FAU types. FAU_t types are native or built-in integer types and require no additional overhead to process. All persistent file address units still use the FAU integer type, which is a platform independent type allowing database files to be shared across multiple platforms. 02/22/2002: Added the gxFileStatsHeader data structure to support persistent file statistics in gxDatabase revisions 'D' and 'E'. 03/24/2002: Changed the length of the gxMaxNameLength constant from 255 to 1024. This change was made to account for long file names plus directory information. ============================================================== gxint16.h ============================================================== No changes ============================================================== gxint32.h ============================================================== No changes ============================================================== gxint64.h ============================================================== 03/11/2002: By default C++ iostreams are no longer used. In order to use the iostream functions built into this class users must define __USE_CPP_IOSTREAM__ preprocessor directive. When using C++ iostreams users have the option to use the ANSI Standard C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. By default the old iostream library will be used when the __USE_CPP_IOSTREAM__ directive is defined. ============================================================== gxip32.h ============================================================== No changes ============================================================== gxslist.h ============================================================== 03/24/2002: Added the Release() synchronization function. The release function is used to signal to the class destructor not to delete the list when an object is deleted or no longer visible. ============================================================== gxslistb.h ============================================================== 03/24/2002: Added the Release() synchronization function. The release function is used to signal to the class destructor not to delete the list when an object is deleted or no longer visible. ============================================================== gxmac48.h ============================================================== No changes ============================================================== gxmutex.h ============================================================== No changes ============================================================== gxs_b64.h ============================================================== No changes ============================================================== gxs_ver.h ============================================================== No changes ============================================================== gxscomm.h ============================================================== 01/29/2002: Added the gxSerialComm::Close(scommDeviceHandle h) function to allow application to close device handles other than the one a gxSerialComm object is bound to. 01/29/2002: Added the gxSerialComm::ReleaseSerialPort() function to release the serial device bound in a gxSerialComm object to another device. After a release call the gxSerialComm destructor will not automatically close the serial device opened by this object. 01/29/2002: Added four new read and write function to read and write data from a specified device handle: int RawRead(scommDeviceHandle h, void *buf, int bytes); int RawWrite(scommDeviceHandle h, const void *buf, int bytes); int Recv(scommDeviceHandle h, void *buf, int bytes); int Send(scommDeviceHandle h, const void *buf, int bytes); ============================================================== gxsema.h ============================================================== No changes ============================================================== gxsftp.h ============================================================== 03/10/2002: The gxsFTPClient class no longer uses the C++ fstream class as the underlying file system. The gxDatabase file pointer routines are now to used define the underlying file system used by the gxsFTPClient class. This change was made to support large files and NTFS file system enhancements. To enable large file support users must define the __64_BIT_DATABASE_ENGINE__ preprocessor directive. 06/10/2002: Added gxsFTP_BUF_SIZE constant used to replace gxsBUF_SIZE, which was previously used to set the fixed FTP replay buffer sizes. This change was made to accommodate larger fixed FTP reply buffers without changing the gxsFTP_BUF_SIZE constant. 06/10/2002: Added the gxsFTPClient::passive_mode variable used internally to toggle passive FTP mode on and off. 06/10/2002: Added the gxsFTPClient::FTPPassive() and gxsFTPClient::FTPActive() functions used to toggle passive FTP mode on and off. ============================================================== gxshtml.h ============================================================== 03/10/2002: The gxsHTML class no longer uses the C++ fstream class as the underlying file system. The gxDatabase file pointer routines are now used to define the underlying file system used by the gxsHTML class. This change was made to support large files and NTFS file system enhancements. To enable large file support users must define the __64_BIT_DATABASE_ENGINE__ preprocessor directive. ============================================================== gxshttp.h ============================================================== 09/27/2001: Added the gxsHTTP_STATUS_DISK_ERROR and gxsHTTP_STATUS_NETWORK_ERROR constants to the HTTP status codes enumeration. 09/27/2001: Changed the gxsMAX_HTTP_STATUS_CODES integer constant from 17 to 19 to match the number of enumerated constants defined in the HTTP status codes enumeration. 09/28/2002: Changed the gxsMAX_HTTP_STATUS_CODES integer constant from 19 to 20 to match the number of enumerated constants defined in the HTTP status codes enumeration. 10/03/2002: Added the gxsHTTPHeader::Reset() function used to reset HTTP header information. 10/03/2002: Moved the gxsHTTPHeader constructor and destructor to the gxshttp.h include file. 10/03/2002: Added the __HTTP_RECV_TIMEOUT_SECS__ and __HTTP_RECV_TIMEOUT_USECS__ constants used to set default timeout values. ============================================================== gxshttpc.h ============================================================== 09/27/2001: Added new gxsHTTPClient::Request() functions to replace the slower gxsHTTPClient::RequestFile() functions. The gxsHTTPClient::RequestFile() functions have been depreciated in version 4.11 and retained for backward compatibility. 03/10/2002: The gxsHTTPClient class no longer uses the C++ fstream class as the underlying file system. The gxDatabase file pointer routines are now used to define the underlying file system used by the gxsHTTPClient class. This change was made to support large files and NTFS file system enhancements. To enable large file support users must define the __64_BIT_DATABASE_ENGINE__ preprocessor directive. 10/03/2002: Added gxsHTTPClient::revc_loop, gxsHTTPClient::time_out_sec, and gxsHTTPClient::time_out_usec data members used to break the receive loops and set timeout values. 10/03/2002: Added the following function used to break the receive loops and set timeout values: gxsHTTPClient::SetTimeOut(), gxsHTTPClient::TerminateRevc(), gxsHTTPClient::ResetRecv() , gxsHTTPClient::ResetTimeOut(), and gxsHTTPClient::ResetRecv(). ============================================================== gxsmtp.h ============================================================== 09/03/2002: The return type on the gxsSMTPClient::GetSMTPTimeStamp() was changed from void to char * to allow this function to be returned from another calling function. ============================================================== gxsocket.h ============================================================== 01/29/2002: Added four new functions to accept, bind, connect, and listen to specified sockets: gxsSocket_t Accept(gxsSocket_t s, gxsSocketAddress *sa); int Bind(gxsSocket_t s, gxsSocketAddress *sa); int Connect(gxsSocket_t s, gxsSocketAddress *sa); int Listen(gxsSocket_t s, int max_connections); 09/25/2002: Removed default parameter from all versions of the gxSocket::ShutDown() function due to conflicting int types. 10/24/2002: Changed the buf parameter on all versions of the datagram SendTo() and ReadFrom() functions from a non-constant void * type to a constant void * type. 10/25/2002: Split the datagram functions into three categories, Client/Server, Client side, and Sever side. This change was made to make it easier for applications to associate Internet address data structures with the correct client or server. 10/25/2002: Added new server side datagram functions: RemoteRawReadFrom(), RemoteRecvFrom(), RemoteRawWriteTo(), and RemoteSendTo(). 10/25/2002: Added the gxSocket::Clear() helper function used to reset all gxSocket variables during object construction. 10/25/2002: Added gxSocket::InitSIN() helper function used to initialize socket Internet address data structures. 10/25/2002: Added the following function used to construct and initialize gxSocket objects using socket Internet address data structures: gxSocket(gxsSocket_t st, gxsSocketAddress *host_sin) gxSocket(gxsSocket_t st, gxsProtocolFamily pf, gxsSocketAddress *host_sin); gxsSocket_t InitSocket(gxsSocket_t st, gxsSocketAddress *host_sin); gxsSocket_t InitSocket(gxsSocket_t st, gxsProtocolFamily pf, gxsSocketAddress *host_sin); ============================================================== gxsping.h ============================================================== No changes ============================================================== gxspop3.h ============================================================== No changes ============================================================== gxstream.h ============================================================== No changes ============================================================== gxstring.h ============================================================== 06/05/2002: Added the gxStringw type definition for the Unicode string class. ============================================================== gxstypes.h ============================================================== 07/10/2001: Added __AIX__ conditional directive for the IBM xlC C and C++ Compilers. 07/19/2001: IANA service file updates for DataReel database port name and number: -- Services file entries -- gxs-data-port 2073/tcp DataReel Database Socket gxs-data-port 2073/udp DataReel Database Socket 04/15/2002: Added the gxSOCKET_FILELENGTH_ERROR and gxSOCKET_FILEMODTIME_ERROR errors codes to the gxSocketError enumeration. 06/10/2002: Added embedded protocol error codes to the gxSocketError enumeration. ============================================================== gxsurl.h ============================================================== No changes ============================================================== gxsutils.h ============================================================== No changes ============================================================== gxt_ver.h ============================================================== No changes ============================================================== gxtelnet.h ============================================================== 10/29/2002: Added the gxsTelnetClient::RecvInitSeq() function used to process the initial connection sequence sent by the telnet server when the telnet session is first established. 10/29/2002: Added the gxsTelnetClient::SendInitSeq() function used to send an initialization sequence to the telnet server if the server does not send any initialization commands when the telnet session is first established. ============================================================== gxthread.h ============================================================== 11/14/2002: Changed argument type from int to unsigned long in the gxThread::api_mSleep() and gxThread::api_sSleep() functions. 11/14/2002: Added the gxThread::api_uSleep() and gxThread::api_nSleep() fucntions used to sleep for a specified number of microseconds and nanoseconds. ============================================================== gxuint16.h ============================================================== No changes ============================================================== gxuint32.h ============================================================== No changes ============================================================== gxuint64.h ============================================================== 03/11/2002: By default C++ iostreams are no longer used. In order to use the iostream functions built into this class users must define __USE_CPP_IOSTREAM__ preprocessor directive. When using C++ iostreams users have the option to use the ANSI Standard C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. By default the old iostream library will be used when the __USE_CPP_IOSTREAM__ directive is defined. ============================================================== htmldrv.h ============================================================== 03/11/2002: Users now have the option to use the ANSI Standard C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. By default the old iostream library will be used for all iostream operations. ============================================================== httpgrab.h ============================================================== The HTTPGrab class was not being used in the library and has been depreciated to eliminate excessive overhead during library builds. Only one standalone function was being in the examples.soc/gxshttpc/testprog.cpp file. That function has been moved to the examples.soc/gxshttpc/testprog.cpp file. NOTE: The httpgrab.h include file and the httpgrab.cpp src files are only included with this distribution for backward compatibly with existing makefiles that may have dependencies requiring these files to exist during a library build. ============================================================== infohog.h ============================================================== 10/05/2001: Modified the InfoHog copy constructor to set the member array to zero before copying to tell the AllocArray() function that no memory has been allocated for the array. 02/08/2002: All InfoHog functions using non-persistent file address units have been modified to use FAU_t data types instead of FAU types. FAU_t types are native or built-in integer types and require no additional overhead to process. All persistent file address units still use the FAU integer type, which is a platform independent type allowing database files to be shared across multiple platforms. 05/07/2002: Fixed non-key change problem in the InfoHog<TYPE>:: ChangeObject() function. The ChangeObject() functions was not correctly changing non-key members for objects with the same key and different general purpose members. 05/08/2002: Fixed single general purpose member change problem in InfoHog<TYPE>::ChangeObject() function. The ChangeObject() function was not correctly changing objects with only one general purpose member. ============================================================== keytypes.h ============================================================== 02/22/2002: Changed the BtreeNodeOrder_t, BtreeSize_t, BtreeKeyCount_t, BtreeKeyLocation_t to native integer types. 02/22/2002: Added the BtreeNodeOrder, BtreeSize, BtreeKeyCount, and the BtreeKeyLocation platform independent types. ============================================================== leaktest.h ============================================================== 03/11/2002: By default C++ iostreams are no longer used. In order to use the iostream functions with leak test functions users must define __USE_CPP_IOSTREAM__ preprocessor directive. When using C++ iostreams users have the option to use the ANSI Standard C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. By default the old iostream library will be used when the __USE_CPP_IOSTREAM__ directive is defined. ============================================================== logfile.h ============================================================== 03/10/2002: The LogFile class no longer uses the C++ fstream class as the underlying file system. The gxDatabase file pointer routines are now used to define the underlying file system used by the LogFile class. This change was made to support large files and NTFS file system enhancements. To enable large file support users must define the __64_BIT_DATABASE_ENGINE__ preprocessor directive. 09/30/2002: Added the LogFile::LogFile(const char *) constructor. Used to open a log file for appending when a LogFile object is constructed. 11/14/2002: Added the LogFile::Create() function used to create a logfile overwriting any existing ogfile with the same name. ============================================================== memblock.h ============================================================== No changes ============================================================== membuf.h ============================================================== 10/05/2001: Added the MemoryBuffer::MemSet() function used to fill a memory buffer starting at the specified offset with a specified number of bytes. 02/05/2002: Added the clean_buf argument to the MemoryBuffer::Clear() function. If the clean_buf variable is true the contents of the buffer will be cleared, otherwise the logical length will be set to zero and the contents of the buffer will not cleared. 06/04/2002: Added the __MEMBUF_INT__ type definition and the __MEMBUF_NO_MATCH__ constant used to eliminate signed and unsigned comparison warnings. ============================================================== ostrbase.h ============================================================== 03/11/2002: Users now have the option to use the ANSI Standard C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. By default the old iostream library will be used for all iostream operations. ============================================================== pod.h ============================================================== 03/05/2002: Removed the PODIndexFile_t::cid optional class ID member. Version 4.2 and higher no longer use the optional class ID within B-tree headers. 03/05/2002: Modified the PODIndexFile::Open() function to allow the number of trees and gxDatabase revision number to be specified when creating a new index file. The optional class ID is no longer used. 03/05/2002: Added the POD::Flush(), FlushDataFile(), and FlushIndexFile() functions used by applications to flush the POD database or the data and index files individually. 03/05/2002: Added the POD::TestDatabase(), TestDataFile(), and TestIndexFile() functions used by applications to test the POD database or the data and index files individually. ============================================================== pscript.h ============================================================== 03/11/2002: Users now have the option to use the ANSI Standard C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. By default the old iostream library will be used for all iostream operations. 03/24/2002: The PostScriptDrv::ConvertTextFile() function now uses a DiskFileB type for the input file. This change was made to support large files and NTFS file system enhancements. ============================================================== scomserv.h ============================================================== No changes ============================================================== sreg101.h ============================================================== No changes ============================================================== stdafx.h ============================================================== 01/23/2002: Added the __MSVC_DLL__ preprocessor directive, which is now required to compile the DLL library. This directive was added to allow the DLL code base to be combined with the UNIX library and static library code bases. ============================================================== strutil.h ============================================================== 09/28/2001: Added a string length parameter to the FindMatch() and IFindMatch() functions used to set the length of the string variable when the string is not null-terminated. 03/10/2002: Added the ULLWORDToString(), LLWORDToString(), StringToULLWORD(), and StringToLLWORD() functions used to convert 64-bit signed and unsigned integer values to and from string types. These functions are now used throughout the library by all classes that require string support for 64-bit integer types. 05/27/2002: Changed all char *s function arguments to const char *s in all functions. This change was made to make the conversion of string literals const safe 05/27/2002: Changed the return types from unsigned to int in all Find() functions. This change was made to eliminate signed/unsigned warnings and errors. 06/05/2002: Added type defines, conditional includes, and the gxStringType enumeration needed to support Unicode strings. 06/05/2002: Added standalone functions needed to work with both ASCII and Unicode strings 06/05/2002: Added conversion functions used with ASCII and Unicode string literals. 06/05/2002: Added the gxwchar class and gxwchar_t typedef used to operate on platform interoperable Unicode strings. 09/04/2002: Added Unicode versions of all strutil functions included with release 4.1. 09/04/2002: All versions of the StringCat() functions now use null pointers as the default arguments and will return a null string if no arguments are passed to the function from the caller. ============================================================== systime.h ============================================================== 08/12/2002: The SysTime destructor is no longer inlined and is now defined in the systime.cpp file. 09/03/2002: Added the SysTime::GetSMTPTime() function used to make SMTP time stamps. ============================================================== terminal.h ============================================================== 07/19/2001: Added HPUX 11 preprocessor directives to this include file to avoid conflicts when building HPUX 11 static libraries. ============================================================== thelpers.h ============================================================== No changes ============================================================== thrapiw.h ============================================================== 11/14/2002: Changed argument type from int to unsigned long in the gxThreadAPIWrapper::api_mSleep() and gxThreadAPIWrapper::api_sSleep() functions. 11/14/2002: Added the gxThreadAPIWrapper::api_uSleep() and gxThreadAPIWrapper::api_nSleep() functions used to sleep for a specified number of microseconds and nanoseconds. ============================================================== thrpool.h ============================================================== No changes ============================================================== thrtypes.h ============================================================== No changes ============================================================== ustring.h ============================================================== 03/10/2002: The UString class now includes a full compliment of << and >> overloads used to insert and extract integers, floating points, strings, and characters types. 03/10/2002: Added the hex, dec, reset, and clear UString class I/O manipulator functions used to format I/O within an I/O statement. 03/10/2002: Added 64-bit integer support to the UString class, which is enabled by defining the __64_BIT_DATABASE_ENGINE__ preprocessor directive. 03/11/2002: By default C++ iostreams are no longer used. In order to use the iostream functions built into this class users must define __USE_CPP_IOSTREAM__ preprocessor directive. When using C++ iostreams users have the option to use the ANSI Standard C++ library by defining the __USE_ANSI_CPP__ preprocessor directive. By default the old iostream library will be used when the __USE_CPP_IOSTREAM__ directive is defined. 03/24/2002: Added the UString::Release() synchronization function. The release function is used to signal to the class destructor not to delete the string when an object is deleted or no longer visible. 04/07/2002: Added the UString::ConvertEscapeSeq() function used to convert hex escape sequences within a string to printable ASCII characters. 04/08/2002: Added the UString::GetSPtr() fucntion used to return a pointer the objects string pointer. 04/09/2002: Added the UString::SetLength(...) functions used to reset or set the logical length an object's string. 04/09/2002: Added the UString::SetSPrt() function used to bind an object to another string. 05/27/2002: Changed all char *s function arguments to const char *s in all functions. This change was made to make the conversion of string literals const safe 05/27/2002: Changed the return types from unsigned to int in all Find() functions. This change was made to eliminate signed/unsigned warnings and errors. 06/05/2002: Added Unicode versions of all UStringB functions included with release 4.1. 06/05/2002: Moved all UString functions to the UStringB class and added the UStringw class used to operate on Unicode strings. 09/04/2002: The ustring.h and ustring.cpp modules are now dependent on the strutil.h include file. 10/10/2002: Changes the default argument for the UString::Clear() function "clear_all" variable from 1 to 0. This will only null the first character of the string eliminating the overhead of clearing the entire memory buffer. 10/13/2002: Added additional copy constructors, assignment operators, and overloaded += operators to support the wxString class. 10/13/2002: Removed the following conversion function from the UStringB class due to excessive compiler warning under Linux: operator const int () const { return ((sptr != 0) && (s_length != 0)); } 10/13/2002: Removed the following conversion function to avoid having UStringB objects being automatically converted to int types: operator int () { return ((sptr != 0) && (s_length != 0)); } 10/13/2002: Added the UStringB::is_not_null() function to replace the int conversion function. NOTE: The UStringB class no longer has any conversion functions. ============================================================== wserror.h ============================================================== No changes ============================================================== wx2incs.h ============================================================== No changes ============================================================== wxincs.h ============================================================== No changes ==============================================================
Source Code Changes |
asprint.cpp ============================================================== 05/28/2002: Fixed out of bounds pointer in the ASPrint(const char c) function. ============================================================== bstreei.cpp ============================================================== No changes ============================================================== btcache.cpp ============================================================== Empty file - Placeholder for future B-tree cache classes. ============================================================== btnode.cpp ============================================================== 09/10/2001: Added binary search code to the BtreeNode::FindKeyLocation() function. To use the binary search method instead of a linear search define the __USE_BINARY_SEARCH__ preprocessor directive when compiling. 11/05/2001: Added single comparison method to BtreeNode::FindKeyLocation() function. To use a single compare instead of the greater then and equal to operators define the __USE_SINGLE_COMPARE__ preprocessor directive when compiling. NOTE: Using the single comparison method will also affect the classes derived from the DatabaseKeyB. If a dual comparison is used the derived class must override the pure virtual greater than and equal to operators declared in the DatabaseKeyB base class. If the a single comparison is used the derived class must override the pure virtual DatabaseKeyB::CompareKey() function with return values of: -1 less than, 0 equal to, 1 greater than. ============================================================== btstack.cpp ============================================================== No changes ============================================================== cdate.cpp ============================================================== No changes ============================================================== dbasekey.cpp ============================================================== No changes ============================================================== dbfcache.cpp ============================================================== Experimental database cache classes added in version 4.2. ============================================================== devcache.cpp ============================================================== No changes ============================================================== dfileb.cpp ============================================================== 03/10/2002: The DiskFileB class no longer uses the C++ fstream class as the underlying file system. The gxDatabase file pointer routines are now used to define the underlying file system used by the DiskFileB class. This change was made to support large files and NTFS file system enhancements for non-database applications. 05/25/2002: Fixed possible out of bounds pointer in the DiskFileB::df_LoadNameBuffer() function. ============================================================== eds101.cpp ============================================================== 08/12/2002: Modified the edsString::GenRandomNumber() function to use the reentrant rand_r() function instead of the srand() function under UNIX. 08/12/2002: Modified the edsString::InitDynamicTable() function to use the reentrant rand_r() function instead of the srand() function under UNIX. 09/04/2002: The __REENTRANT__ preprocessor directive must be defined during UNIX builds to enable the use of reentrant rand_r calls within the edsString::GenRandomNumber() and edsString::InitDynamicTable() functions. ============================================================== eds201.cpp ============================================================== No changes ============================================================== edscfg.cpp ============================================================== 10/13/2002: Remove all function with non-const char * type arguments. ============================================================== ehandler.cpp ============================================================== 07/17/2001: Corrected BCC32 syntax error in EHandler::Message() function. 05/27/2002: Added break to terminating case switches in the EHandler::SignalException() function to eliminate flow control warnings. 10/10/2002: Modified the EHandler::Message() function to flush the console buffers with each write operation. 10/10/2002: Modified the EHandler::DisplayException() function to flush the console buffers with each write operation. ============================================================== fstring.cpp ============================================================== 10/05/2001: Modified the FString::SetString() function to clear the remaining bytes after the string's null terminator to ensure that the memory buffer is equal to other buffers with a copy of this string. 05/05/2002: Modified the FString::Copy() function to use the FString::SetString() function when copying or assigning FString objects. This change was made to ensure that all bytes following string's null terminator are clear. ============================================================== futils.cpp ============================================================== 03/11/2002: Added large file support for the futils_filelength() function. Also, the file length function now takes the string file name instead of an int type representing an open file handle. 08/12/2002: Added the "dirent *entry" parameter to the futils_readdir() function to support reentrant readdir calls under UNIX. If the "entry" variable is not null the reentrant version of the readdir fucntion will be called instead of the non-thread safe version called by default. 09/03/2002: Modified the futils_readdir() function to work with POSIX and non-POSIX readdir_r() calls under Solaris. 09/04/2002: The __REENTRANT__ preprocessor directive must be defined during UNIX builds to enable the use of reentrant readdir calls within the futils_readdir() function. ============================================================== gpersist.cpp ============================================================== 05/27/2002: Fixed possible memory leak in the gxPersistent::ReadString() function that could occur during a database read error condition. ============================================================== gthreadt.cpp ============================================================== No changes ============================================================== gxbtree.cpp ============================================================== 05/28/2002: Fixed possible use of null pointer in the gxBtree::Create() function. Use of null pointer could have occurred if memory allocation for the "f" variable failed and the "f" variable was used. ============================================================== gxcond.cpp ============================================================== No changes ============================================================== gxconfig.cpp ============================================================== 03/10/2002: The gxConfig class no longer uses the C++ fstream class as the underlying file system. The gxDatabase file pointer routines are now used to define the underlying file system used by the gxConfig class. This change was made to support large files and NTFS file system enhancements. To enable large file support users must define the __64_BIT_DATABASE_ENGINE__ preprocessor directive. 09/10/2002: Removed redundant temporary holding buffer from the gxConfig::Load() function. 09/10/2002: Changed gxConfig::StoreCfgData() config line parameter from const UString type to const char * type. 10/13/2002: Remove all function with non-const char * type arguments. ============================================================== gxcrc32.cpp ============================================================== No changes ============================================================== gxdatagm.cpp ============================================================== No changes ============================================================== gxdbase.cpp ============================================================== 10/16/2002: Modified the gxDatabase::FindFirstBlock() function to use the TestBlockHeader() function to test for valid blocks. 10/30/2002: Modified the gxDatabase::FindPrevBlock()function to use the TestBlockHeader() function to test for valid blocks. 10/30/2002: Modified the gxDatabase::WriteObjectChecksum() and gxDatabase::ReadObjectChecksum() functions to use the ReadBlockHdr() function to read and verify blocks. 10/30/2002: Modified the Database::ReadBlockHdr() function to use TestBlockHeader() function to test for valid blocks. NOTE: This change will affect all function that call ReadBlockHdr(). 10/30/2002: Modified the following functions to use TestBlockHeader() function to test for valid blocks: gxDatabase::TotalBlocks(), gxDatabase::DeletedBlocks(), gxDatabase::UnDelete(), gDatabase::ReclaimBestFit(), and gxDatabase::ReclaimFirstFit(). ============================================================== gxderror.cpp ============================================================== No changes ============================================================== gxdfp64.cpp ============================================================== 01/30/2002: Modified all WIN32 functions to use the WIN32 file I/O API, which will provide large file support for both MSVC and BCC32. WIN32 file I/O also adds enhanced NTFS compatibility to all WIN32 functions. 01/30/2002: Fixed potential memory leak in the gxdFPTR64Create() and gxdFPTR64Open() functions. 02/02/2002: Modified all versions of the file pointer close functions to set the stream pointer to zero after releasing it. This ensures that the caller will not use the stream pointer after it has been deleted provided the calling function tests for a null stream pointer prior to use. 03/18/2002: Changed the return types for the gxdFPTR64Read() and gxdFPTR64Write() fucntions to return the number of bytes read and moved rather than the returning 0/1 to indicate a pass/fail condition. This change was made to support additional classes throughout the library. ============================================================== gxdfptr.cpp ============================================================== 01/30/2002: Fixed potential memory leak in the gxdFPTRCreate() and gxdFPTROpen() functions. 02/01/2002: Add enhanced NTFS compatibility to all WIN32 functions by adding WIN32 file I/O. Define the __WIN32__ and __NTFS__ preprocessor directives to use the WIN32 file I/O API instead of the stdio file I/O. 02/02/2002: Modified all versions of the file pointer close functions to set the stream pointer to zero after releasing it. This ensures that the caller will not use the stream pointer after it has been deleted provided the calling function tests for a null stream pointer prior to use. 03/18/2002: Changed the return types for the gxdFPTRRead() and gxdFPTRWrite() fucntions to return the number of bytes read and moved rather than the returning 0/1 to indicate a pass/fail condition. This change was made to support additional classes throughout the library. ============================================================== gxdlcode.cpp ============================================================== 01/23/2002: Added the __MSVC_DLL__ preprocessor directive, which is now required to compile the DLL library. This directive was added to allow the DLL code base to be combined with the UNIX library and static library code bases. ============================================================== gxstats.cpp ============================================================== 03/25/2002: Modified all functions that print 64-bit native integers to the console to use the UString class overloads. This correction was made to allow code to be compilers using the __USE_NATIVE_INT_TYPES__ preprocessor directive. ============================================================== gxfloat.cpp ============================================================== 02/22/2002: The PackBits() function no longer uses heap space for temporary floating pointer buffer. 02/22/2002: The UnPackBits() function no longer uses heap space for temporary floating pointer buffer. ============================================================== gxint16.cpp ============================================================== No changes ============================================================== gxint32.cpp ============================================================== No changes ============================================================== gxint64.cpp ============================================================== 02/21/2002: Modified the PackBits() and UnPackBits() functions to work with the GNU MINGW32 compiler. ============================================================== gxip32.cpp ============================================================== No changes ============================================================== gxlistb.cpp ============================================================== No changes ============================================================== gxmac48.cpp ============================================================== 03/10/2002: The gxMAC48 class no longer uses the C++ fstream class as the underlying file system. The gxDatabase file pointer routines are now used to define the underlying file system used by the gxMAC48 class. This change was made to support large files and NTFS file system enhancements. To enable large file support users must define the __64_BIT_DATABASE_ENGINE__ preprocessor directive. 06/02/2002: Corrected incorrect assignment in two if statements in all versions of the gxMAC48::SetMACAddress()function. ============================================================== gxmutex.cpp ============================================================== No changes ============================================================== gxs_b64.cpp ============================================================== No changes ============================================================== gxscomm.cpp ============================================================== 07/10/2001: UNIX changes: Removed the 57600 and 115200 case labels to maintain compatibility with all UNIX variants that do not define baud rates higher then 19.2 09/20/2001: Corrected the gxSerialComm::RawRead() and RawWrite() WINNT/2000 overlapped I/O errors by creating an overlapped I/O event for every read and write call. This change does not affect Windows 95/98 or UNIX read and write calls. 01/29/2002: Added the gxSerialComm::Close(scommDeviceHandle h) function to allow application to close device handles other than the one a gxSerialComm object is bound to. 01/29/2002: Modified the gxSerialComm::Close() function to test the device handle before closing the device. 01/29/2002: Added the gxSerialComm::ReleaseSerialPort() function to release the serial device bound in a gxSerialComm object to another device. After a release call the gxSerialComm destructor will not automatically close the serial device opened by this object. 01/29/2002: Added four new read and write function to read and write data from a specified device handle: int RawRead(scommDeviceHandle h, void *buf, int bytes); int RawWrite(scommDeviceHandle h, const void *buf, int bytes); int Recv(scommDeviceHandle h, void *buf, int bytes); int Send(scommDeviceHandle h, const void *buf, int bytes); 05/05/2002: Changed the WIN32 scommHARD_FLOW control option in the gxSerialComm::InitSerialPort() function from dcb.fRtsControl = DTR_CONTROL_HANDSHAKE; to dcb.fRtsControl = RTS_CONTROL_ENABLE; ============================================================== gxsema.cpp ============================================================== 02/11/2002: Modified the gxSemaphore::SemaphoreDecrement() to correctly decrement the semaphore. ============================================================== gxsftp.cpp ============================================================== 06/10/2002: Modified the gxsFTPClient::RecvResponse(gxsSocket_t s) function to check for FTP error codes 400 and higher instead of waiting for a timeout error. 06/10/2002: Modified the following functions to support passive FTP mode: gxsFTPClient::FTPGet(), gxsFTPClient::FTPPut(), gxsFTPClient::FTPList(), gxsFTPClient::OpenDataPort(), gxsFTPClient::ReadDataPort(), gxsFTPClient::WriteDataPort() 06/17/2002: Modified the gxsFTPClient::SendCommand() function to clear the command and reply buffers before send a command. This change was made to ensure that strings are always null-terminated. 06/17/2002: Modified the gxsFTPClient::FTPGet() and gxsFTPClient::FTPList() functions not to read the server 226 reply string following a list or a get. This change was made because the FTP client was hanging on the blocking receive while waiting for the servers reply. This problem occurred when connecting to Windows based FTP servers such as the WAR FTP server and the IIS FTP server. 06/17/2002: Modified the gxsFTPClient::OpenDataPort() function to check for 226 and 227 replies from the server when in passive FTP mode. 06/20/2002: Modified the gxsFTPClient::RecvResponse() function to handle 110, 120, 125, 202, 225, and 332 FTP reply codes. ============================================================== gxshtml.cpp ============================================================== 06/02/2002: Corrected incorrect assignment in two if statements in the gxsHTML::CollectHTMLTags() function. 09/30/2002: Modified all versions of the gxsHTML::CollectHTMLTags() functions to account for tags using the ; character inside < > tags. ============================================================== gxshttp.cpp ============================================================== 09/27/2001: Added 2 new strings to the gxsHTTP_STATUS_CODES array for internal client errors. 09/27/2001: Modified the gxsHTTPStatusCodeMessage() function to return strings for internal client errors. 09/28/2002: Modified the gxsHTTPStatusCodeMessage() function to return additional strings for internal client errors. 10/03/2002: Added the gxsHTTPHeader::Reset() function used to reset HTTP header information. 10/03/2002: Moved the gxsHTTPHeader constructor and destructor to the gxshttp.h include file. ============================================================== gxshttpc.cpp ============================================================== 09/07/2001: Fixed the gxsHTTPClient::RequestHeader() function to remove all characters after the end of the header marker. 09/27/2001: Added new gxsHTTPClient::Request() functions to replace the slower gxsHTTPClient::RequestFile() functions. The gxsHTTPClient::RequestFile() functions have been depreciated in version 4.11 and retained for backward compatibility. 01/24/2002: Added (const char *) and (unsigned) type casts to all FindMatch() function calls to correct type errors encountered during Linux library builds 04/05/2002: Removed the gxDEVICE_CONSOLE case from the gxsHTTPClient::Write() function. Writing to the console is only used for test purposes. 04/08/2002: Changed the gxsHTTPClient() constructor to use the version number set in the gxs_ver.h header file to set the HTTP client version number. 05/05/2002: Added the __GUI_THREAD_SAFE__ preprocessor directive used to conditionally omit functions calls that are not safe to use within multithreaded GUI applications. 10/03/2002: Modified the gxsHTTPClient::RequestHeader() function to reset the HTTP header before parsing it. 10/03/2002: Modified the gxsHTTPClient::SimpleRequest(), gxsHTTPClient::RequestHeader(), and gxsHTTPClient::Request() functions to use timeouts and external loop control. ============================================================== gxsmtp.cpp ============================================================== 09/03/2002: The return type on the gxsSMTPClient::GetSMTPTimeStamp() was changed from void to char * to allow this function to be returned from another calling function. 09/03/2002: The gxsSMTPClient::GetSMTPTimeStamp() now uses the SysTime class to format SMTP time/date strings. ============================================================== gxsocket.cpp ============================================================== 01/29/2002: Added four new functions to accept, bind, connect, and listen to specified sockets: gxsSocket_t Accept(gxsSocket_t s, gxsSocketAddress *sa); int Bind(gxsSocket_t s, gxsSocketAddress *sa); int Connect(gxsSocket_t s, gxsSocketAddress *sa); int Listen(gxsSocket_t s, int max_connections); 04/15/2002: Added the gxSOCKET_FILELENGTH_ERROR and gxSOCKET_FILEMODTIME_ERROR errors messages to the gxsSocketExceptionMessages array. 06/10/2002: Added embedded protocol error codes to the gxsSocketExceptionMessages array. 09/25/2002: Removed unneeded (int) type casts from all versions of the gxSocket send and recv fucntions. 10/24/2002: All gxSocket constructors have been modified to zero-out the sin and remote_sin data structures prior to using them. This change was implemented to eliminate the possibility of any erroneous data being set in the memory space of the data structures when a gxSocket object is constructed. 10/25/2002: All gxSocket constructors now use the gxSocket::Clear() function to reset all the gxSocket() variables. 10/25/2002: Removed redundant code from the gxSocket::InitSocket(gxsSocket_t st, gxsPort_t port, char *hostname) function. 10/24/2002: All gxSocket constructors have been modified to zero-out the socket_data data structure prior to use. This change was implemented to eliminate the possibility of any erroneous data being set in the memory space of the data structure when a gxSocket object is constructed. ============================================================== gxsping.cpp ============================================================== 01/24/2002: Added time.h include file to make time functions visual during Linux library builds ============================================================== gxspop3.cpp ============================================================== No changes ============================================================== gxstream.cpp ============================================================== No changes ============================================================== gxsurl.cpp ============================================================== No changes ============================================================== gxsutils.cpp ============================================================== No changes ============================================================== gxtelnet.cpp ============================================================== 06/02/2002: Modified the gxsTelnetClient::SetTermOption() to return the correct error condition in the err variable. ============================================================== gxthread.cpp ============================================================== No changes ============================================================== gxuint16 ============================================================== No changes ============================================================== gxuint32 ============================================================== No changes ============================================================== gxuint64.cpp ============================================================== 02/21/2002: Modified the PackBits() and UnPackBits() functions to work with the GNU MINGW32 compiler. ============================================================== htmldrv.cpp ============================================================== No changes ============================================================== httpgrab.cpp ============================================================== The HTTPGrab class was not being used in the library and has been depreciated to eliminate excessive overhead during library builds. Only one standalone function was being in the examples.soc/gxshttpc/testprog.cpp file. That function has been moved to the examples.soc/gxshttpc/testprog.cpp file. NOTE: The httpgrab.h include file and the httpgrab.cpp src files are only included with this distribution for backward compatibly with existing makefiles that may have dependencies requiring these files to exist during a library build. ============================================================== leaktest.cpp ============================================================== No changes ============================================================== logfile.cpp ============================================================== No changes ============================================================== memblock.cpp ============================================================== No changes ============================================================== membuf.cpp ============================================================== 10/05/2001: Added the MemoryBuffer::MemSet() function used to fill a memory buffer starting at the specified offset with a specified number of bytes. ============================================================== ostrbase.cpp ============================================================== No changes ============================================================== pod.cpp ============================================================== No changes ============================================================== pscript.cpp ============================================================== No changes ============================================================== scomserv.cpp ============================================================== No changes ============================================================== sreg101.cpp ============================================================== No changes ============================================================== stdafx.cpp ============================================================== 01/23/2002: Added the __MSVC_DLL__ preprocessor directive, which is now required to compile the DLL library. This directive was added to allow the DLL code base to be combined with the UNIX library and static library code bases. ============================================================== strutil.cpp ============================================================== 07/10/2001: Added __AIX__ conditional directive for the IBM xlC C and C++ Compilers. This compiler does not define the strcasecmp() function. 09/28/2001: Added a string length parameter to the FindMatch() and IFindMatch() functions used to set the length of the string variable when the string is not null-terminated. 06/05/2002: Added standalone functions needed to work with both ASCII and Unicode strings 06/05/2002: Added conversion functions used with ASCII and Unicode string literals. 09/04/2002: Added Unicode versions of all strutil functions included with release 4.1. 09/04/2002: All versions of the CaseICmp() functions are no longer using compiler dependent string case insensitive functions. 09/04/2002: All versions of the StringCat() functions now use null pointers as the default arguments and will return a null string if no arguments are passed to the function from the caller. ============================================================== systime.cpp ============================================================== 05/03/2002: The SysTime::FormatTime() will output use 4-digit dates under Linux gcc. This change was made to eliminate 2- digit year warnings. 08/12/2002: The SysTime destructor will free heap space for the SysTime::TimeBuffer variable for all objects using the reentrant localtime_r() and gmtime_r() functions. 08/12/2002: Modified the SysTime::InitTimeBuffers() function to call the reentrant localtime_r() function instead of localtime() under UNIX. 08/12/2002: Removed the duplicate declaration of "time_t STime" and "struct tm *TimeBuffer" from the SysTime::GetSystemDateTime() function. 08/12/2002: Removed the duplicate declaration of "time_t STime" and "struct tm *TimeBuffer" from the SysTime::GetSystemTime() function. 08/12/2002: Removed the duplicate declaration of "time_t STime" and "struct tm *TimeBuffer" from the SysTime::GetSystemDate() function. 08/12/2002: Modified the SysTime::DateSpan() function to call the reentrant localtime_r() function instead of localtime() under UNIX. 08/12/2002: Modified the SysTime::DaysOld() function to call the reentrant localtime_r() function instead of localtime() under UNIX. 08/12/2002: Removed the duplicate declaration of "time_t STime" and "struct tm *TimeBuffer" from the SysTime::GetGMTDateTime() function. 08/12/2002: Modified the SysTime::GetGMTDateTime() function to call the reentrant gmtime_r() function instead of gmtime() under UNIX. 09/03/2002: Added the SysTime::GetSMTPTime() function used to make SMTP time stamps. 09/03/2002: Modified the SysTime::GetSystemDateTime function to call the reentrant localtime_r() function instead of localtime() under UNIX. 09/03/2002: Modified the SysTime::GetSystemTime function to call the reentrant localtime_r() function instead of localtime() under UNIX. 09/03/2002: Modified the SysTime::GetSystemDate function to call the reentrant localtime_r() function instead of localtime() under UNIX. 09/04/2002: The __REENTRANT__ preprocessor directive must be defined during UNIX builds to enable the use of reentrant localtime_r and gmtime_r calls within all SysTime functions that initialize the internal time buffers. ============================================================== terminal.cpp ============================================================== 03/24/2002: The DOS and Windows emulation no longer uses the C++ iostream to write to the console. The stdio library is now used to write to the console. ============================================================== thelpers.cpp ============================================================== 11/14/2002: Corrected bug in the gxThreadConditionTimedWait() function for POSIX threads preventing the pthread_cond_timedwait() function from behaving in a predictable manner. ============================================================== thrapiw.cpp ============================================================== 11/14/2002: Modified the gxThreadAPIWrapper::api_mSleep() to use the timed condition instead of the usleep() function under UNIX/POSIX. ============================================================== thrpool.cpp ============================================================== No changes ============================================================== ustring.cpp ============================================================== 07/10/2001: Added __AIX__ conditional directive for the IBM xlC C and C++ Compilers. This compiler does not define the strcasecmp() function. 09/12/2001: Modified the UString::SetString() function to ensure that the "s" pointer is initialized before calling the strlen() function. 09/12/2001: Modified the UString::InsertAt() function to check the byte size to ensure that caller specified a number of bytes greater then zero. 11/15/2001: Modified the overloaded + const chat *s operator to append the null terminated "s" string to the end of the UString object. 02/27/2002: The logical length in the UString(unsigned bytes) constructor is now set to zero when this constructor is called. 06/05/2002: Added Unicode versions of all UStringB functions included with release 4.1. 06/05/2002: Moved all UString functions to the UStringB class and added the UStringw and gxwchar_t class used to operate on Unicode strings. 09/04/2002: All versions of the CaseICmp() functions are no longer using compiler dependent string case insensitive functions. 09/10/2002: Added global null pointers used internally to return null character and null strings. 09/19/2002: Modified the UString::UString(unsigned nchars) and UStringw::UStringw(unsigned nchars) constructors not to set the logical length of the string object. The logical length will be set when a string is assigned or copied into the string object. 10/13/2002: Added additional copy constructors, assignment operators, and overloaded += operators to support the wxString class. ============================================================== wserror.cpp ============================================================== 07/10/2001: Changed include path for the gxstypes.h include file from <gxstypes.h> to "gxstypes.h" ==============================================================