|
What's new since the last release?
No news items available at this moment.
What's new since the last Beta?
xBuild Project Manager
- Fix: Don't add winapi.lib if winapi.obj is included
- In xBuildW.exe, the error log file will also be opened with the standard application set in windows to open ".log" files.
- Added support for -NoAutoFWH switch.
Setting this setting to .T. in the XBP file makes xBuilder to ignore "fivewin.ch" in CH files.
- Updated for new maindlle.c of .ORG
- Refined PRG Dll support
- Corrected typo reversing xhbdll.dll / xhbddll.dll and xhbmtdll.dll / xhbdmtdll.dll
- Fixed annoying bad bugs created by Linux related adjustments
xHarbour Builder
- Don't add winapi.lib if winapi.obj is included for xBuilder
- Added HB_EXPORT char * hb_strduptrim( const char * pszText ) and HB_EXPORT ULONG hb_strlentrim( const char * pszText )
- Correction on definition of hb_stackRDD() when -DHB_STACK_MACROS.
- Fix unresolved external hb_strMatchWild() upon building an EXE.
- Fixed XCC compilation.
- Changed ULONG hb_gcIncRef( void * ) to void hb_gcIncRef( void * ).
- Fixed function name in HB_TRACE message.
- Fixed parameter parsing - argv[0] is program name with path and it was used to parse parameters so any '-' and '/' character in harbour binaries name and/or paths were decoded as parameters.
- Fixed accessing freed memory in line number updating.
- Fixed support for HB_THREAD_TLS_KEYWORD
- Fixed declaration of HB_ATOMIC_INC()/HB_ATOMIC_DEC() macros for 32bit x86 *nixes.
- Changed HB_PCODE_VER to 10.
- Fixed building with Bison 2.4.
- Added hb_snprintf() Harbour wrapper for snprintf() which terminates the buffer with a '\0' char for CRTLs that need this (like MSVC).
- Added HB_PRINTF_FORMAT() macro to declare functions with printf() like formatting parameters.
- Added macros for some function attributes which can be used in the future for optimizations.
- Sprintf() / snprintf() changed to hb_snprintf().
- Updated timeout to 3000 insted of 20000 in senmail.
- Fixed compile time optimization of Upper() to process chars as unsigned char.
- Fixed GPF trap related to double freeing yylval.string.
xHarbour WinAPI
- Fixed to support inclusion in DLLs
- Added GetHostByname()
xHarbour Builder xbScript
- Fixed compiler warning.
- Fixed Clipper compilation.
- Fixed to protect against recursive errors.
- Fixed to properly report error in PP_Run() if not handled otherwise.
xHarbour OLE
- Corrected to not use VM internals.
- Fixed assignment to oErr:Operation from "+" to "-" in OleValueMinus() method.
- Added s_iObjects counter and appropriate test to DllCanUnloadNow()
xHarbour Visual Debugger
- Fixed line coloring in the new code.
xHarbour Compiler
- Fix: TOleAuto was retrieving date-only values incorrectly
- Fixed support for GLOBALs in dlls.
- Added version of hb_vmProcessSymbols() which redirects to b_vmProcessDllSymbols().
The maindllh module is linked into harbour.dll and will therfore be used to process the self contained RTL symbols as dynamic. Any PCODE Dll must also be linked against Harbour.dll (Harbour.lib) and will therefore link to hb_vmProcessSymbols() of harbour.lib:maindllh.obj thus processing the Dll's PCODE symbols as dynamic.
- Added maindlle.c which uses a version of hb_vmProcessSymbols() which redirects to hb_vmProcessExeSymbols().
The maindll module is is now linked into dllmain.lib instead of maindllh.c. DllMain.lib should be linked into EXE applications which are staticly linked to harbour.dll by means of harbour.lib. The prg modulues of such EXE should use the native version of hb_vmProcessSymbols() in hvm.c but that version is masked by the maindllh module. Linking DllMain.lib (before Harbour.lib) resolves that problem, by linking to hb_vmProcessSymbols() in the maindlle module, which then redirects to the native hb_vmProcessSymbols(). This in turn processes the modules of the EXE as static symbols. Please note that in such sample, staticly linked application, UseDll.exe, the dynamic symbols (harbour.dll and optionally PrgPCode.dll) will be processed as dynmaic symbols, while the application defined symbols will be processed as static, and are allowed to OVERRIDE any dynamic symbol loaded from dll (symbols from staticly linked dlls are loaded first).
- Fixed support for GLOBALs in dlls.
- Exported and corrected hb_evalBlock0(), hb_evalBlock1() and hb_evalBlock() to use hb_vmsend() instead of hb_vmFunction().
- Fixed MT initialization
- Added missing param to VM_PROCESS_DLL_SYMBOLS. Thanks to Przemyslaw Czerpak in helping find this bug for pcode dlls.
- Simplification of start-up function generation.
- Minor format when -gc0: remove unnecessary blank lines and spaces between pcode constants to produce more compact output.
- Add pragma to disable warning on unused param HB_$INITSYM (for: __ICL ).
- Fixed bug in C-file generation with -gc3 when PRG file contains GLOBAL variables.
- Removed support for double letters string containers ['...'] ["..."] and [[...]] as PP now uses E"..." instead
- Fixed to not used access(). Using hb_fsFileExists() instead.
- Fixed the description of -gc3.
- Exit on compiler internal errors instead of going into an infinite loop.
- Fixed -es switch to promote all warnings into errors, as per Clipper.
- Fixed GPF trap introduced by recent fix to codeblock nameless arguments.
- Fixed compile time optimization of Upper() to process chars as unsigned char.
xHarbour Virtual Machine
- Changed hb_xrealloc() to be ANSI-C realloc() compatible.
- Added hb_stackRDD( void ).
- Changed hb_errLaunch( PHB_ITEM pError ) in order to return to the code so it's possible to release items in some cases, or continue.
- Removed unnecesary castings, cleaned warnings and added some simplifications.
- Restored the use of memory, now to test DL_ALLOC will be explicit with macro -DHB_FM_DL_ALLOC.
- Fixed warnings when are not defined HB_FM_WIN32_ALLOC.
- Added alternative memory manager written by Doug Lea.
- Fixed some remaining bugs in memory functions.
- Fix redefine with Windows only support. Instead of refedine HB_ATOMIC_INC/DEC, define HB_ATOMIC_INCP/DECP
- Added heap functions instead of Local ones to test it. Only used under windows platforms it can increase speed. can be tested running speedtst.prg
- Restore HB_EXPORT qualifier for functions reset by "#undef".
- Restore HB_EXPORT qualifier for functions not defined in header file.
- Synched if( fDynLib ) branch of hb_vmRegisterSymbols().
- Changed hb_itemPutNLen() function to create integer item only when conversion to HB_LONG does not change value of passed double argument.
- Added hb_retc_null() which is equivalent to hb_retc( NULL ) and will return an empty string.
- Added C level functions hb_hashId(), hb_arrayId(), hb_memvarGetValueBySym(), hb_vmIsMt() compatible with Harbour.
- Fixed a possible GPF trap in hb_stackPop().
- Fixed casting for memcpy and pClass->pFunError - by default it's declared as function address and passing code segment pointer to memcpy is illegal in some OSes so without valid casting such code cannot be compiled.
- Added __CLS_CNTSHRDATA().
- Updated function declarations to current CVS.
- Fixed wrong default initialization for FHANDLE.
- Added missing HB_EXPORT qualifier.
- Fixed copied as is from Harbour hb_itemUnShareString() Harbour uses different HVM internals and such code cannot be copied without adopting to xHarbour.
- Avoid s_pClasses reallocation in MT mode.
- Minor optimization to fm.c.
- Minor optimization to fm.c (enhanced speed).
- Added macro HB_FM_LOCALALLOC to use LocalAlloc instead of HeapAlloc.
- Removed missing initialization protection for hProcessHeap from maloc/realloc/free macros.
- Moved call to hb_xinit() from hb_vmInit() to hb_vmProcessSymbols().
- Added Harbour-compatible C-level class APIs hb_clsCreate(), hb_clsAdd(), hb_clsAssociate().
- Added startup symbol to hb_stack (it gives very good stop conditions for all procedures which trace stack calls and resolves the problem with hb_stack).
- Ported Harbour's C-level implementation of ERROR class. This is faster and allows to avoid PCode execution.
- Fixed missing mutex unlock when HB_RDD_MAX_AREA_NUM is reached in hb_rddSelectFirstAvailable().
- Changed hb_xinit to return integer for ease initialization on C++ mode.
- Reverted back C++ mode fixed memory subsystem initialization
- On hb_vmQuit() -> fixed memory leak on program exit.
- Avoid s_pClasses reallocation in MT mode.
- Fixed building on Darwin.
- Allow base symbol to be STATIC.
- Hide the hb_stackInit base stack item from PROCNAME().
- Refactored hb_gcItemRef() so that it works withOUT recursion.
- Fixed added hb_snprintf as api one needed for dll with PCODE.
- Disable #pragma warning ... in MinGW builds. If some newer MinGW versions support it and it's useful then it can be enabled after checking MinGW version.
- Added void hb_clsAddData( USHORT usClassH, const char * szDataName, USHORT uiID ) which adds data access/assign messages.
- Changed ERROR object to use real datas instead of methods for all instance variables, so the object can be easily serialized.
- Changed to use hb_vmProcessPrgDllSymbols() for better self describing.
- hb_vmProcessDllSymbols() -> hb_vmProcessSysDllSymbols()
- hb_vmProcessExeSymbols() -> hb_vmProcessPrgDllSymbols()
- Fixed a string buffer overflow.
- Eliminated hb_snpritf() from HB_IT_POINTER conversion in hb_itemString().
- Fixed _FIELD indirectly used as alias.
- Fixed some other possible error object leaks.
- Added Harbour compatible translations: hb_openProcess() <-> hb_processOpen() and hb_closeProcess() <-> hb_processClose()
- Assign default value to :filename ivar of ERROR object.
- Prevents "AEVAL in progress" flag for not to be cleared.
- Added void hb_clsAddDataInit( USHORT usClassH, const char * szDataName, USHORT uiID, PHB_ITEM pInit ) which adds data access/assign messages with an initial value.
- Removed references to hb_cdp_page with hb_cdppage() to avoid problems at dll referencing to an external static variable.
- Added missing support of charset at vfpdbf tables.
- Added hb_vmSymbolOverloadDefinition() to patch all previously processed symbols, once overloaded definition is processed.
- Changed SUCCESS by HB_SUCCESS, FAILURE by HB_FAILURE & ERRCODE by HB_ERRCODE.
- Removed direct access to external static hb_set, to fix problems at DLL.
- Accept invalid string key expression if codeblock key expression is given when createindex.
- Fixed memory leak related to debug info of Globals.
- Missing hb_serviceExit() on Quit which cause memory leak when calling xHarbour service routine
- Added macros: HB_TOUPPER(), HB_TOLOWER(), HB_ISUPPER(), HB_ISLOWER(), HB_ISALPHA(), HB_ISDIGIT().
- Replaced tolower() / toupper() / isdigit() with macros or other constructs.
- Corrected few missing settings of item.asLong.length.
- Added missing prg callable HB_HASHID(), symetric with HB_ARRAID().
- Added member privatesbase to HB_SYMBCARGO.
- Removed all ulPrivateBase in favor of new item.asSymbol.pCargo->privatesbase so that CLEAR MEMORY & RESTORE FROM could reset stack frames' private base information by means of new hb_memvarClearAll().
- Added set/reset of new item.asSymbol.pCargo->privatesbase to hb_stackFrame()
- Added hb_stackClearPrivateBases() to service new hb_memvarClearAll()
- __MVRESTORE() with out ADDITIVE caluse and __MVCLEAR() to use new
shared worker, hb_memvarClearAll().
- New worker hb_memvarClearAll() adds: call hb_stackClearPrivateBases() to advise existing frames of privates removal, explicit reset of privates (s_privateStack) and correct Clipper compatible protection of PUBLIC GetList.
xHarbour Run Time Libary
- Added set of new file functions (hb_file*()) which are designed to use with shared file handles and locks: hb_fileExtOpen(), hb_fileCreateTemp(), hb_fileClose(), hb_fileLock(), hb_fileReadAt(), hb_fileWriteAt(), hb_fileTruncAt(), hb_fileSize(), hb_fileCommit(), hb_fileHandle().
- Added HB_EXPORT BOOL hb_fsTruncAt( HB_FHANDLE hFileHandle, HB_FOFFSET llOffset ), HB_EXPORT ULONG hb_fsReadAt( HB_FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount, HB_FOFFSET llOffset ) and HB_EXPORT ULONG hb_fsWriteAt( HB_FHANDLE hFileHandle, const BYTE * pBuff, ULONG ulCount, HB_FOFFSET llOffset )
- Fix for MSVC 64-bit C mode startup procedure.
- removes some warnnings in some compilers. - use PHB_FILE and hb_file*() functions instead of HB_FHANDLE (hb_fs*()) to access files. - added protection against multiple registering RDD with the same name.
- Fixed WIN32 HANDLE to integer number conversions in Harbour file API.
- Fixed F_ERROR and FS_ERROR usage.
- added support for optional FHANDLE mapped to pointer instead of integer number - disable by default.
- Fixed return value after RT error.
- Added rt error as in clipper when OrdKeyVal is greater than 240, with default capabilities as in clipper.
- Removed RightVisible/LeftVisible assigns. These properties are read only.
- Fixed LeftDetermine() method to avoid bound error array access if we call o:freeze within a while-end loop.
- Fixed freeze assign to call setfrozencols() method only.
- Fixed Setfrozencols() method to avoid display blank row at first/last row after up/down movements when freeze is > 0.
- Removed duplicated code on drawrow() method.
- Fixed colsep empty string bug.
- 'Escape' characters, such & or " were not written correctly in node attribute values
- Declaration of IID_IClassFactory2 for OpenWatcom.
- Define MOUSE_WHEELED if not defined (for: __DMC__).
- Fix MT compilation when -D_HB_API_INTERNAL_.
- Fixed gpf in hb_gtInfo(HB_GTI_WINTITLE, "").
- Fixed delete operation under set deleted on/off.
- Cleanning PellesC errors compilation and warnnings in other compilers.
- Fixed some SetColor function and ColorSpec data from tget, to be more clipper compatible.
- Minor changes to CURDIR.
- Fixed unreferenced HB_FA_POSIX_ATTR on linux build.
- Fixed CurDir, it could fail in some platforms as vmware.
- Fixed mouse row/col position detection when mouse event input mask is active.
- Added function HB_NToS( ) -> . This is equivalent to LTrim( Str( ) ), just faster.
- Use CP437 for BOX characters when terminal is in UTF-8 mode.
- set default color before raw scrolling in console emulation mode.
- Fixed redrawing GPM mouse pointer after screen updating
- Use XInitThreads() for MT safe thread access when linked with MT HVM.
- Added optional mutex protection enabled by HB_XWC_XLIB_NEEDLOCKS macro to use when XLib does not support XInitThreads()
- Removed unnecessary declaration for _POSIX_PATH_MAX.
- Added HB_DISPBOX() function - works like DISPBOX() bit does not change cursor position and is atomic for other threads.
- Added HB_DISPOUTAT() which works like DISPOUTAT but does not change cursor position.
- Added HB_SCROLL() function - it works like SCROLL() but supports 2 additional parameters: color and erase char.
- Updated new syntax: HB_DumpVar( xVar, lRecursive, nMaxRecursionLevel ) -> cDump.
- Updated to use __SetClassScope() to unblock access to protected.
- Implemented optional parameters nStart, nEnd in RAT.
- Added #define _XOPEN_SOURCE to fix warnings on Unixes.
- Implemented hb_fsGetAttr() and hb_fsGetFileTime() for DOS, MS-Win, OS2 and *nixes. Please test it on different platforms.
- Added hb_fsSetFileTime()
- Added hb_fsSetAttr()
- Added special IO error handling which works without HVM stack. It allows to use hb_fs*() functions without allocated stack by 3-rd party threads.
- Added hb_fsNameExists() C level function.
- Added hb_FNameExists() Harbour level function.
- Added hb_fsFileExists(). This is the preferred way to check for the existence of a file.
- Added HB_FILEEXISTS() Harbour level function to check for the existence of a file.
- Added hb_fsDirExists().
- Added HB_DIREXISTS()
- Removed lInErr static variable - it breaks using errorNew() in MT programs.
- Added ::Out(...) method to class hb_LogConsole().
- Added hb_LogDbf class to log messages into a dbf.
- Added METHOD Connections() -> that returns how many connections HB_LogInetPort class is handling.
- Added METHOD BroadcastMessage( cMessage ) that sends a message to any available connections.
- Removed lInErr static variable, it breaks using errorNew() in MT programs.
- Fixed MT compilation.
- Fixed UNSELECTED color updating in SetColor().
- Added HB_CDPSELECT() which does the same as HB_SETCODEPAGE(), but aligns well with function naming rules and namespace.
- Added HB_CDPUNIID( ) -> . This will return the std CP ID of a Harbour CP, or empty if the Harbour CP isn't linked.
- Removed global code page variable: hb_cdp_page and moved code page settings to HVM stack.
- Added new function hb_cdpID() which returns current code page character ID
- Added new functions hb_vmCDP() and hb_vmSetCDP() to get/set active for given thread code page structure
- Revised setGet functions with the idea to change all references to hb_set with apropiated setGet to avoid problems at dll or api changes at mt mode.
- Divided __SETCENTURY() PRG function into two functions: __SETCENTURY() and public C function hb_setSetCentury() to manipulate century setting from C code.
- Added _SET_CODEPAGE which works like _SET_LANGUAGE giving common interface.
- Added protection against recursive errors in errorsys.
- Added GetColPos() and GetColName() methods to TBrowse. These methods are usefull to create dinamic tbrowse/browse/dbedit.
- Fixed warning cleanup which from warning created very serious bug in non Windows builds.
xHarbour Preprocessor
- Initialize PHB_PP_TOKEN pToken (line 429) before used.
- Added hb_setGetDirSeparator().
- Added missing #undef HB_VER_L_USR in generated hbverbld.h file.
xHarbour RDD
- Fixed ring buffer initialization in Sx_Compress().
- Added DBSELECTAREA(), DBSTRUCT(), HEADER(), RECSIZE(), LUPDATE().
- Added fix for problem with EVAL block used in PACK command.
- Fixed error in SDF RDD read mode.
- Fixed bug in joined leaf pages size calculation which activated error massage enabled by HB_CDX_DBGCODE_EXT macro.
- Added ORDLSTDELETE() method. Now ordbagClear() should work for DBFCDX.
- Added dbfnsx rdd form Prezmek harbour's version.
- Fixed OrdBagName, it returned to extension.
- Fixed a syntax error in HB_TRACE() call.
- Added missing functions BlobImport and BlobExport, they was called DbFilePut and DbFileGet.
- Added missing support to change CPpage from workarea, now is possible to use DbInfo( DBI_CPID [, ] ).
- Added .prg function to create temporary files: hb_dbCreateTemp( , , , , ) ->
- Added hb_rddCreateTableTemp() C function to create temporary table which are automatically deleted on close. All indexes and memo files for such tables are also in temporary files and automatically deleted on close.
- Cleaned dbfnsx RDD name to be compatible with other dbf* RDDs and fixed builds which needs pack_src.sh.
xHarbour DBFCDX
- Fixed BM_SetArrayFilter, to generate filter from array of recnos.
- Fixed possible GPF caused by missing RT error.
- Added RT errors for invalid KEY or FOR expressions.
xHarbour DBFNTX
- Fixed possible GPF caused by corrupted indexes.
- Added support for temporary tables in native RDDs.
xHarbour RMDBFCDX
- Fixed to support inclusion in DLLs
- Fixed typo in hb_setGetForceOpt(). This fixes RMDBFCDX again.
xHarbour RDDADS
- ADSMGGETWORKERTHREADACTIVITY() and ADSMGGETUSERNAMES() that was skipping first user. Borrowed from Harbour.
- Added support for ADS_USE_OEM_TRANSLATION for old ads versions.
- Optimized current key decoding in dbfnsx.
xHarbour WVT.lib
- Changed return type to const char * in function hb_gt_wvt_Version().
- Changed parameters type to const char * in function.
- Changed parameters type to const char * in function.
xHarbour xHBZlib
- ZIPSetBuffer(...) and ZIPGetBuffer(...) always returned -1
as a ZIP object handle. This has been fixed.
xHarbour ApolloRDD
- Fixed to support inclusion in DLLs
|
|