From 32ac78f79149f892a45eec174286465c4d3fb03a Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Mon, 13 Sep 1999 21:11:12 +0000 Subject: [PATCH] 19990913-23:00 GMT+1 --- harbour/ChangeLog | 3754 +---------------------------------------- harbour/ChangeLog.003 | 3753 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 3756 insertions(+), 3751 deletions(-) create mode 100644 harbour/ChangeLog.003 diff --git a/harbour/ChangeLog b/harbour/ChangeLog index ae4a029a10..0808577b07 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3755 +1,7 @@ -19990913-23:50 GMT+1 Victor Szel - - * source/rtl/gtapi.c - ! hb_gtRectSize() fixed to always return a valid value, even when - the coordinates are out of range, just like in Clipper. - This caused a GPF when running a program with the standard output - redirected. The screen size stored in the caching static variables - were invalid or uninitialized. - The Row()/Col() parameters are also cached in static variables, I'm not - sure if this is needed, it would be better IMO to add hb_gtRow() and - hb_gtCol() and call these when needed, it could be also cached locally - to optimalize where appropriate. - ! s_uiMaxCol()/s_uiMaxRow() static variables replaced with hb_gtMax*() - calls. - % hb_gtWriteCon() now caches the screen size info locally. - * source/rtl/console.c - ! SAVESCREEN() - Non GTAPI verison now returns an empty string. - * source/rtl/alert.prg - + Will now return NIL and do nothing if the number of parameters was zero. - This better mimics the STRICT Clipper behaviour. - ! One explicit value changed to manifest constant. ( 0 -> SC_NONE ) - * source/rtl/memvars.c - ! FO_SHARED flag uncommented for __MVRESTORE(). - NOTE: Cygwin will now delete the .mem file after a restore. - This is a known problem and should be fixed elsewhere. - * tests/working/overload.prg - + New tests added by Jose Lalin. - * source/rtl/natmsg/msggl.c - * Updated version by Jose Lalin. - * include/errorapi.h - source/rtl/errorapi.c - + hb_errPutArgs() function to set :Args of an Error object. - * tests/working/rtl_test.prg - tests/working/memfile.prg - + __MVSAVE()/__MVRESTORE() error cases moved here from MEMFILE.PRG - + Operator overloading tests added. - -19990913-15:35 GMT+2 Ryszard Glab - - *source/rdd/dbcmd.c - * added retry possibility for error handling in field - assignment/access - * changed BOOL to ERRCODE for hb_rddSelect*() and - hb_rddPutFieldValue/hb_rddGetFieldValue - - *include/rddapi.h - * changed BOOL to ERRCODE for hb_rddSelect*() and - hb_rddPutFieldValue/hb_rddGetFieldValue - - *source/vm/hvm.c - * changed BOOL to ERRCODE for hb_rddSelect*() and - hb_rddPutFieldValue/hb_rddGetFieldValue - * memvar handling functions moved directly into main VM loop - - *include/ctoharb.h - * removed declaration of internal memvar functions used in VM - - *source/rtl/memvars.c - * added retry possibility for error handling in variable access - - *tests/working/rtl_test.prg - * added code to test __MVGET function (macro evaluation in Clipper) - -19990913-13:30 GMT+1 Victor Szel - - * source/compiler/harbour.y - ! Stupid bug fixed which always caused an error when using the /p switch. - The bug has been introduced today. - * source/runner/runlib.c - * Formatting/indenting errors fixed. - -19990913-12:00 GMT+1 Victor Szel - - * tests/working/rtl_test.prg - + ASORT() tests added. - ! Fixed an expected result for aScan() was 12 instead of 4. - ! CHR() tests fixed to avoid the Clipper compiler expression optimizer. - * source/rtl/asort.prg - ! Parameter checking fixed and streamlined again. - ! Fixed when sorting a given range of the array. - ! Fixed when the codeblock is not returning a logical type. This is not - Clipper compatible, but Clippers behaviour is not defined for this case, - and seems buggy. - % One variable eliminated from QuickSort() - + Formatted. - ; Results checked against Clipper - -19990913-10:00 GMT+1 Victor Szel - - * include/compiler.h - include/hberrors.h - source/compiler/harbour.l - source/compiler/harbour.y - source/compiler/gen*.c - source/hbpp/hbpp.c - source/hbpp/hbppint.c - source/hbpp/stdalone/hbpp.c - ! Fixed a GPF when the .PPO file could not be created. - * The compiler screen output made more Clipper like. - * Some error messages made Clipper like. - + Some printf()s changed to use GenError() instead. - + Added www site name and Copyright notice to the header. - * lPpo -> _bPPO variable name change. - * source/vm/hvm.c - + Some casts added. - -19990913-01:40 GMT+1 Victor Szel - - * source/rtl/memvars.c - ! __MVSAVE() - Pedantic fix to the saved format of DATE type. - ! __MVSAVE() - Made it bug compatible with Clipper, for DOUBLE numeric - types with no decimals, Clipper adds one to the saved width, which is - wrong, since at restore the width will be incorrect (one more than it - should be), you can check this with the value 5000000000 for example. - HARBOUR_STRICT_CLIPPER_COMPATIBILITY added here, right now the bug fix - in enabled. - * source/rtl/asort.prg - ! More parameter checkings added. - * tests/broken/numform.prg - + Added test to demonstrate a bug in the compiler. (a==22.and.b==10) - * tests/working/memfile.prg - ! Fixed faulty RESTORE command. - * source/compiler/harbour.y - -19990912-17:11 EDT Paul Tucker - * source/rtl/memvars.c - * added a few casts - -19990912-20:45 GMT+1 Victor Szel - - * source/rtl/memvars.c - ! __MVSAVE() will no longer try to save memvars with longer filename than - 10 characters, the Clipper maximum. - - * tests/working/memfile.prg - tests/working/Makefile - + .MEM file save/restore test program added, it's a simple test and doesn't - yet checks for every aspects of the topic. - - * funclist.txt - + __MSAVE()/__MRESTORE() marked Ready. - -19990912-20:30 GMT+1 Victor Szel - - * source/rtl/memvars.c - + __MVSAVE()/__MVRESTORE() .MEM file saving and restoring support added, - Clipper compatible, with extensions to __MVRESTORE() to only restore - varnames with a specified mask. - - * source/rtl/itemapi.c - include/itemapi.h - + hb_itemPutDL() added to set a date directly with a Julian date value. - - * source/rtl/filesys.c - ! hb_fsIsDrv() fixed bug when the original drive is not restored. - Thanks go to Jose Lalin for finding this. - - * tests/working/statinit.prg - + More meaningful messages are printed. - - * source/rtl/extend.c - ! hb_parcsiz() now only works for parameters passed by reference, just like - in CA-Cl*pper. - -19990912-15:45 GMT+2 Ryszard Glab - - *include/errorapi.h - *source/rtl/errorapi.c - * all hb_errRT*() functions return error code returned by - hb_errLaunch - * separated generic runtime error creation from error launching - - *include/extend.h - *source/rtl/strings.c - + added hb_strncpyUpper( char *pDest, char *pSource, ULONG ulLen ) - function to copy and convert to uppercase in one operation - - *source/rdd/dbcmd.c - * functions that select workarea can now retry the select operation - in case of error (the user code can open a missing database in a - custom error handler) - - *source/vm/hvm.c - *added substitution possibility in case of invalid alias value - - *tests/working/rtl_test.prg - * failure description shows now function name and line number where - failed code was used - - *include/external.ch - * added declaration of MEMVARBLOCK, __MVGET, __MVPUT - -19990912-07:43 GMT+1 Victor Szel - * source/vm/hvm.c - ! hb_vmSwapAlias() removed the RT error 9993, now it works like Clipper. - + Added an empty TYPE() function prototype with a TODO: - * source/vm/initsymb.c - - QSELF removed from the list, since it's a native opcode in Harbour, - there's not need to initialize it, the function address was NULL anyway. - + Changed NULL pointer to HB_TYPE for the "TYPE" symbol. - initsymb.c is complete now. - * source/rtl/terror.prg - source/compiler/genobj32.c - * Small corrections. - -19990912-01:29 EDT Paul Tucker - * source/rtl/dir.c - ! Changed selection criteria to include files that do not have - any attribute set. This particularly affected the results - returned by tests/working/adirtest.prg - * source/rtl/adir.prg - ! Changed default attributes passed to Directory to include "A" - -19990912-00:45 EDT David G. Holm - * source/rtl/dir.c - ! Changed file size array element to numeric to match CA-Clipper. - * tests/working/dirtest.prg - + Added 'SET CENTURY ON'. - - Removed padding from size array element. - - Added a TRANSFORM call to size array element. - - Removed padding from date and time array elements. - -19990911-20:25 EDT David G. Holm - * source/rtl/tone.c - ! Added '|| defined(__CYGWIN__)' to the #if block for HARBOUR_GCC_OS2 - and _Windows for calculating the value for temp for each pass of the - tone duration timing loop. - -19990911-07:42 EDT Paul Tucker - * makefile.vc - added new files for compiler to exe generation section - -19990911-13:03 GMT+1 Victor Szel - * source/compiler/harbour.y - source/compiler/genc.c - source/compiler/genhrb.c - source/compiler/genjava.c - source/compiler/genpas.c - source/compiler/genrc.c - source/compiler/Makefile - include/compiler.h - makefile.b32 - makefile.b40 - makefile.vc - harbour.b31 - + Separated the generation code from the main HARBOUR.Y file. - (The Borland and MSVC make files have been modified, but I could not test - them) - * source/rtl/arrays.c - + One comment added about hb_itemGetDS( NULL, szDate ); - -19990911-12:45 GMT+2 Ryszard Glab - - *source/compiler/harbour.y - * changed binary search to linear search for abbreviations - or redefinitions of reserved functions - - *source/rtl/math.c - * added generation of runtime errors in case of math errors - (log(0), sgrt(-2), etc) - for Watcom C only at this moment. - 'matherr' function is used to suppress printing of internal - compiler message for math errors. I think we need rethink - the handling of such errors. - - *source/rdd/dbcmd.c - *include/rddapi.h - *source/vm/hvm.c - * functions called from virtual machine return SUCCESS or FAILURE - -19990911-11:30 GMT+1 Victor Szel - * contrib/odbc/odbc.c - include/classes.ch - include/compiler.h - include/ctoharb.h - include/errorapi.h - include/extend.h - include/init.h - include/itemapi.h - include/pcode.h - source/compiler/genobj32.c - source/compiler/harbour.l - source/compiler/harbour.y - source/compiler/symbols.asm - source/debug/debugger.prg - source/rtl/arrays.c - source/rtl/classes.c - source/rtl/console.c - source/rtl/copyfile.c - source/rtl/dates.c - source/rtl/descend.c - source/rtl/errorapi.c - source/rtl/errorsys.prg - source/rtl/extend.c - source/rtl/filesys.c - source/rtl/fm.c - source/rtl/inkey.c - source/rtl/itemapi.c - source/rtl/math.c - source/rtl/msgxxx.c - source/rtl/objfunc.prg - source/rtl/setkey.prg - source/rtl/strings.c - source/rtl/tbcolumn.prg - source/rtl/tbrowse.prg - source/rtl/tclass.prg - source/rtl/terror.prg - source/rtl/tget.prg - source/rtl/tgetlist.prg - source/vm/dynsym.c - source/vm/hvm.c - * Partial copyright headers formatted, joined where possible, etc. - * Copyright header changed to the standard doc/hdr_tpl.txt for - Antonio Linares. - -19990911-01:42 EDT Paul Tucker - * source/compiler/harbour.y - sz_Compare4() Change the length of the first compare to - Min( 4, len(string)) to account for strings shorter than 4. - Add 1 to the length in the second compare to include the trailing - null so that (ie:) SetPos and SetPosBS can be detected as unique. - -19990910-18:45 EDT David G. Holm - * tests/working/rtl_test.prg - ! Changed smart stringify token marker in TEST_LINE to regular - stringify token marker. - * Changed all alias tests to use TEST_LINE instead of TEST_CALL. - -19990910-17:00 EDT David G. Holm - * source/rtl/inkey.c - ! In HARBOUR HB_INKEY( void ), the double seconds variable has to - be initialized to 0.0, because not all compilers initialize all - local variables to 0 and seconds is not assigned if INKEY() was - called with no parameters. - -19990910-22:10 GMT+1 Victor Szel - * source/vm/hvm.c - ! Fixed the operator overloading feature. (Reported by David) - * source/compiler/harbour.y - + Added /es switch, like in Clipper. /es0 and /es is the default, no - errorlevel is raised on warning, /es1 will set errorlevel, /es2 will - set errorlevel and not generate output. - + The program header is always (even with /q) printed now, right at startup. - * "id" -> "prefix" - + /m /r /t /u @ command line switches added as todo, checks and - messages added to the source, commented out lines added to help screen. - * tests/working/Makefile - tests/working/statinit.prg - + //NOTEST removed, the missing dummy HELLO() function added, so now it - links. - * source/rtl/memvars.c - * Fixed the MEMVARBLOCK() implementation in the doc examples 8) - -19990910-15:25 EDT David G. Holm - * source/rtl/gt/gtos2.c - ! I forgot to remove a debug printf() call when I committed the - hb_gt_Scroll() fixes in ChangeLog entry 19990908-21:35 EDT. - -19990910-14:55 EDT David G. Holm - * source/rdd/dbcmd.c - * source/rdd/dbf1.c - * source/rtl/copyfile.c - * source/rtl/filesys.c - * source/rtl/set.c - * Changed F_ERROR back to FS_ERROR. - -19990910-14:40 EDT David G. Holm - * source/compiler/harbour.y - ! Changed DWORD return type for PackDateTime() to ULONG. - -19990910-14:20 EDT David G. Holm - * source/rtl/console.c - ! Uncommented two calls to hb_fsSetDevMode() in hb_consoleInitialize() - which force the stdout and stderr handles to binary mode for Clipper - compatibility. There was no explanation in the ChangeLog as to why - the two calls had been commented out. - -19990910-14:15 EDT David G. Holm - * tests/working/Makefile - ! Moved statinit.prg to BAD_PRG_SOURCES, because it won't link. - * tests/working/statinit.prg - ! Added '//NOTEST' as the first line, because it won't link. - -19990910-17:40 GMT+1 Victor Szel - * tests/working/rtl_test.prg - + Added a more complete ALIAS regression test suite. - * source/compiler/harbour.y - ! Compiles even if the YYDEBUG constant is *not* defined, the compiler - also hides the /y switch from the help screen. - + Added command line switch /x. The init symbol function name can be - set to an explicit value (using /xMyCoolLib) or to an automatically - generated one (using /x). By default no mangling takes place. - * include/itemapi.h - source/rtl/itemapi.c - + hb_itemPCount(), hb_itemParamPtr(), hb_itemReturnPtr() Item API calls - added, to provide full functionality by the Item API. The longer term - goal would be to make the Item API as the preferred, most complete and - flexible API, and leave the Extend API as a secondary, bit slower, but - simpler and more compatible option. Also the Item API should make it - unnecessary to directly access internals, so it should provide a full but - controlled access to all those. Only the VM itself should have access to - internals IMO. - * include/compiler.h - * Some formatting. - -19990910-16:00 GMT+2 Ryszard Glab - - *source/vm/hvm.c - * string alias is now correctly handled - - *include/rddapi.h - + added declaration for hb_rddSelectAorkAreaAlias - -19990910-11:10 GMT+1 Victor Szel - * tests/working/rtl_test.prg - + Enabled some alias tests which fail. (Ryszard, could you take a look - at them ?) - * source/vm/hvm.c - ! hb_vmSwapAlias() - Fixed mistyped variable name, pItem was accessed - instead of pWorkarea. (Is this OK, Ryszard ?) - * source/rtl/itemapi.c - ! hb_itemStrCmp() - Fixed a bug, when the character were compared as a - signed value instead of unsigned. ( BYTE ) casts added where needed. - This caused four regr.tests to fail. - * source/rtl/gtapi.c - ! hb_gtSetColorStr() is now using toupper instead of a platform - dependent bit operation. - * tests/working/rtl_test.prg - + Code added to test the :Args feature of error handling, this is commented - out, since Harbour doesn't support it yet. - * include/error.api - ! Zero bytes (!) removed from some places, so now the compatibility header - files are working fine. - * source/compiler/harbour.y - source/rtl/dir.c - source/memvars.c - * Some formatting corrections. - * include/ctoharb.h - * Opcode functions grouped by type. Later on the same thing should be - done in HVM.C. If similar code fragments are close to each other, bugs are easier to spot. - * include/pcode.h - * Comments aligned. - -19990910-11:05 GMT+2 Ryszard Glab - - *source/compiler/harbour.y - * corrected support for pcode buffer larger than 64kB - (many WORD converted to ULONG) - However jumps are still limited to signed 16 bits - the compiler - generates error when this limit is exceeded - - *include/compiler.h - * changed WORD to ULONG - - *include/hberrors.h - * new error ERR_JUMP_TOO_LONG - -19990909-21:40 EDT Paul Tucker - * makefile.vc - + source/rtl/memvarbl.prg - + /q to Harbour flags - + /nologo to C flags - -19990909-20:55 EDT David G. Holm - * include/filesys.api - ! Added FS_ERROR (defined using '#define FS_ERROR F_ERROR' - following the already present '#include "fileio.ch"'). - -19990909-20:00 EDT David G. Holm - * include/fileio.ch - * source/rdd/dbcmd.c - * source/rdd/dbf1.c - * source/rtl/copyfile.c - * source/rtl/filesys.c - * source/rtl/set.c - ! Changed all FS_ERROR to F_ERROR for Clipper compatibility. - Thanks to Matteo Baccan for reporting this. - -19990910-01:10 GMT+1 Victor Szel - * source/rtl/arrays.c - % One memset() call replaced with a call to the Item API. It's a bit - slower, but this is only an error handling branch, which is not getting - called in normal cases anyway. - * source/rtl/itemapi.c - % hb_itemGetDS(), hb_itemPutDS() now uses the new date API call. Simpler. - and the low level date handling memset(sz,' ',8) calls could be removed. - * source/rtl/extend.c - % hb_pards() uses the new date API call, so it's even simpler now. - * source/rtl/dates.c - include/dates.h - + New simpler date API functions added: - hb_dateDecStr() == hb_dateStrGet() + hb_dateEncode() - hb_dateEncStr() == hb_dateDecode() + hb_dateStrPut() - * source/rtl/errorapi.c - + Added support for the :Tries variable, now Harbour will increment it on - every retry. - * A bunch of internal item access changed to Item API calls. This also - fixed a possible problem with accessing Integer member without making - sure that the type is an INTEGER. - + "Internal error" text changed to "Unrecoverable error". - * source/rtl/strings.c - ! ASC(), CHR() error value substitution added. - ! CHR() added a HARBOUR_STRICT_CLIPPER_COMPATIBILITY branch, where Harbour - will handle the value 256/512/... like Clipper. - * tests/working/rtl_test.prg - + ASC(), CHR() tests added. - + Detected preprocessor errors are always displayed. - * include/external.ch - source/rtl/tget.prg - source/runner/stdalone/external.prg - * __GET synonym for _GET_ added. Clipper really uses this function name - _GET_ is always converted to __GET internally by the compiler. - * source/tools/Makefile - source/vm/Makefile - source/tools/debug.c - source/vm/debug.c - makefile.b31 - makefile.vc - * DEBUG.C moved to the Harbour VM, since it's used from the debugger. - Please check the non GNU makefile, since I could not test them. - * source/rtl/terror.prg - + Reformatted. - -19990909-21:30 GMT+1 Victor Szel - * source/rtl/arrays.c - ! hb_arrayCopy() fixed. Now it has two methods, one strictly compatible, - and one which fixes buggy behaviour on extreme parameters. Clipper will - copy one item, even it an out-of-range start, or target position is - passed, I've considered that buggy. You can choose with the - HARBOUR_STRICT_CLIPPER_COMPATIBILITY switch anyway. - * tests/working/rtl_test.prg - + ACOPY() tests added. - * source/rtl/tgetlist.prg - + Using getexit.ch include file, instead of repeating its content. - * source/debug/tbrwtext.prg - + CVS header added. - * include/extend.h - ! Some Clipper compatibility include files moved to the bottom, it's - better now, but it still doesn't work when - HARBOUR_STRICT_CLIPPER_COMPATIBILITY is defined. - * source/rtl/tget.prg - source/debug/debugger.prg - + Using common.ch include file, instead of repeating its content. - DEFAULT := form changed to the standard DEFAULT TO form, which is a - bit more efficient anyway, since it only assigns when needed. - * source/tools/fileread.prg - source/tools/dates2.c - source/tools/hb_f.c - source/vm/dynsym.c - source/hbpp/table.c - source/hbpp/hbppint.c - source/hbpp/hbpp.c - source/compiler/fixflex.c - source/rtl/*.c - * Standardization in header format. Note that we should also standardize - the *text* of the copyright message. - * source/vm/hvm.c - * Small formatting correction. - * source/rtl/xsavescr.prg - + Reformatted. - -19990909-18:22 GMT+1 Victor Szel - * source/rtl/arrays.c - ! ARRAY() fixed to parse the dimension list in the right order. - * source/rtl/extend.c - ! hb_stornd() fixed byref method, it stored INTEGER instead of DOUBLE. - * tests/working/rtl_test.prg - + Some new ARRAY() tests added. - * tests/working/extend2.c - ; Compiled/linked successfully with Cygwin. There's still incompatibility - since Harbour needs all the C functions to be prefixed with "HB_". - * Changed HARBOUR function types to CLIPPER. - * include/clipdefs.h - + Added #include "caundoc.api". - * include/hbdefs.h - + Added a __HARBOUR__ define, to make it possible to detect Harbour - from C code. - * include/caundoc.api - + Added _reta() and _pcount(). - * tests/broken/vec2.prg - tests/working/statinit.prg - tests/working/Makefile - ! Moved to the working dir. - -19990909-16:35 GMT+1 Victor Szel - * source/rtl/memvarbl.prg - ! MEMVARBLOCK() now returns NIL if the passed parameter was not a string, - or the MEMVAR name is not declared. - * source/rtl/arrays.c - include/extend.h - ! hb_arraySize() - Fixed a memory related bug. Now when an array is - resized to zero length, it will free (and not reallocate) the memory - allocated for the item pointer table. ASIZE({ "A", "B" }, 0) could - show the problem. - + ARRAY() now supprt multiple dimensions. Code based on hb_vmArrayNew(). - ! Array functions error handling behaviour made completely CA-Clipper - compatible. - ! ARRAY() could GPF on an error condition. - ! AADD() checks if the second parameter is not NULL. - ! AFILL() could GPF when second param was omitted. - ! AADD() now throws a substitutable error. - ! AFILL(), ASCAN(), AEVAL(), ACOPY() - Made completely compatible the - ulStart/ulCount/ulTarget parameter handling. Please note that - ASCAN()/AEVAL()/ACOPY() has not yet been regression tested. - * hb_arrayFill(), hb_arrayScan(), hb_arrayEval(), hb_arrayCopy() changed - to parameter to implement the previous change. - * source/rtl/environ.c - ! __RUN() now checks for the parameter type, not the number. - + __RUN() funtionality enabled for __CYGWIN__ - + __RUN() will now throw an "operation not supported" runtime error on - platforms where it's not supported, this is IMO better than silently - doing nothing. The error has a Default case, so the use can continue - running the program. - ! __RUN() Standardized the doc header. - * source/rtl/copyfile.c - + Made completely compatible in order to pass the tests. A small file - name forming difference is still there. - * tests/working/rtl_test.prg - + __COPYFILE() tests added. - + __RUN() tests added. - + Array function error condition tests. - + MEMVARBLOCK() tests added. - + AFILL() tests added. - * source/rtl/memvars.c - + Added Clipper compatibility functions: - __MCLEAR(), __MRELEASE(), __MXRELEASE(), __MSAVE(), __MRESTORE() - They are simple wrappers to the corresponding Harbour versions. - * funclist.txt - + Added all internal functions (beginning with __) from Clipper/STD.CH. - + Marked MEMVARBLOCK() "Ready". - * source/compiler/harbour.y - * Small indentation fix in the generated code. - -19990909-16:05 GMT+2 Ryszard Glab - - *source/rtl/memvarbl.prg - + corrected to allow setings of NIL value - -19990909-13:00 GMT+2 Ryszard Glab - - *source/runner/stdalone/external.prg - + added __MVGET, __MVPUT, MEMVARBLOCK - - *include/init.h - + added 'static' declaration for functions used to initialize - symbols table - -19990909-12:45 GMT+2 Ryszard Glab - - *source/rtl/memvars.c - * removed unused variables - - *source/rtl/memvarbl.prg - + added new file with MEMVARBLOCK() function - - *source/trl/Makefile - + added memvarbl.prg to PRG_SOURCES - -19990909-12:00 GMT+2 Ryszard Glab - - *source/rtl/memvars.c - + added __mvGET and __mvPUT functions to set/get the value of - private and public variables - - *doc/subcodes.txt - * updated info for 3009 and 3010 subcodes used in __mvGET/__mvPUT - -19990908-21:35 EDT David G. Holm - * include/extend.h - * include/hbdefs.h - * include/hbpp.h - * include/hbsetup.h - * source/vm/hvm.c - ! In order to eliminate a redefinition error for _POSIX_PATH_MAX, - "extend.h" now includes "hbdefs.h", which includes "hbsetup.h", - which includes . - - * source/rtl/gt/gtdos.c - ! Fixed hb_gt_Scroll() by renaming parameter 'attrib' to 'attr', - and assigning all other parameters to variables of the correct - types and names that the code that was cut-and-pasted from the - source/rtl/gtapi.c module expects. - - * source/rtl/gt/gtos2.c - ! Changed the types of the hb_gt_Scroll() parameters to 'char' to - match the source/rtl/gtapi.c usage and changed their names so - that the scrolling logic won't try to use them directly. - + Added local variables to hb_gt_Scroll() with the types and names - expected by the scrolling code and assigned them from their - corresponding parameters. - + Added unsigned char to USHORT conversions for the row and column - scroll values, because negative scroll values were coming through - as positive values greater than 127, because ICC has to default - the char type to unsigned to avoid char type related link failures. - -19990909-01:10 GMT+1 Victor Szel - * source/compiler/harbour.y - + Modified to add the current date and time (in a packed form as a - hexadecimal DWORD value) to the generated symbol init function name, in - order to lessen the possibility of name collisions. - * source/rtl/inkey.c - % hb_inkeyPoll() optimized, so that if no key press could be detected, - the function will immediately return. - ! hb_inkeyPut() fixed to check the parameter and not allow to mistakenly - stuff a zero key code to the buffer. - * tests/working/rtl_test.prg - ! Fixed the expected results of two math functions to the mathematically - correct ones. - + Added some AllTrim() tests which brings CA-Clipper 5.2e to it's knees. - Harbour handles them fine. - * include/hbdefs.h - source/rtl/filesys.c - source/compiler/harbour.y - * MKLONG() and MKINT() moved to hbdefs.h - * LOBYTE(), HIBYTE(), LOWORD() moved outside the - HB_DONT_DEFINE_BASIC_TYPES guard, since they are guarded one-by-one - anyway. (all this in hbdefs.h) - * include/hbdefs.h - include/hbsetup.h - * _POSIX_PATH_MAX moved to hbsetup.h, where it belongs. - * include/dates.h - + Added some missing global functions. - * source/rtl/dates.c - * Small variable name corrections. - * source/rtl/setcolor.c - source/rtl/gtapi.c - ! Fixed indentantion and some small formatting errors. - -19990908-11:56 EDT Paul Tucker - * source/rtl/gtapi.c - * modified SetColor to accept a null pointer, and do nothing - * changed so that "" resets colors to Clipper default. - -19990908-17:00 GMT+2 Ryszard Glab - - *source/compiler/harbour.y - * corrected handling of parenthesized expressions - * corrected generation of pcodes for declaration of dimensioned - array variables ( LOCAL var[ 2, 4 ] ) - there is no longer POP - opcode between array dimensions - - *source/vm/hvm.c - + added code that creates multi-dimensioned arrays - (arrays declared by LOCAL arr[ 3, 5, getDim() ] - it - supports PRIVATE and PUBLIC declaration too) - - *source/rtl/arrays.c - + added functions hb_arrayGetItemPointer() which returns a pointer - to an item occcupied by a specified array element - - *include/extend.h - + added declaration of hb_arrayGetItemPointer() function - - *tests/broken/parexpr.prg - ! moved to tests/working directory - + added some code to test IF and IIF expressions (it is really - related to parenthesized expressions) - - *tests/working/Makefile - + added parexpr.prg - -19990908-10:30 EDT David G. Holm - * source/rtl/environ.c - ! I restored the Windows #ifdef #include block from the 1.43 version, - but kept the #define WIN32_LEAN_AND_MEAN from the 1.45 version. - * source/rtl/set.c - ! For _SET_COLOR case, only pass an argument to hb_setColor() if - the 2nd SET argument is a string. Otherwise pass (char *) NULL. - * source/vm/hvm.c - * Moved hb_inkeyPoll() to the HB_P_DO case to enhance performance. - -19990908-12:36 GMT+1 Antonio Linares - * source/tools/debug.c - + Added new function HB___GETLOCAL() to retrieve local variable containts. - (see debug.c for GetLocal() use documentation). - * source/debug/debugger.prg - * First propotipe retrieving local variables values - (still it is missing removing locals once a procedure is over. - Editing is not implemented yet). - -19990908-05:05 EDT Paul Tucker - * source/rtl/inkey.c - - remove extra #define INCL_DOSPROCESS - + add #define INCL_NOPMAPI - * source/rtl/gtapi.c - simplified hb_gtScroll() to a function call. - The code from this function was moved to gt/gtdos.c hb_gt_scroll() - I currently can't compile a dos version so need a tester! - * source/rtl/gt/gtos2.c - - remove #define INCL_KBD since no keyboard functions are used - + add #define INCL_NOPMAPI since PMAPI is not needed. - * source/rtl/gt/gtdos.c - * active hb_gt_scroll source. - needs test. - * most of this reported by Chen Kedem - -19990908-03:05 EDT Paul Tucker - * source/rtl/gt/gtos2.c - + hb_gt_scroll by Chen Kedem - -19990908-08:24 GMT+1 Antonio Linares - * makefile.b32 - * strfmt.c and strfmt.obj were missing. - -19990908-08:09 GMT+1 Antonio Linares - * rdd.b32 - * Fixed missing '\' on the C output file path. - -19990908-01:33 EDT Paul Tucker - * source/rtl/environ.c - corrected to work with msvc. - The format passed to sprintf is now a variable. Under Windows, - the hb_osletter is actually the build number, and the default - format was not printing it correctly. - -19990908-00:05 EDT David G. Holm - * source/rtl/environ.c - ! Version 1.43 added Windows code to detect the Windows version, but - it also replaced the DOS code to detect Windows with Windows code - to detect Windows. But Borland C 3.1 refuses to compile Windows code - when creating DOS programs and I suspect that other DOS compilers do - the same. So I restored version 1.42 and then put the Windows code - from version 1.43 back in the only place where it belongs. - - I removed the "95/98" designation from the Windows detection in DOS - mode, because that code should also be able to detect Windows 3.x. - * source/rtl/tget.prg - ! Added missing ::Display() at end of ::Delete() - -19990908-04:52 GMT+1 Victor Szel - * tests/working/rtl_test.prg - + Some tests now are only included when compiled with Harbour, to skip - obvious bugs in Clipper. - * source/hbpp/table.c - + _SET_COUNT added. - * include/clipdefs.h - include/error.api - include/item.api - include/extend.api - ! Some fixes. - -19990908-03:14 GMT+1 Victor Szel - * tests/working/rtl_test.prg - + Some ==/= tests added for strings. - * source/rtl/arrays.c - ! hb_arrayScan(). Fixed a string comparison bug. - * source/rtl/transform.c - + TOFIX added about a directly modified item string buffer. - -19990908-02:30 GMT+1 Victor Szel - * source/rtl/math.c - source/rtl/strings.c - source/rtl/extend.c - source/rdd/dbf1.c - * WORDs changed to int to reflect the recent Item API changes. - * include/itemapi.h - source/rtl/itemapi.c - ! hb_itemParam(), hb_itemType() parameter type and retval changed to USHORT - from WORD, to be Clipper compatible. - * hb_itemGetNLen(), hb_itemPutN?Len() WORD types changed to int. - * include/extend.h - source/rtl/arrays.c - * hb_arrayGetType() retval type changed to USHORT instead of WORD. - * include/extend.h - source/rtl/extend.c - * hb_retn?len() functions now uses int instead of WORD. - * hb_parinfo() and hb_pcount() now returns int instead of WORD, to be - more Clipper like. - * hb_param() WORD param type changed to int. - * tests/working/rtl_test.prg - + The execution time is now showed at the end of the tests. - + One missing copyright added. - * source/rtl/filesys.c - ! Formatting fixes. - -19990907-20:17 EDT Paul Tucker - * source/rtl/console.c - + added HB_SETMODE() (reported by Matteo Bacaan - -19990908-00:33 GMT+1 Victor Szel - * source/rtl/filesys.c - % FREAD() now uses the fixed ISCHAR() macro for parameter checking, - and ISBYREF(). - * source/rtl/extend.c - ! hb_param() now checks the type mask against the dereferenced item, - until now hb_param() was not working with values passed by reference. - After this fix the IS????() macros are Clipper compatible. - * source/rtl/tbcolumn.prg - ! TBColumnNew() fixed not to throw an error when a block is not passed. - + TBColumnNew() TOFIX added about possibly different behaviour than Clipper. - * source/rtl/math.c - ! hb_numRound() fixed for negative values. - % hb_numRound() is not using sprintf(), atof(), hb_x*() calls, so it should - be faster and requires less memory. All tests are still running fine. - I don't know why was it needed ? (David ?) - ! INT() fixed for values beyond -/+LONG_MAX. - ! ROUND() fixed to set the decimal width to MAX(iDec, 0) instead of iDec. - * tests/working/rtl_test.prg - + Some ROUND() tests added (mainly for negative numbers). - + Some byref tests added for several functions. - + SQRT() and some other math function tests added. - * source/rtl/strings.c - ! hb_itemStr() fixed to always use the "%*.*f" format to convert - a DOUBLE value. - ! hb_itemStr() fixed a possible error when the item.asDouble member - could accessed but the type was not DOUBLE. - + STR(), STRZERO() value substitution possible on error. - + STRZERO() added a HARBOUR_STRICT_CLIPPER_COMPATIBILIY to throw the - same error code as in Clipper, actually Clippers STRZERO will call STR - and the error will be handled by STR(), too. - * source/rtl/inkey.c - funclist.txt - tests/working/rtl_test.prg - + FKLABEL(), FKMAX() added. These are *really* dumb functions, but anyway. - Tests added. - * include/extend.h - + One cast added the IT_NUMERIC #define. - * source/rtl/environ.c - + OS(): Added Windows version detection code by - Luiz Rafael Culik - -19990907-17:00 GMT+1 Victor Szel - * source/vm/hvm.c - ! hb_vmEqual() is now Clipper compatible for ARRAY and BLOCK types. - ! hb_vmMinus() is now generating the result as LONG (instead of DOUBLE) - when the two operands are DATEs. - ! hb_vmDivide() fixed the decimal handling for integer operands with an - integer result. - ! hb_vmNegate() now handles the number width in a Clipper compatible way. - ! hb_vmEqual(), hb_vmNotEqual(), hb_vmLess*(), hb_vmGreater*(), hb_vmDo(), - hb_arrayAt() error handling now support value substitution. - hb_vmDo() and hb_vmArrayAt() should be tested, since I'm not exactly sure - if they are correctly pushing the result. - * source/rtl/strings.c - ! VAL() fixed to return INTEGER/LONG if applicable, not always a DOUBLE. - Similar logic can be found in hb_vmPushNumber(). - + REPLICATE() STROVERFLOW error now supports value substitution. - * hb_itemPadConv() now uses less internal, type checks reordered with the - most probable moved to the top. Some Extend API calls changed to Item API - ones, to make it faster. - ! hb_itemPadConv() was casting back DOUBLE value without decimals to LONG - to convert it to string. Corrected. There may be other places where - DOUBLE is converted to LONG, these should be revised, since a DOUBLE is - also used when there are *no* decimal places, but the value is too big - to fit in a LONG (like: 5000000000), for example INT() is buggy because - of that right now. - * tests/working/rtl_test.prg - + Some new decimal handling and ABS() tests added. - + Some divide and date subtracion tests added to decimal handling section. - + Some negate tests added to the decimal handling section. - + INT() tests added. - * LOCAL test values converted to STATIC, PRIVATE test values converted - to PUBLIC. - * Split the tests into smaller functions, since the 64K function limit - has been reached. - ! Expected results changed where we consider Clipper to be buggy, mainly - for cases when the parameters is passed by reference. - + SQRT() tests added. - * source/rdd/dbf1.c - ! Fixed the passed parameters to hb_itemPutNDLen() - * tests/working/testdbf.prg - + Numeric value put/get tests added. - * source/rtl/itemapi.c - ! hb_itemType() now checks for NULL parameters, like in Clipper. - ! hb_itemPutNDLen() was handling the wDec parameter in a wrong way by - mistake. I assumed that the wDec value means the decimal places within - the full length, but that was wrong. - ! hb_itemStrCmp() two LONGs changed to ULONG. - * source/rtl/math.c - % MOD() one Extend API call changed to Item API to make it faster. - + MIN()/MAX() now uses Item API instead of accessing internals. - + ABS() uses Item API instead of internals. - ! ABS() now keeps the width of the positive integers. - ! hb_numRound() now uses a much larger buffer (like in hb_itemStr()), this - seem to have fixed the random GPFs in Cygwin when running RTL_TEST. - Same type of dangerous code can be found in RDD/DBF1.C, too. (Bruno!) - + ABS(), INT(), ROUND(), EXP(), LOG(), SQRT(), MIN(), MAX() value - substitution added. - * source/rtl/descend.c - * Now using Item API only, internals totally eliminated. Simpler code, - some variables eliminated, some small optimalizations. - * source/rtl/do.c - * Value substitution added to EVAL(), DO() - * source/rtl/classes.c - * Value substitution added to :EVAL - * tests/working/descend.prg - tests/working/Makefile - - Removed since an automated version is already included in RTL_TEST. - * source/rtl/classes.c - source/rtl/arrays.c - + Copyright info added. - * source/rtl/set.c - ! Some minor formatting corrections. - -19990907-02:30 GMT+1 Victor Szel - * include/external.ch - source/runner/stdalone/external.prg - + Updated to reflect the recent changes. - * source/rtl/itemapi.c - ! hb_itemGetCPtr() will now return an empty string ("") on error and not - a NULL pointer. - ! Leak fixed in hb_evalLaunch() when the function to evaluate was passed - as a string. (hb_itemGetC() changed to hb_itemGetCPtr()) - * source/rtl/arrays.c - source/rtl/extend.c - source/rdd/dbcmd.c - include/extend.h - * Some array functions renamed to be consistent with the similar Item API - function names. - hb_arrayGetString -> hb_arrayGetCPtr - hb_arrayGetStringLen -> hb_arrayGetCLen - hb_arrayGetBool -> hb_arrayGetL - hb_arrayGetDouble -> hb_arrayGetND - hb_arrayGetDate -> hb_arrayGetDS - * hb_arrayGetCPtr() now calls hb_itemGetCPtr() instead of using redundant - code. - + hb_arrayGetC() added keep it in sync with the Item API. - + hb_arrayCopyC() added keep it in sync with the Item API. - % Further simplified the hb_arrayGet*()/hb_arraySet()/+some more functions. - * source/rdd/dbcmd.c - funclist.txt - + DBF() function added. (not tested yet) - * source/rdd/dbf1.c - source/rdd/delim1.c - source/rdd/sdf1.c - source/rdd/dbf0.prg - source/rdd/delim0.prg - source/rdd/sdf0.prg - * The forcelink function names changed. The C functions got a "C" appended - at the end, the Harbour ones got an underscore at the beginning, this - way it's more Clipper like, but it was also inevitable, since previously - the forcelink function HB_DBF() was colliding with the standard Clipper - function named DBF() (HB_DBF() from C). - * source/rdd/dbcmd.c - source/rdd/rddsys.prg - source/vm/hvm.c - include/rddapi.h - * Instead of calling rddShutDown() from a Harbour EXIT function, now - the same functions C version is called by the Virtual Machine on exit. - This way it's more Clipper compatible, since in CA-Cl*pper the RDDSYS - doesn't need to clean-up on exit. RDDSYS.PRG is now exchangeable with - the Clipper one. - ! hb_rddShutDown() fixed a possible GPF if there was no rddSetDefault() - calls at all (when RDDSYS was overridden by a dummy one). - * source/rtl/setkey.prg - * Not CA-Clipper compatible functions (extensions) renamed to avoid - possible collision with existing code: - SETKEYGET() -> HB_SETKEYGET() - SETKEYSAVE() -> HB_SETKEYSAVE() - SETKEYCHECK() -> HB_SETKEYCHECK() - The function names are valid even if compiled with /10 switch. - -19990907-01:00 GMT+1 Victor Szel - * source/rtl/arrays.c - ! hb_arrayScan() fixed, so that it can also search for a NIL value. Like - Clipper. - % Optimized the search loop for speed. - ! Fixed searching of numeric values. Different numeric sub-types with the - same value are also considered equal (of course), so 10 == 10.0 now. - * Uses Item API calls where possible. - * source/rtl/classes.c - ! hb___msgEval() added, so now send an :eval message to a block - will work fine, sending it to other types will result in a proper error - message. - ! hb___msgClsH() will return 0, if the checked type is not an ARRAY/OBJECT. - Until now a GPF occured on this code: a := "A" ; a:classH - * Functions reordered. - * source/rtl/do.c - source/vm/hvm.c - * EVAL() moved to do.c. - ! EVAL() internal message changed to the Clipper compatible one. - * DO() parameter count error message changed to EG_ARGCOUNT/3000. - * source/compiler/harbour.y - + SETPOSBS() added to the reserved function list. - * tests/working/rtl_test.prg - + Some PAD?() tests added with new types, byref. Some new MIN()/MAX() tests - added. ASCAN() tests added. - + /SKIP: switch added, to make it possible to temporarly skip specific - tests. (RTL_TEST /SKIP:100,102) - + EVAL(), :EVAL() tests added. Some are commented out, due to bugs. - * source/rtl/itemapi.c - include/itemapi.h - - Removed hb_itemSetNLen() since it was superseded by hb_itemPutN?Len() - functions, these are more compact, faster, and have default value of the - parameters. - -19990906-11:25 GMT+1 Antonio Linares - * source/rtl/tbrowse.prg - * Fixes on Stabilize() method - * source/rtl/tbcolumn.prg - * Small fix on New() method - * source/debug/debugger.prg - * First outline for monitoring variables - (it is left open for testing purposing) - -19990906-01:27 EDT Paul Tucker - * source/rtl/set.c - * added a cast in open_handle to fsRead() - -19990905-17:55 EDT David G. Holm - * source/rtl/console.c - + Added code to preserve the current user file error code when - using Harbour hb_fs... functions. - * source/rtl/set.c - + Added code to preserve the current user file error code when - using Harbour hb_fs... functions. - + Added code to remove the old EOF character ('\x1A') when - appending to text-mode files on non-Unix platforms. - * tests/working/output.prg - * Changed the names of the output files to OUTPUT_A (.txt), - OUTPUT_E.EXT, and OUTPUT_P (.prn) so that the files may be - examined and deleted without having to worry about the .PRG - file (the extensions in parentheses are the default ones). - -19990905-17:48 GMT+1 Victor Szel - * source/rtl/dbf1.c - % Uses hb_itemPutN?Len() instead of hb_itemSetNLen(), so it's a bit - faster now. - * source/rtl/errorapi.c - % Now uses hb_itemDo() instead of the Eval API. Eight function calls - substituted with a single one. - * source/rtl/extend.c - + hb_retn?len() functions now make simple calls to hb_itemPutN?Len() - functions. - * source/rtl/itemapi.c - include/itemapi.h - + EVALINFO structure now has a Clipper compatible paramCount member. - ! hb_eval*() speed up a bit by using paramCount, and by assigning error - return value only on error. - ! hb_evalPutParam() now check if pItem is a NULL. - ! hb_evalRelease() now sets back the EVALINFO structure to an initial - state, just like Clipper. - + hb_itemDo() and hb_itemDoC() function added, they do the same as hb_eval() - but in a lot more convenient way. - + hb_itemPutNDLen(), hb_itemPutNILen(), hb_itemPutNLLen() functions added - to make to number lenght setting easier. - * source/rtl/do.c - ! DO() without any parameter caused a GPF. Fixed. - * tests/working/rtl_test.prg - + Alias tests enabled. Now an internal occurs in one of them, this will - need fixing. Some alias Pop/Push/Swap functions are not checking NULL - pointers and are not yet compatible with Clipper in strange situations. - + Fixed some result in == test with objects and arrays. Added some more - == tests. - * source/vm/hvm.c - ! Small correction in one debug message. - * source/vm/initsymb.c - + SETPOSBS added to the list. Since it's a native opcode in Clipper, it - always linked in by nature. - -19990905-02:47 EDT Paul Tucker - * source/rtl/filesys.c - * casts on access() and in HB_FILE - -19990904-23:35 EDT David G. Holm - * include/hbver.h - * Bumped revision from "a" to "b". - * Changed date to 1999.09.04 - * source/rtl/filesys.c - ! Borland needs "direct.h". - -19990904-20:35 EDT David G. Holm - * include/filesys.h - + Added hb_fsFile(). - * source/rtl/filesys.c - + The guts of HB_FILE() are now in hb_fsFile(), so that - C RTL functions can check for the existence of a file. - ! Added temporary bug fix for Cygwin I/O flags (starting - with O_CREATE, they are one bit position too high). - + I left in the debug statements that I used to track down - the Cygwin I/O flag bug, but I commented them out. */ - * source/rtl/set.c - ! Corrected the file open/create handling in open_handle(). - -19990904-18:35 EDT David G. Holm - * source/rtl/tone.c - ! Added missing '&& ! defined(_Windows)' checks to the - __BORLANDC__ checks that didn't already have them and - weren't already preceded by a 'defined(_Windows)' check. - -19990904-15:20 GMT+1 Victor Szel - * source/rtl/arrays.c - ! hb_arrayScan() fixed. (Thanks Antonio) - -19990903-19:35 EDT David G. Holm - * source/rtl/console.c - ! Added #ifdef HARBOUR_USE_GTAPI/#endif around use of GT API - functions in the new HB_SETPOSBS() function. - * source/rtl/filesys.c - ! Added #defines for _getdisk and _chdisk for DJGPP. - -19990903-19:00 GMT+1 Victor Szel - * source/itemapi.c - include/itemapi.h - + hb_itemGetCPtr() function added. Use this with care, don't modify the - returned buffer. This is the fastest way to access a string buffer via - the standard API. The retval should really be declared const, but that - would generated a bunch of compiler warnings, so I didn't add it. - ! hb_itemGetDS() made compliant with the Clipper NG, it now terminates - the date with a zero character, so the buffer needs to be 9 characters - long. Although Clipper itself is buggy in this respect and doesn't - append a trailing zero, even the example in the NG is buggy. - NOTE added about this. - * source/vm/hvm.c - * LEN(), EMPTY(), VALTYPE(), hb_stackDispLocal() (almost) now use no - internals, or uses Item API instead of Extend API, since it's faster - in their case. - * source/rtl/arrays.c - source/rtl/extend.c - include/extend.h - + hb_arrayIsObject() function added. - * hb_arrayGetString() now uses hb_itemGetCPtr() - + Copyright info added to arrays.c - ! hb_arrayGetDate() now returns the date with a terminating zero. - * Small cosmetic change in array.c. - * source/rtl/extend.c - % hb_stor*() functions further optimized, usage of ulArrayIndex eliminated. - ! One bug slipped in to one of the hb_stor*() functions at the previous - changes. Fixed. ( if -> else if ) - + NOTE added to hb_parc() - * hb_ret*() functions now uses Item API calls, this way a huge amount - or sensitive redundant code has been eliminated. Since these functions - are always called only once in Harbour callable function, the speed hit - should not be noticable (There's one more NULL check and a function - call). hb_retn?len() functions were not converted. We could make these - functions inline to speed it up. Notice that the size of extend.c has - been reduced from 23K to 17K. - ; hb_par*() functions also have many redundant code, but it would be more - of a speed hit to convert them, since these are generally called several - times in a function, and two additional if()s would be also executed. - * source/compiler/harbour.y - + The parameter count checking now shows the expected *range* in the - error message if applicable (not only the minimum number of params). - * tests/working/rtl_test.prg - + Changed the column layout. Few new tests added (==). - * source/rtl/classes.c - % One variable eliminated (wIndex). - * source/rtl/dir.c - include/init.h - ! Indenting errors fixed. - -19990903-15:30 GMT+1 Victor Szel - * source/rtl/itemapi.c - % hb_itemPutDS() contained one more hb_itemClear() then needed. - + hb_itemGetNI(), hb_itemPutNI() added for completeness. - ! hb_itemArrayGet()/hb_itemArrayPut() checks if the passed array item ptr - is not a NULL. - * source/rtl/extend.c - * hb_parni(), hb_parnl() now uses hb_arrayGetN*() instead of - hb_arrayGetDouble(). - % Array index validation removed from hb_par*() functions, since the - called Array API is doing this. - + hb_stor*() function group now using Item API instead of duplicating - the same code. These function looks much simpler now. - ! hb_stor*() functions were suboptimal in handling the -1 parameter, they - were assigning a new value to it, then checking IS_BYREF()/IS_ARRAY(). - The logic has been optimalized. - + Optional parameter type changed to ULONG from long. - * source/rtl/array.c - include/extend.h - + Missing prototypes added to extend.h - ! hb_arrayAdd() will not throw a runtime error anymore, instead it - returns a BOOL to signal error. Error launching moved to AADD(). - ! hb_arrayClone() will not throw error. ACLONE() is more compatible now. - ! hb_arrayCopy() will not throw error, but return BOOL. - ACOPY() is more compatible now. - ! hb_arrayRelease(), hb_arrayEval() will not throw error. They will return - BOOL. - ! hb_arrayScan() will return ULONG instead of int. It will now throw an - error anymore. - ! hb_arrayGetType() will return WORD instead of int. - ! hb_arrayIns(), hb_arrayDel() will return BOOL, and not throw an error. - ! hb_arrayFill() will not throw an error, but will return BOOL, AFILL() - will check if the second parameter is not NIL. - ! hb_arrayAdd(), hb_arrayLast() checks if the passed item is an array, like - the other hb_array*() functions. - + hb_arrayNew() now returns BOOL. Actually a constant TRUE right now. - + hb_arrayLast() now return BOOL, it will return FALSE if the passed item - was not an array. - ! hb_arraySize() now return BOOL. - ! hb_arrayClone() fixed bug which caused a GPF. (Thanks Paul!) - This was introduced around yesterday. - ! hb_arrayLen() will not throw a runtime error anymore. - ! hb_arrayGet*()/hb_arraySet() will no longer throw runtime errors. - + hb_arrayGet(), hb_arraySet() now return BOOL. - + hb_arrayGetNL(), hb_arrayGetNI() added to be in sync with Item API. - ! hb_arrayGetDate() now properly clears the date field on error. - * source/rtl/dir.c - + NOTE: added about the behaviour on reaching array lenght limit. - * source/rtl/extend.c - + NOTE: added about parameter -1 - * source/rtl/set.c - * bMode name changed to bAppend - * source/rtl/console.c - funclist.txt - + SETPOSBS() undocumented Clipper function added. I don't know why is this - function so important to CA, but it's a pcode level function. - * source/compiler/harbour.y - + Added parameter count check for EVAL() - + Added parameter count check for SETPOSBS() which is and undocumented - Clipper function. Now the parameter count check list is complete. - * source/vm/hvm.c - + Added runtime parameter count check for EVAL(). - * tests/working/ifelse.prg - + Changes by Jose Lalin implemented. - * source/rtl/classes.c - source/rtl/itemapi.c (nszText -> szText) - include/rtl/itemapi.h (nszText -> szText) - ! Small formatting fix. - * source/rtl/codebloc.c - ! A few formatting errors corrected. - -19990903-14:35 GMT+2 Ryszard Glab - - *source/rtl/codebloc.c - * corrected bug if nested codeblocks without local variables - references were created - -19990903-14:00 GMT+2 Ryszard Glab - - *include/hb_vmpub.h - * added a second parameter for HB_DYNS_FUNC - - *source/vm/dynsym.c - *include/extend.h - * added a second parameter for hb_dynsymEval() function - - *source/rtl/memvars.c - * new function __mvDBGINFO() for memvars debugging - (documentation included in memvars.c) - - *include/memvars.ch - * new MV_PRIVATE definition - - *source/rtl/mouseapi.c - * added (char*) type cast to make C++ compilers happy - -19990903-08:00 GMT+1 Victor Szel - * include/hbdefs.h - include/extend.h - ! IT_OBJECT() checked for IT_ARRAY type, correct to IT_OBJECT, which - is equal to IT_ARRAY, so there was no bug, but it's not a good practice - to take shortcuts like this. - * Type checking macros moved to extend.h from hbdefs.h - * source/vm/hvm.c - % Variable optimed out in HB_PCOUNT(). - * source/compiler/harbour.y - source/hbpp/stdalone/hbpp.c - source/rtl/filesys.c - ! hb_fsFNameSplit() now leaves the szName pointer to NULL if there was - no name specified. - ! hb_fsFNameMerge() now handles when szName is NULL. - * Some variable names made consistent in the functions above. - -19990902-21:15 EDT David G. Holm - * source/rtl/filesys.c - ! Added missing semi-colon for line 1842. - * Replaced all calls to getdisk() and setdisk(), which are not very - likely to be POSIX-compliant (they don't exist in the Cygwin or OS/2 - implementations of GCC), with _getdrive() and _chdrive(), which are - not POSIX-compliant either, but at least they exist for OS/2 GCC, - IBM Visual Age C++, Borland C, and Microsoft C. They also exist in - mingw32/direct.h for Cygwin, but that includes dir.h instead of - mingw32/dir.h, so it won't compile with a default Cygwin install, - so I left in the Cygwin exclusion. I also set things up so that only - OS2, DOS, and _Windows compilers will attempt to use these functions, - seeing as how they are unlikely to exist on Unix and Linux. - -19990902-17:30 GMT+1 Victor Szel - * tests/working/rtl_test.prg - + <=, >=, >, < operator tests added. - * source/rtl/hvm.c - % Variable scope optimalization, variables accessed only once eliminated, - formatting errors corrected. - + Error value substitution support added to: - hb_vmNot(), hb_vmNegate(), hb_vmInString(), hb_vmInc(), hb_vmDec(). - ! hb_vmEqual(), hb_vmNotEqual() fixed for those where it returned - a constant FALSE, blocks, arrays, etc. It confused the stack. - ! Fixed all hb_vmOperatorCall() calls since they were not popping the - values from the stack. ( did not test this ) - ! hb_vmGreater*(), hb_vmLess*() functions pushed inverse results for - logical types. - -19990902-12:20 GMT+1 Victor Szel - * tests/working/rtl_test.prg - + STOD() tests added. - * source/rtl/dir.c - * Direct stack access changed to hb_itemReturn(). - * source/rtl/hvm.c - ! hb_vmEqual(), hb_vmNotEqual() didn't handle DATE type. Fixed. - % hb_vmEqual(), hb_vmNotEqual() reordered the order of type to be a bit - more efficient. - % hb_vmEqual(), hb_vmNotEqual(), hb_vmGreater*(), hb_vmLess*() function - variable scopes optimed. They need less stack space now. - * source/rtl/errorapi.c - funclist.txt - + First pass of DOSERROR() implementation. - * source/rtl/dates.c - source/rtl/extend.c - source/rtl/itemapi.c - + hb_dateStrPut() now takes care of filling the target with spaces when - the date is empty, so from now on the caller shouldn't bother with this. - This has also fixed a possible bug in RDD/PutValue with empty date. - * source/rtl/itemapi.c - include/itemapi.h - + hb_itemGetCLen() function added, which simply returns the length of - STRING item, arrays.c uses it right now. - * source/rtl/arrays.c - * Many stack.return accesses converted to use hb_itemReturn(). - * One hb_itemClear()/hb_xfree() call pair converted to hb_itemRelease(). - % Replaced internal hb_arrayLen() calls with direct access to the - array structure. - * hb_arrayGet*() functions will call the proper Item API function instead - of repeating the functionality. - * source/rtl/console.c - * hb_fsSetMode() -> hb_fsSetDevMode() - * include/filesys.h - source/filesys.c - + hb_fsSetError() added, to be able to get/set the last error number - in internal functions which uses the FS API. - * hb_fsSetMode() -> hb_fsSetDevMode() - * source/rtl/descend.c - - One obsolete comment removed. - * source/rtl/console.c - ! Some formatting errors removed. - -19990901-21:24 EDT Paul Tucker - * source/rtl/filesys.c - * hb_fsReadLarge() -> drop out on eof - * hb_fsWriteLarge() -> drop out on disk full - * source/rtl/console.c - source/rtl/set.c - * added casts. - -19990902-01:44 GMT+1 Victor Szel - * source/rtl/filesys.c - include/filesys.h - - For speed reasons the hb_fsRead/Write() functions were set back to use - USHORT, they are again Clipper compatible, and don't have the overhead - of the long buffer support, since for most cases it's not needed. - + hb_fsReadLarge() and hb_fsWriteLarge() API functions added, which support - the very long buffer lengths (ULONG_MAX). FREADSTR() is using the large - read right now. - ! hb_fsWriteLarge() infinite loop on error fixed (?) Paul ? - + TOFIX: added to hb_fsFNameMerge() (related to buffer overrun). - * source/rtl/console.c - source/rtl/set.c - include/set.h - + Changed to use the Filesys API instead of calling the platform dependent - file handling functions. - ! hb_err*() caller now expect E_BREAK, too. - ! hb_setRelease() called close_binary() instead of close_text() for - hb_set_extrahan. Fixed. - - Removed a bunch of (now) unneeded include files and OS branched. - Source looks kind of clean now. - * config/rules.cf - make_tpl.* - + Added the L_USR variable, to make it possible to pass custom parameters - to the linker. Some platform/compiler combinations need to add support - for this manually: DOS/BCC31, DOS/WATCOM, WIN32/BCC32, WIN32/ICC - * source/rtl/itemapi.c - ! Some formatting errors removed. - * tests/working/rtl_test.prg - * Small corrections. - -19990901-20:34 GMT+1 Victor Szel - * source/vm/initsymb.c - + HB_LOCK pointer added. - * tests/working/Makefile - ! Mistakenly got replaced with my private one. Fixed. - -19990901-17:20 GMT+1 Victor Szel - * tests/working/rtl_test.prg - + Added tests for decimals handling. (NUMPAR.PRG) - * source/rtl/strings.c - + VAL() now using hb_retndlen() instead of internalling (wow!). - + hb_itemStr() is now using hb_itemGetNLen() - * source/rtl/math.c - + No functions (except ABS()) are now accessing the internals. They - are using hb_retndlen() and hb_itemGetNLen() instead. - ABS(), MAX(), MIN(), MOD(), ROUND() - ! HB_MOD() accessed item.asDouble even if the item was not a DOUBLE. - - There were places were the decimals places were explicitly set to the - default SET_DECIMAL setting, even though the hb_retnd() call already set - this. I've removed these assigments. (David, is this OK ?) - * source/rtl/itemapi.c - * hb_itemGetNLen() is now optionally returning the parameters, so passing - a NULL is now valid. - ! hb_itemGetNLen() now returns zeros for non-numeric values. - ; hb_itemSetNLen() tested. - * source/rtl/extend.c - include/extend.h - + hb_retndlen(), hb_retnilen(), hb_retnllen() added, which are the same - as the standard hb_retn*() functions, but the width and decimals can be - specified. - * source/rtl/dates.c - + DAY(), MONTH(), YEAR(), DOW() now using the new hb_itemSetNLen() API call - instead of dealing with the internals. - * source/rtl/console.c - + Changed to call hb_fsSetMode(). - * source/rtl/filesys.c - include/filesys.h - include/fileio.ch - + Added hb_fsSetMode() function, and the constants. - * Changes by Jose Lalin implemented. - -19990901-15:00 GMT+1 Jose Lalin - * filesys.c - + Added hb_fsChDrv() - + Added hb_fsCurDrv() - + Added hb_fsIsDrv() - ! BC4.5 docs: setdisk/getdisk are for DOS, WIN16, WIN32 and OS/2 - I don't know if they work under Unix/Linux too. - * hb_fsCurDir() - * hb_fsExtOpen - + some HB_SYMBOL_UNUSED added. - - NOTE [vszel]: - 1.) I've #ifdef-ed out the new stuff for __CYGWIN__ since - setdisk()/getdisk() were neither declared nor present in any - libraries. - 2.) I've added some new header files to FILESYS.C. Please check them - on your system, whether they are correct. - -19990901-14:05 EDT Paul Tucker - * source/rtl/filesys.c - * hb_fsread() -> account for the possibility that num read is less - than requested. (It was staying in the while loop forever without this) - -19990901-17:59 GMT+1 Bruno Cantero - * source/rdd/dbcmd.c - + Added Lock() function - -19990901-17:20 GMT+1 Victor Szel - * source/rtl/set.c - funclist.txt - + SetCancel() function added. - * source/vm/hvm.c - ! hb_vmRequestCancel() now diplays correctly on DOS/DJGPP, since it's - using hb_consoleGetNewLine() to display a newline instead of '\n'. - * source/runner/runlib.c - ! __HRBRUN() now handles if the error launcher returns with an E_BREAK. - * source/rtl/copyfile.c - ! The error launching now also reacts to a BREAK correctly. - * source/compiler/harbour.l - ! At one place BREAK was not converted to uppercase, so the generated pcode - was faulty. RTL_TEST.PRG didn't link because of that. - (Ryszard, is this the correct fix ?) - * source/rtl/errorapi.c - ! szOperation now can be NULL. This caused some error launchings to GPF, - for example BADALIAS calls in HVM.C. - * IS_*() internal macros changed to hb_itemType() calls. - * source/rtl/filesys.c - + Added runtime error 2018 to DISKSPACE(). - * source/vm/hvm.c - ! Fixed a variable name which went out sync between the last two CVS - sessions. - * source/rtl/inkey.c - + Added copyright info. - -19990901-15:40 GMT+1 Victor Szel - * source/compiler/harbour.y - + It will now recognize and accept filenames specified via the - /o switch (not only paths), it also allows to override the extension. - Like CLIPPER.EXE. - * Indentation more or less fixed. - * Zeros changed to NULL and '\0'. - % Inc()/Dec() logic cleaned-up. Note that there are many more places where - such logic cleaning and variable scoping optim. could be done. - I'm also not sure if the debug_msg() calls should only be made when - warnings are turned on, IMHO they should always appear when DEBUG is on. - ! Some formatting errors corrected. - * tests/working/fileio.prg - + New test cycle added beginning with FOpen() (Temporary solution) - ! nFlags is not NIL anymore. - * tests/working/rtl_test.prg - + Some tough alias related tests added. They are commented out - for Harbour, since right now they will GPF for sure. - * source/rtl/langapi.c - source/rtl/natmsg/*.c - ! Fixed eleven error messages to look exactly like in Clipper. - * source/rtl/filesys.c - include/filesys.h - * hb_fsRead(), hb_fsWrite() changed to use ULONG instead of USHORT. - ( ! not tested ! ) - ! FOPEN() added FO_COMPAT to the default open flags. (cosmetic) - * source/rdd/dbf1.c - + GetValue() now sets the width and decimals of the returned numeric - value properly using hb_itemSetNLen(). ( not tested ) - * source/rtl/itemapi.c - include/itemapi.h - + hb_itemGetNLen() added. The pair of the recently added hb_itemSetNLen(). - * source/rtl/console.c - + Some static renamed and prefixed with s_ - * source/compiler/symbols.asm - + CVS header added. - * source/compiler/harbour.c - ! Formatting errors corrected. - -19990901-14:40 GMT+2 Ryszard Glab - - *source/compiler/harbour.l - * corrected handling of BREAK statement - - *source/compiler/harbour.y - * corrected generation of line number opcodes - * corrected the support for local variables when nested - codeblocks are used - * the step value is popped correctly at the end of FOR/NEXT loop - (the nested loops are working correctly now) - - *source/rtl/codebloc.c - * corrected the support for local variables when nested - codeblocks are used - - *source/vm/hvm.c - *include/ctoharb.h - * added hb_vmRequestCancel() function - - *source/rtl/inkey.c - * signals the virtual machine that Alt-C was pressed - - *doc/codebloc.txt - * updated information - -19990831-22:49 EDT Paul Tucker - * include/set.h - source/rtl/set.c - Set(_SET_DEBUG) now returns Logical as in Clipper 5.2 and 5.3 operation. - (Clipper 5.3 docs are incorrect) - -19990831-23:10 GMT+1 Victor Szel - * source/rtl/itemapi.c - include/itemapi.h - + hb_itemSetNLen() added to set the numeric values length and number - of decimal places. This way we have a standard way to set these without - fiddling with the internals. Cool. - -19990831-22:20 GMT+1 Victor Szel - * source/rtl/hvm.c - ! hb_vmFunction() now resets the return value to NIL, since previously - the default return value of the functions was not defined if there was - no hb_ret*() calls in them or if the called function was a PROCEDURE. - * source/rtl/descend.c - include/extend.h - ! It was modifying the string buffer directly, RTL_TEST failed in some - situations. Fixed. hb_strDescend() prototype modified. - * tests/working/Makefile - + ValType() tests added. - ! empty.prg, strsub.prg removed. - + Descend() tests added. - -19990831-20:55 GMT+1 Antonio Linares - * source/rtl/tbrowse.prg - * Methods RefreshAll() and Invalidate() were not recalculating ::RowCount. - -19990831-19:47 GMT+1 Bruno Cantero - * source/rdd/dbf1.c - * Bug fixed - -19990831-19:09 GMT+1 Bruno Cantero - * include/rddapi.h - source/rdd/dbcmd.c - source/rdd/dbf1.c - * Added more RDD functions. - - * tests/working/Makefile - * Added testdbf.prg - -19990831-17:40 GMT+1 Victor Szel - - * source/rtl/arrays.c - include/extend.h - ! Fixed handling of zero array index, it was allowed previously. - (hb_arrayGet*(), hb_arraySet()) - + Added hb_arrayError() which checks the pArray and ulIndex, if it's not - valid, it throws a runtime error. - * source/vm/hvm.c - ! Fixed where operations followed the hb_err*() call. - (hb_vmArrayAt(), hb_vmArrayPut(), hb_vmDo(), ...) - ! hb_vmPopLogical() was decrementing the stack but was only clearing it - when it was logical type. Leak fixed. (Is this correct ?) - * hb_vmAliasPop() -> hb_vmPopAlias() - hb_vmAliasPush() -> hb_vmPushAlias() - hb_vmAliasSwap() -> hb_vmSwapAlias() - Renamed to be consistent with the pcode name and with the others. - * tests/working/rtl_test.prg - tests/working/empty.prg (removed) - tests/working/strsub.prg (removed) - + Added many new tests, comments, enhancement. - + EMPTY.PRG, STRSUB.PRG incorporated. - ! Some TRANSFORM() test results changed (@0) - * source/rtl/devoutp.prg - % One local variable eliminated. - * source/vm/hvm.c - + Added value substitution for errors 1081, 1082, 1083, 1084, 1085, 1088 - * source/rtl/transfrm.c - + Put all stuff related to the @0 picture clause between - #ifndef HARBOUR_STRICT_CLIPPER_COMPATIBILITY guards, since this was - not in original Clipper, that's why the tests failed. - * source/rtl/set.c - ! Fixed "ON"/"OFF" error where OFF was not recognized, this bug was - introduced yesterday. - % Some variables scopes optimalized, some internals changed to standard - interface calls. - * source/rtl/errorapi.c - source/vm/hvm.c - include/extend.h - + Moved ERRORBLOCK() and errorBlock variable to errorapi.c, hb_errInit() - hb_errExit() added. All that is a *bit* slower, since only "official" - API calls are being used. - * source/runner/runlib.c - source/rtl/gtapi.c - source/vm/dynsym.c - source/vm/hvm.c - include/vm.api - include/fm.api - include/hbpp.h - include/gtapi.h - include/extend.h - include/hb_vmpub.h - include/hbdefs.h - * Formatting errors corrected. - + static variables prefixed with "s_" - -19990831-02:37 GMT+1 Bruno Cantero - * include/rddapi.h - source/rdd/dbcmd.c - source/rdd/dbf1.c - tests/working/testdbf.prg - * Full support for memo fields. - -19990830-19:00 GMT+1 Victor Szel - - * source/filesys.c - include/filesys.h - funclist.txt - + Added: DIRCHANGE(), MAKEDIR(), DIRREMOVE(), DISKCHANGE(), DISKNAME() - All of them are Clipper 5.3 compatible functions. Some of them will not - work, since the underlying low level API is not worked out. - ! Fixed CURDIR() to preserve the FERROR() value. - ! Fixed prototype of hb_fsChDrv(). - + DISKSPACE() added (currently only working in DOS). - * source/rtl/arrays.c - + hb_arrayAdd() added BASE/1187 Bound error "AADD" error message. - ! 1068 Not an array errors changed to the 9999 code, until we allocate - a 3xxx error for. This error was not there in Clipper. - * source/vm/hvm.c - + Added standard "no exported method" and "no exported variable" - runtime error instead of the internal error. - ( ErrorNew():hello := 1, ErrorNew():hello ) - + hb_vmPlus() and hb_vmMinus() added "string overflow" runtime errors - (1209, 1210) (could not test this though :) - * Error code 1000 in BADALIAS errors changed to 9999, until someone finds - out the correct error code, since there's no 1000 error code in Clipper. - * source/rtl/set.c - ! Fixed to also accept strings that *begin* with "ON" or "OFF", like - Clipper. - * source/rtl/tone.c - source/rtl/codebloc.c - source/rtl/memvars.c - source/rtl/environ.c - source/rtl/classes.c - source/rtl/console.c - source/rtl/langapi.c - source/rtl/setcolor.c - source/rtl/strings.c - source/rtl/dates.c - source/rtl/set.c - source/rtl/transfrm.c (removed static) - source/rtl/inkey.c - source/rtl/fm.c - source/rtl/dir.c - source/rtl/gtapi.c - * Formatting errors corrected. - + static variables prefixed with "s_" - * Some type changed to BOOL. - -19990830-16:59 +0300 Chen Kedem - * source/rtl/mouse/mouseos2.c - * hb_mouse_Hide() now work in any text screen mode. - * hb_mouse_IsButtonPressed() now return TRUE if any button was - pressed. - TOFIX: every time I read event from the queue I lose the result - so I can not check if iButton was pressed, so for now I ignore - iButton and return TRUE if the last event saved had DOWN in it. - also to keep the noise level down I mask out MOUSE_MOTION - events. - * suMouHandle changed to s_uMouHandle - * Some reformatting. - -19990830-12:49 EDT Paul Tucker - * source/rtl/gtapi.c - * Handle nesting of gtPre/PostExt - * corrected s_uiPreCount handling in gtDispEnd - -19990830-14:25 GMT+1 Victor Szel - - * tests/working/rtl_test.prg - + Added the possibility to test expressions resulting in a runtime error. - + Added ABS(), EXP(), operator tests, some runtime error tests. - * Some bugs fixed, some enhancements. - * include/errorapi.h - source/rtl/errorapi.c - ! hb_errRT_TERM now accept the OS code parameter. - * source/rtl/set.c - ! Open error now shows the correct error codes for SET_PRINTFILE, - and SET_EXTRAFILE. The error message made completely Clipper compatible. - Retry and Default now works. - * source/rtl/arrays.c - ! Fixed two error messages ("AEVAL" -> "(AEVAL() function)") - UNDONE. - * source/rtl/classes.c - - Removed some externs not needed anymore. - * include/set.h - * Cleaned up. - * source/rtl/set.c - source/rtl/dates.c - source/rtl/transfrm.c - source/rtl/strings.c - source/rtl/inkey.c - source/rtl/setcolor.c - source/rtl/console.c - source/rtl/mouseapi.c - source/rtl/filesys.c - * Formatting errors corrected. - -19990830-10:40 GMT+1 Victor Szel - - * source/rtl/errorapi.c - include/errorapi.h - + Error launcher with substitution added. - + Added an emulation to the Clipper "Processor stack fault" error to - indicate the situation where there is an error in the error handler - itself, and thus infinite recursive calls are being executed. The - Harbour error message gives a better idea about the problem than in - Clipper. - * source/vm/hvm.c - ! hb_vmEqual() - Exact error message now depends on the bExact setting. - (1070 vs. 1071) - * source/vm/hvm.c - ! hb_vmNegate() - Throws a proper runtime error, instead of an internal - error. (like Clipper) - ( -("1") ) - * source/compiler/harbour.y - + Added compile time parameter check for LOCK() (BTW, there should be no - parameter passed.) - * source/rtl/copyfile.c - ! Fixed one error code (2012 -> 2016). - ! Two QUESTION: removed. - ; __COPYFILE is now 100% Clipper compatible (tested). - * source/vm/initsymb.c - + Added function pointers to the RDD functions. - + TODO: added for the NULL pointers still there. - (there are only three of them) - * source/vm/hvm.c - source/vm/initsymb.c - funclist.txt - + WORD() function added. - * source/vm/hvm.c - source/rtl/errorsys.prg - + hb_vmDivide(), hb_vmModulus() - Zero divide error is now handled in the standard error handler, and - the zero divide runtime error is properly generated. - * source/rtl/dates.c - ! DTOC() now throws Clipper compatible runtime error 1118. - ( DTOC("1") ) - * source/rtl/strings.c - + TODO: added to STRTRAN() (to check string overflow once) - * source/rtl/arrays.c - ! Fixed two error messages ("AEVAL" -> "(AEVAL() function)") - * source/rtl/filesys.c - source/rtl/strings.c - source/rtl/copyfile.c - + NOTE: added that the runtime errors are Clipper compatible, but - undocumented (FOPEN(), STRTRAN(), __COPYFILE()) - * source/rtl/transfrm.c - * Some reformatting. - -19990829-15:47 EDT Paul Tucker - * include/filesys.h - * hb_fsDelete and hb_fsRename now return int - * source/rtl/filesys.c - hb_fsDelete(), hb_fsRename - now Clipper compatible (only tested so far with msvc) - combined _some_ #if posix and msc_ver statements since posix version - works with msvc - * hb_fsClose - Invalid memory block error mapped to Invalid Handle - * hb_fsSeek Now Clipper compatible with -1 and FS_SET - Unknown Command error now mapped to Seek Error - * HB_FSERASE error is now 'invalid path' on bad parameter - * HB_FSRENAME error is now 'file not found' on bad parameter - -19990829-13:30 EDT Paul Tucker - * source/include/set.h - rearrange set struct to be in correct order - * source/hbpp/table.c - hand corrected output for _SET_ defines - * tests/working/set_test.prg - modified output to show which set is being displayed, and - external 'hooks' so that it demonstrates the same thing under Clipper. - -19990829-14:45 GMT+1 Victor Szel - - * source/vm/hvm.c - ! hb_vmArrayPut() - QUESTION: replaced with the proper runtime error - message. (like Clipper) - ( array[ .T. ] := 1 ) - ! hb_vmArrayAt() - Fixed: Now throws a proper runtime error instead - of an internal error. (like Clipper) - ( array[ .T. ] ) - ! hb_vmDec() - Throws a proper runtime error. (like Clipper) - ( a := .T. ; a-- ) - ! hb_vmModulus(), hb_vmMult(), hb_vmDivide(), hb_vmPower() - Throws - a proper runtime error, instead of an internal error. (like Clipper) - ( "1" / 10, "1" * 10, "1" % 10, "1" ^ 10 ) - * include/set.ch - include/set.h - source/rtl/set.c - + _SET_COUNT added to be even more Clipper compatible. - + _SET_* numeric values made compatible with Clipper. - * HB_INVALID_SET changed to HB_SET_INVALID_ - WARNING ! All source codes should be recompiled. - * source/rtl/errorapi.c - + Added copyright information. - * source/rtl/itemapi.c - source/rtl/extend.c - + One QUESTION: removed, it was obsolete now. - * source/rtl/set.c - + One QUESTION: answered. ( _SET_EXIT ) - * source/rtl/array.c - source/rtl/classes.c - * Some reformatting. - -19990829-11:21 GMT+1 Bruno Cantero - * include/rddapi.h - source/rdd/dbcmd.c - source/rdd/dbf1.c - * Beginning with memos. - -19990829-01:20 EDT Paul Tucker - * source/debug/debugger.prg - * ::Activate - call restoreAppStatus() since code was the same. - * ::Go added a DispEnd() - * __dbgEntry() Modified so that the app Screen is visible when - you select 'go' (F5) - The dispbegins/Ends here seem a bit weird, but this is temporary - as I'm working on a more permanent solution for the debugger to - do screen handling. - -19990828-22:20 EDT Paul Tucker - * source/rtl/filesys.c - * modified FO_ flags handling slightly to correctly reflect their state. - * modified handling of O_BINARY for msvc (was being discarded) - -19990828-14:00 GMT+1 Victor Szel - - * source/rtl/filesys.c - source/hbpp/stdalone/hbpp.c - source/compiler/harbour.y - include/hbsetup.h - include/hbpp.h - ! hb_fsFNameSplit() fixed handling of colon in filenames. - (reported by Bruno Cantero) - * source/compiler/harbour.y - ! Fixed the name format of the generated symbol registration function, - since it was causing a compiler error where the .prg name begun with - a number ( for example: 1.prg ). The new format is: hb_vm_SymbolInit_*() - * include/ctoharb.h - source/rtl/errorapi.c - source/vm/hvm.c - + hb_errLaunch() and hb_errLaunchSubst() finished - (the latter not yet tested). - Thanks to Ryszard Glab. - * include/ctoharb.h - source/vm/hvm.c - source/vm/initsymb.c - * hb_vmRTSymbolsInit() -> hb_vmSymbolInit_RT - * include/hbsetup.h - include/hbpp.h - + Changed OPT_DELIMITER to OS_OPT_DELIMITER_LIST and moved to hbsetup.h - So now it's multiplatform. - * source/rtl/mouse/mousedos.c - + hb_mouse_IsButtonPressed() added by Luiz Rafael Culik. - (small fixes applied, code not tested) - * include/hbdefs.h - ! LOBYTE(),HIBYTE(),LOWORD() put in #ifndef guards. - (reported by Jon Berg) - * tests/working/fileio.prg - + Some tests added. - -19990828-08:40 GMT+1 Antonio Linares - * source/vm/hvm.c - * Fixed hb_vmDebuggerEndProc() - (now it properly saves the previous PRG returned value) - * source/debug/debugger.prg - * CallStack now shows Classes and methods names - * It properly works debugging object oriented code - -19990827-18:46 GMT+1 Bruno Cantero - * source/rtl/filesys.c - * Now hb_fsCommit() work with MSVC - - * funclist.txt - include/rddapi.h - source/rdd/dbcmd.c - source/rdd/dbf1.c - * Added dbCommit() and dbCommitAll() functions - -19990827-14:19 GMT+1 Bruno Cantero - * include/rddapi.h - source/vm/hvm.c - source/rdd/dbcmd.c - source/rdd/dbf1.c - * Bug in hb_rddGetFieldValue() and hb_rddPutFieldValue() removed. - -19990827-13:01 GMT+1 Antonio Linares - * source/vm/hvm.c - + Added new function hb_vmDebuggerEndProc() - (notifies the Debugger __DBGENTRY() about a HB_P_ENDPROC - * source/rtl/tbrowse.prg - * fixed small bug on method stabilize - * source/debug/debugger.prg - + Added support for the CallStack window - (notice I have intentionally left it open by default, to - monitorize how it is working) - * source/debug/tbrwtext.prg - * small fixes. - -19990827-06:50 GMT+1 Victor Szel - - * source/rtl/inkey.c - include/inkey.h - + hb_inkeyPut() added, see next. - + __KEYPUT() added. This function is able to insert *any* inkey codes - (not just the 0-255 range) to the keyboard buffer one by one. - ! __KEYBOARD() allowed to insert zero codes into the buffer which made - INKEY() hang. It's now using hb_inkeyPut() to avoid this. - % __KEYBOARD() uses ISCHAR() instead of two hb_p*() calls. Eliminated - one of the two hb_parclen() calls. - * hb_inkeyPoll() now calls hb_inkeyPut() to insert the new code. - ! INKEY() fixed parameter count checking bug introduced a few hours ago. - -19990827-06:00 GMT+1 Victor Szel - - * include/mouseapi.h - source/rtl/mouseapi.c - source/rtl/mouse/mousedos.c - + Copyright info corrected. - + Added original (BorlandC) implementation (MOUSE.ZIP) by - Jose Lalin . - Luiz Rafael Culik . - + The OS/2 implementation is thanks to - Chen Kedem - - Please note that these files have not been tested yet, Borland - users should comment out the #define BORLANDC line in mousedos.c. - Non-GNU make file users should add the new files source/rtl/mouseapi.c - and source/rtl/mouse/mousedos.c file to their make system. - -19990827-05:00 GMT+1 Victor Szel - - * include/Makefile - include/mouseapi.h - source/rtl/mouseapi.c - source/rtl/mousexxx.c (renamed) - source/rtl/Makefile - source/rtl/mouse/mousetpl.c - source/rtl/mouse/mousedos.c - source/rtl/mouse/mouseos2.c - source/rtl/mouse/mousewin.c (added) - include/mouse.h (changed to mouseapi.h) - source/rtl/mouse.c (changed to mouseapi.c) - source/rtl/msxxx.c (changed to mousexxx.c) - + Changed the previouse Mouse API implementation to a somehow more - Clipper compatible and complete one. - * source/rtl/inkey.c - + INKEY() add runtime parameter count checking and error message. - * Two ints changed to BOOLs. - * source/vm/hvm.c - include/rddapi.h - * Some int -> BOOL, Some 0 -> NULL, '\0', Some cleanup. - ! LEN(), EMPTY(), PCOUNT() returns a runtime error if bad number of - parameter was passed. - + BREAK() doesn't have a parameter count check, an explanation of this - added as a NOTE:. - * hb_rdd*() function declarations moved to rddapi.h - * include/ctoharb.h - source/vm/hvm.c - source/vm/initsymb.c - * InitSymbolTable() -> hb_vmRTSymbolsInit() - * include/extend.h - source/rtl/fm.c - source/vm/hvm.c - + Moved memory statistics printing to fm.c, fixed memory subsystem now - has a hb_xinit() and hb_xexit() functions, which should contain all - init and exit code related to memory. - % Memory statistic variables made static, prefixed with "s_" - + #define added to suppress the collection of statistics. - * include/ctoharb.h - source/vm/hvm.c - source/rtl/errorapi.c - * hb_stackShow() -> hb_stackDispLocal() - * hb_callStackShow() -> hb_stackDispCall() - * include/errorapi.h - source/rtl/errorapi.c - * hb_errLaunch() using eval API to launch the handler. - + hb_errLaunchSubst() added to be able to add error handling using value - substitution. Not finished yet. - * include/hbdefs.h - % PCOUNT uses hb_pcount() since it's more efficient than hb_parinfo(0) - * source/rtl/extend.c - ! hb_evalPutParam() is no longer making a copy of the items, like Clipper. - * source/rtl/itemapi.c - % hb_itemParam(): one hb_param() call optimed out. - * source/hbpp/stdalone/hbpp.c - include/hbpp.h - + Standalone PP is now showing the line numbers in errors and warnings. - * source/compiler/harbour.y - source/hbpp/hbpplib.c - source/hbpp/stdalone/hbpp.c - source/rtl/errorapi.c - % GenError(), GenWarning(), hb_errInternel() no longer need sprintf() - neither the local stack buffers, so there's no more an undocumented limit - on the message length. - * source/rtl/console.c - ! In some places printf( "\n" ) was changed to print CrLf. - (Non-GT version is affected only) - * source/rtl/errorapi.c - source/hbpp/hbplib.c - source/vm/hvm.c - ! Uses hb_consoleGetNewLine() instead of \n character, so that it will - work on all platforms. This was needed because we have turned off cooked - mode of stdout, so the compiler/OS will not do it for us. The bug could - be observed in the stack dump on an internal error in DOS/DJGPP. - * source/rtl/console.c - include/extend.h - + New function hb_consoleGetNewLine() which returns the CrLf value. - * source/vm/hvm.c - include/extend.h - * hb_console*() declarations moved to the header file. - * source/compiler/harbour.y - + Small cosmetic enhancments in generated C code. - * source/tools/debug.c - - Removed external declaration of non-existing function. - * source/rtl/langapi.c - source/rtl/natmsg/*.c - ! Typo fixed "Limit exeeded" -> "Limit exceeded". - Thanks to Jose Lalin . - * source/tools/io.c - source/tools/nconvert.prg - source/tools/Makefile - gt.b32 - ! HB_RD() - Fixed: chdir() changed to rmdir() - + nconvert.prg added, Borland makefile modified - by Luiz Rafael Culik . - -19990826-22:00 EDT Paul Tucker - * include/hbsetup.h - + add mouse driver selector defines - + source/rtl/mouse.c - * harbour level mouse interface - code by Jose Lalin dezac@corevia.com - and Luiz Rafael Culik (culik@sl.conex.net) - + source/rtl/msxxx.c - * similar usage to gtxxx.c - + source/rtl/mouse directory - + source/rtl/mousedos.c - code by Jose Lalin dezac@corevia.com - and Luiz Rafael Culik (culik@sl.conex.net) - + source/rtl/mouseos2.c - code by Chen Kedem - + source/rtl/mousetpl.c - -19990826-20:05 GMT+1 Bruno Cantero - * funclist.txt - include/rddapi.h - source/rdd/dbcmd.c - source/rdd/dbf1.c - + Added dbAppend() function - -19990826-03:25 GMT+1 Bruno Cantero - * source/rtl/filesys.c - + Changed hb_fsOpen for support shared files (MSVC) - -19990825-23:30 GMT+1 Victor Szel - - * source/compiler/harbour.y - source/compiler/harbour.l - source/compiler/genobj32.c - source/hbpp/stdalone/hbpp.c - source/hbpp/hbpplib.c - include/hbpp.h - include/compiler.h - include/hberrors.h - - + Added standard error messages for memory management errors. - + Changed yyerror so that it calls the standard error launcher. - - hb_xalloc() functions removed, since it was not used anymore. - * hb_xalloc() changed to hb_xgrab(), it was not tested for the possible - NULL return value. - - One exit() after GenError() removed (source/hbpp/hbpp.c). - * exit( 1 ) -> exit( EXIT_FAILURE ) - ! GenWarning(), GenError(), CheckArgs() was allocating memory which was not - freed.Now the stack is used instead of calling memalloc functions, so - they can be used to report memory errors, too. - ! The last printf() changed to GenError() in harbour.l - - * source/tools/io.c - include/external.ch - source/runner/stdalone/external.prg - - - RENFILE() removed since there is already a function with the exact same - functionality in the standard Harbour RTL, named FRENAME(). - * Cleanup in io.c. - * Some __DOS__ guards changed to DOS. Some left since the code guarded - is compiler specific. Warning! This change could cause problems with some - other DOS compilers. - + TOFIX: added about a chdir call in RD() code. - + Code added to the non DOS branch. - - * source/rtl/console.c - - % SCROLL() - Some hb_pcount()s removed, parameter init optimed. - ! hb_out() - hb_parinfo() changed to pItem->type, since hb_parinfo() - can now contain the IT_BYREF flag, so if something would be passed - by reference, it would not be recognized as a valid type. - - * source/rtl/do.c - * Small cleanup. - - * gt.b32 - ! Fixes by Luiz Rafael Culik implemented. - -19990825-17:22 GMT+1 Bruno Cantero - * source/vm/hvm.c - + Added support for FIELD symbols - * source/rdd/dbcmd.c - + Open function improved - + Added support for FIELD symbols - * source/rdd/dbf1.c - + PutValue function improved - -19990825-13:30 GMT+2 Ryszard Glab - - *source/vm/hvm.c - * corrected alias handling in hb_vmAliasSwap() however we still need - to implement the function that will select an workarea using passed - string with an alias name - * if QUIT or BREAK is called in EXIT PROCEDURE then processing - of these procedures is stopped - -19990825-12:50 GMT+1 Victor Szel - - * source/rdd/dbcmd.c - - Removed symbol init code. - * source/tools/io.c - ! Modified so that it defines each function everytime, not just when - __DOS__ constant is defined. __DOS__ guard was moved around the function - bodies. - ! Removed FILE() function from here, since it's already declared in - Harbour RTL/filesys.c - * include/external.ch - source/runner/stdalone/external.prg - + Updated list of EXTERNAL, now including RDD and HBPP functions. - * source/compiler/harbour.y - ! Compile time parameter checking modified for RTRIM(), TRIM() since we - have a Harbour extension here, which should be allowed, added missing - LEFT() from the compile-time parameter checking list. - * source/rtl/filesys.c - + Added parameter count checking to FILE() - * source/rtl/transfrm.c - + Added parameter count checking to TRANSFORM() - * source/rtl/dates.c - + Added parameter count checking to CTOD(), DTOC(), DAY(), MONTH(), YEAR(), - DOW(). - * Code reformatting, variable scoping, some small optimalizations. - * source/rtl/strings.c - doc/subcodes.txt - * Some pcount() checkings converted to IS*() macros in PAD*(), *TRIM(). - * RTRIM(), TRIM() will now consider more than two parameters as an error. - - Removed parameter count checking from RIGHT(). - + NOTE: added about RTRIM(), TRIM(), ALLTRIM() Harbour extension. - % Simplified checking code for LEFT() and RIGHT() - ! LEFT(),STRTRAN() are no longer launching custom Harbour error codes - 3009/3010, this was not compatible, Clipper launches a standard error - code here. - * AT() parameter checking standardized. - * source/rtl/itemapi.c - * hb_itemGetL() and hb_itemGetNL() made consistent with the recent changes - in hb_parl() and hb_parnl(). - * Some code reformatting, some casts added, some branch and retval - optimalization. 0 -> NULL, '\0' - * source/debug/debugger.prg - * SHADOW() -> __SHADOW() - * source/rtl/console.c - - SHADOW() changed to __SHADOW() since it's not a std Clipper function. - ! SETCURSOR() is returning SC_NORMAL if there's no GT API. - * Some reformatting, some small optimalizations, added some copyright - info. - + Parameter count error added to DEVPOS(), SETPOS(), PROW(), PCOL(), - COL(), ROW() - * source/rtl/copyfile.c ( #include "itemapi.h" removed ) - source/rtl/hardcr.c - source/rtl/mtran.c - source/rtl/arrays.c ( 0 -> NULL ) - source/rtl/descend.c ( hb_pcount() call removed ) - * Reformatting. Small cleanup. Some small optimalizations. - -19990825-09:02 GMT+1 Antonio Linares - * source/debug/tbrwtext.prg - * Improved display functionality. - -19990825-09:02 GMT+1 Antonio Linares - * source/debug/debugger.prg - + Breakpoints already working. - (Notice the Harbour debugger does not debug multiple files yet). - -19990825-01:15 GMT+1 Victor Szel - - * source/rtl/extend.c - ! hb_parinfo() fixed so that it will return proper type information for - parameters passed by reference, like in Clipper. - ! hb_par*() functions accept zero parameter again to access self. - NOTE: added about this. - - * tests/working/fileio.prg - source/rtl/filesys.c - ! FREAD() fixed, it now checks second parameter correctly using - hb_parinfo(). - + Some new tests added, one test put between - HARBOUR_STRICT_CLIPPER_COMPATIBILITY guards, see next. - ! FREAD() uses hb_parcsiz() (hb_parclen()+1) as the maximum number of - bytes which could be read. Modified FREAD() but put between - HARBOUR_STRICT_CLIPPER_COMPATIBILITY guards, since this is a rather - unexpected behaviour, plus it can overwrite the terminating zero byte - in the string buffer. - + NOTE: added about an incompatibility in hb_fsSeek()/hb_fsWrite() - behaviour. - - * contrib/odbc/odbc.c - - Removed symbol init code. - * source/rtl/math.c - * Ultra minor change. - -19990824-17:20 EDT David G. Holm - * config/dos/bcc31.cf - - Removed '-DHARBOUR_USE_GTAPI' from 'CPPFLAGS'. - + Include RDD libraries when RDD is in library list. - * config/os2/icc.cf - - Removed '-DHARBOUR_USE_GTAPI' from 'CPPFLAGS'. - ! Corrected 'LINKELIBS' to read 'LINKLIBS'. - * source/compiler/harbour.c - + Added 'extern unsigned _stklen = UINTMAX;' for Borland DOS mode, - because compiling source/rtl/tget.c resulted in stack overflow - with the default 4096 byte stack. - * source/rtl/inkey.c - + Added 'DosSleep( 25 );' to hb_releaseCPU() for OS/2. - * source/rtl/tone.c - + Added 'Beep()' support for Win32, thanks to Chen Kedem - . Notes: Only tested with Cygwin() on - Windows NT and 95; On other Windows it only produces the - default sound or standard beep. - ! Removed call to hb_releaseCPU() at end of outer loop for long - durations in order to provide as seamless a sound continuation - as possible and to avoid increasing the duration when using DOS - platform code on some platforms (DOS DPMS, Windows NT, and OS/2). - -19990824-15:30 EDT Paul Tucker - * source/rtl/filesys.c - * added a couple of casts. - -19990824-20:30 GMT+1 Victor Szel - - * include/hbdefs.h - ! ISBYREF() macro changed to call hb_parinfo() instead of hb_param(), - it was not working previously since hb_param() was automatically - dereferencing the parameter. - FOPEN() parameter checking was not working correctly because of this. - - ( WARNING ! THIS SEEMS TO BE A WORKAROUND FOR SOME OTHER PROBLEM - WITH PARAMETERS PASSED BY REFERENCE, PLEASE ALSO NOTE THAT - FRead() IS NOT WORKING RIGHT NOW ) - - * source/rtl/filesys.c - doc/subcodes.txt - * Huge cleanup, reformatted, eliminated usage of internal structures, - fixed types, standardized variable names, explicit constants changed - to manifest constants, fixed a whole bunch of bugs, simplified code - fragments, optimalized variable usage and scope. 65535U -> (USHORT)-1 - % "return;"s removed - * reindented using 3 chars - ! FWRITE() and hb_fsWrite() returns 0 instead of 65535 if the write failed. - ! FOPEN() runtime error code fixed - ! FERASE() return value fixed - ! FREAD() will check if the passed buffer size is smaller than the - required read length. - ! FREAD(): Added warning about the fact, that the buffer returned by - hb_parc() will be directly modified. (this is strictly prohibited by - Clipper doc). - ! hb_fsCreate() didn't reset the last error code on success. - ! hb_fsDelete(), hb_fsRename(), hb_fsLock(), hb_fsCommit() - the not - defined platform branch is now setting the last error code. - ! hb_fsExtOpen() is now setting the last code to FS_ERROR. - % FREADSTR() made much faster for longer strings. - ! FREADSTR() uses hb_fsRead() instead of read() - ! hb_fsClose() didn't set the last error code. - ! I2BIN(), L2BIN() was returning one more character than Clipper - (it worked OK when bad parameters were passed). - ! BIN2L() returned an int instead of long, this is fixed. - - * source/rtl/math.c - * Reformatting finished. - -19990824-19:05 GMT+1 Victor Szel - - * source/rtl/math.c - ! MIN(), MAX() code fixed to behave exactly like Clipper, it will now - return a DOUBLE if any parameter is DOUBLE, it will return LONG if - any parameter is LONG, otherwise it will return INT, the HB_ITEM - decimals now are only accessed for DOUBLE types (and of course only set - for DOUBLE return types). The bug could be observed by running AC_TEST - pressing PgDn at the bottom of the list then pressing Up button, the - index display was shown with decimals in it (DOS/DJGPP). - % MIN(), MAX() code optimalized. - * Some direct hb_param() calls changed to macros. - -19990824-18:05 GMT+1 Victor Szel - - * source/rtl/extend.c - include/extend.h - % Variable declarations moved to inner blocks. - ! Parameter number zero is considered a bad case, instead of undefined. - % Optimalization and cleanup. Returns from inner blocks optimed out. - % Array index parameter is only evaluated when actual parameter is an - array, so that it should be faster now. - % The type checkings reordered, so that the first is the most probable one. - Array type is checked last, since this is the most rarely occuring case. - This will speed up things a bit. - ! Casting to (long) fixed in hb_parni() when return an array element. - ! Variable parameters are treated consistently as longs, we are not - Clipper compatible here, but in Harbour an array index can be ULONG, just - as like the string lengths were already ULONGs instead of ints. - ! WORD wArrayIndex changed to ULONG ulArrayIndex. - ! hb_storclen() WORD parameter changed to ULONG. - + Some casts added to hb_parni(), hb_parnd() - ! hb_parl() is returning valid values for INTEGER, LONG and DOUBLE type of - parameters. (Clipper does the same except for DOUBLE) - ! hb_parnl() is returning the date value as a long is the paramater is DATE - type. (just like in Clipper). - ; Reformatted to Harbour standard. - - * source/arrays.c - ! hb_arrayGetDouble() is now returning a value even for the DATE type, - to be consistent with hb_parn*(); - ! hb_arrayGetBool() is now returning a value even for INTEGER, LONG and - DOUBLE types, to be consistent with hb_parl(). - * Reindented using Harbour standard. - % Removed hb_ret() calls, they are not needed, since the default return - value is always NIL. - ! AEVAL() GPF fixed when the second parameter was not a codeblock. - - Removed (unsigned) casts from hb_arrayLen(). - ; Reformatted to Harbour standard. - - * source/rdd/dbcmd.c - ! HB_DBSKIP() it will work even when a DOUBLE type of numeric was passed, - (like Clipper). The low level HB_ITEM access changes to use the - extend API. - - * makefile.b32 - ! Fixes by Luiz Rafael Culik implemented. - - * source/rtl/strings.c - + Added a new runtime error for ALLTRIM(), this error has been - introduced in Clipper 5.3. - (Put between HB_COMPATIBILITY_CLIPPER_53 guard) - % Some PHB_ITEM accesses changed to type checking macros, only where - the PHB_ITEM was only used to check the type. - * Some reformatting (putting spaces between ()[] chars) - ; Reformatted to Harbour standard. - - * source/rtl/math.c - % PHB_ITEM access changed to Extend API calls and/or type checking macros. - - * source/rtl/console.c - % PHB_ITEM access changed to Extend API calls and/or type checking macros. - ! SETPRC() was checking the first parameter type two times, but not at all - the second. - - * source/rtl/descend.c - ! One (double) cast moved to the right place. - - * source/rtl/classes.c - % One hb_ret() removed. - * Some reformatting. - - * tests/working/rtl_test.prg - + CA-Clipper bugs documented somewhat better. - - * source/rtl/dates.c - source/rtl/dir.c - source/rtl/inkey.c - source/vm/hvm.c - * Some minor formatting change: defined( x ) -> defined(x). - + Two (double) casts added to hb_vmPopDouble() - -19990824-17:57 GMT+1 Antonio Linares - * source/debug/debugger.prg - + Added support for Next Window (K_TAB) and Prev Window (K_SH_TAB) - -19990824-17:10 GMT+1 Bruno Cantero - * funclist.txt - include/rddapi.h - source/rdd/dbcmd.c - source/rdd/dbf1.c - + Added FLOCK, DBUNLOCK, DBUNLOCKALL, AFIELDS, DBSTRUCT, LUPDATE, NETERR, - HEADER and RECSIZE - -19990824-16:04 GMT+1 Antonio Linares - * source/debug/debugger.prg - + Added support for F5-Go. (Breakpoints are not checked yet). - -19990824-14:55 GMT+2 Ryszard Glab - - *source/compiler/harbour.y - * corrected arguments type checking in Inc/Dec functions - - *source/hbppint.h - * memory.h is not defined in WATCOM C/C++ - - *include/rddapi.h - * added forward declaration for _AREA struct - -19990824-11:07 GMT+1 Bruno Cantero - * funclist.txt - include/rddapi.h - source/rdd/dbcmd.c - source/rdd/dbf1.c - + Added RLOCK, DBRLOCK and DBRUNLOCK functions - -19990824-03:50 GMT+1 Victor Szel - * tests/working/fileio.prg - + Rewritten to check more functions in more situations, displaying all - return values, etc. (almost like RTL_TEST.PRG) - * source/compiler/harbour.y - + Changed spaces to tabs in the generated code. This made the - generated code size almost 30% smaller, and the comments better aligned. - * source/compiler/harbour.l - source/compiler/harbour.y - include/hberrors.h - + One yyerror() call converted to standard GenError(). - * source/hbpp/hbppint.c - ! 'W' sign changed to 'I' for preprocessor warning. - * config/dos/djgpp.cf - - -( -) removed. - * runner.b32 - ! Fixes by Luiz Rafael Culik implemented. - * include/ctoharb.h - + hb_vmRequest*() functions added. - * source/rtl/errorsys.prg - + BREAK uncommented. - * include/filesys.h - * Some name standardization (fp -> p). - -19990823-19:37 GMT+1 Antonio Linares - * source/rtl/tbrowse.prg - * Added Class TbColumn DATA ColorBlock support. - * source/debug/debugger.prg - * Added support for setting breakpoints. - (they don't work yet, but you may set them pressing F9) - -19990823-17:00 GMT+1 Antonio Linares - * source/debug/debugger.prg - * improved application colors and cursor management. - -19990823-12:40 GMT+2 Ryszard Glab - - *source/compiler/harbour.y - + added full support for BEGIN/RECOVER/END sequence - + added full support for BREAK statement and BREAK function - (BREAK statement is implemented using BREAK function) - + fixed incorrect warning about unused static variables - * added some optimalization of generated opcodes - repeated - HB_P_LINE opcodes are replaced with only one HB_P_LINE opcode - if compiled with no debugger support - - *source/vm/hvm.c - + added full support for BEGIN/RECOVER/END sequence and BREAK - + new functions hb_vmRequestBreak() and hb_vmRequestQuit() - that can be used from C code to request BREAK or QUIT action - + changed HB_DEBUG to empty macro instead of function when - debug code is not requested - * some internal variables declared 'static' - * EXIT functions are called on exit when QUIT is requested - -QUESTION: How to handle the call to QUIT function inside of - EXIT procedure? Should we continue execution of the rest of - procedures or immediatelly quit to OS? - - *include/pcode.h - + added new opcodes - HB_P_SEQBEGIN - HB_P_SEQEND - HB_P_SEQRECOVER - -NOTE: You have to recompile all PRG code! - - *include/hberrors.h - + added new error code ERR_EXIT_IN_SEQUENCE called when - EXIT, LOOP or RETURN is used inside BEGIN/END sequence - (however these statement are valid in RECOVER code) - - *tests/working/begin.prg - + new file to test BEGIN/RECOVER/END sequence and BREAK statement - - *tests/working/Makefile - * added begin.prg - -19990823-10:45 GMT+1 Bruno Cantero - * include/rddapi.h - source/rdd/dbcmd.c - source/rdd/dbf1.c - source/rdd/sdf1.c - source/rdd/delim1.c - source/rdd/dbfntx/dbfntx1.c - + Added support for SUPER methods. - -19990823-02:00 EDT Paul Tucker - * source/debug/tbrwtext.prg - * GotoLine() only forceStable once after loop is done. - -19990823-01:11 EDT Paul Tucker - * source/debug/debugger.prg - * ::Activate - fix for trashed screens - Escape key will now exit the debugger, but the app will continue to run - Altd() will reactivate the debugger (maybe not imediately) - -19990823-01:11 GMT+1 Victor Szel - * source/rtl/alert.prg - ! PreExt/PostExt code moved inside Alert(), then the STATIC variable - could be removed, so that it will work even in nested calls. - * source/compiler/harbour.y - ! Extern "DEBUGGER" changed to "__DBGENTRY" - * config/win32/gcc.cf - tests/working/Makefile - source/runner/stdalone/Makefile - ! Removed the -( -) parameter, RDD lib added a second time after - the VM lib to resolve circular dependency. (Thanks to Paul Tucker) - * include/extend.h - include/hbdefs.h - * Standard #include files included from hbdefs.h instead of extend.h - * source/compiler/genobj32.c - ! Some types changed to BOOL - % Some #includes removed. - * source/runner/runner.c - - Removed (runlib.c is the new name) - * runner.b32 - + Added (missed from the previous CVS session) - * source/vm/hvm.c - % Removed some unneeded HARBOUR prototypes. - % Removed #include "init.h" - * source/rtl/strings.c - + Put #include "init.h" between guards - * tests/working/transfrm.prg - tests/working/Makefile - - Removed since all its content has been moved to rtl_test.prg - previously. - -19990822-16:20 EDT Paul Tucker - * source/rtl/alert.prg - + PreExt() and PostExt() - These allow alert to display if dispbegin is in effect. - -19990822-20:02 GMT+1 Bruno Cantero - * source/rdd/dbcmd.c - source/rdd/dbf1.c - * Bug in PutValue removed (again) - -19990822-18:20 GMT+1 Bruno Cantero - * include/rddapi.h - source/rdd/dbcmd.c - source/rdd/dbf1.c - * Bug in PutValue removed - -19990822-14:12 GMT+1 Victor Szel - * config/win32/gcc.cf - + -( -) parameters temporarly readded, to make it work, new circular - dependencies has been introduced, since HVM.C is calling RDD functions. - * include/extend.h - source/rtl/strings.c - source/rtl/math.c - * hb_mathRound() -> hb_numRound() - ! hb_numRound() fixed, so that it handles negative and zero iDec - parameter correctly. (STR()/STRZERO() got also fixed) - + Comment header added to STR() and STRZERO() - * tests/working/rtl_test.prg - * /FAIL changed to /ALL, so from now on, only the failing lines will be - showed by default. - + Added some tests. - * source/rtl/console.c - ! Comment typo fixed. - -19990822-12:49 GMT+1 Bruno Cantero - * include/rddapi.h - source/vm/hvm.c - source/rdd/dbcmd.c - source/rdd/dbf1.c - source/rdd/sdf1.c - source/rdd/delim1.c - source/rdd/dbfntx/dbfntx1.c - * Renamed hb_GetCurrentWorkAreaNumber, hb_SelectWorkAreaNumber and - hb_SelectWorkAreaAlias to hb_rddGetCurrentWorkAreaNumber, - hb_rddSelectWorkAreaNumber and hb_rddSelectWorkAreaAlias. - -19990822-07:40 GMT+1 Victor Szel - - * source/rtl/strings.c - ! hb_itemStr() fixed so that it rounds the value if the required - decimal width is smaller than the original. Note that rounding is - buggy so it still doesn't work. - * HB_STRTRAN() one more long converted to ULONG. (lFound -> ulFound) - - * include/extend.h - source/rtl/math.c - tests/working/rtl_test.prg - + Made a C callable version of ROUND() function, named hb_mathRound(). - + Added ROUND() tests. - - * source/rtl/strzero.prg - source/runner/stdalone/external.prg - include/external.ch - tests/working/rtl_test.prg - funclist.txt - + STRZERO() added. - + STRZERO() and STR() tests added. - + EXTERNAL NUMTOTXTHU enabled, since STRZERO() is existing now. - - * source/rtl/alert.prg - source/rtl/menuto.prg - source/rtl/achoice.prg - ! Some warnings fixed. (Why aren't we compiling with /w by default ?) - ! Hotkey handling bug fixed in ACHOICE(). - ! Comment typo fixed in Alert() - - * source/rtl/hardcr.c - tests/working/hardcr.prg - ! Fixed a bug in HARDCR() with handling strings including Chr(0). - It's now 100% Clipper compatible. - * hb_hardcr() renamed to hb_strHardCR() - - * source/rtl/mtran.c - * Small change in internal function, it returns the resulting string - pointer now. - * hb_memotran() renamed to hb_strMemotran() - - * source/tools/dates2.c - source/hbpp/hbpplib.c - source/vm/hvm.c - source/vm/initsymb.c - source/rtl/arrays.c - source/rtl/classes.c - source/rtl/console.c - source/rtl/copyfile.c - source/rtl/dates.c - source/rtl/descend.c - source/rtl/dir.c - source/rtl/do.c - source/rtl/environ.c - source/rtl/errorapi.c - source/rtl/filesys.c - source/rtl/hardcr.c - source/rtl/inkey.c - source/rtl/math.c - source/rtl/memvars.c - source/rtl/mtran.c - source/rtl/set.c - source/rtl/setcolor.c - source/rtl/strings.c - source/rtl/tone.c - source/rtl/transfrm.c - - Removed HB_INIT_SYMBOLS_*() automatic symbol registration, placed - "forcelink" code where needed. - - * include/extend.h - + hb_strDescend() prototype added. (this may be used in index creation - once) - - * source/runner/runhrb.c (removed) - source/runner/runlib.c (added) - source/runner/external.prg -> source/runner/stdalone/external.prg - source/runner/runhrb.prg -> source/runner/stdalone/runner.prg - source/runner/Makefile - source/runner/stdalone/Makefile - tests/working/Makefile - include/initsymb.h (removed) - include/initsymc.h (removed) - include/run_exp.h (removed) - runner.b32 (added !! NOT tested !!) - build32.bat (modified) - build40.bat (modified) - - Removed include files not needed anymore. - + Separated runner library from standalone executable. - * Renamed HB_RUN() to __HRBRUN() - + Added return value support to __HRBRUN() - + Added standard error messages to runlib.c, printf() is no longer called. - + TODO: the error codes should be replaced with meaningful ones. - * Large cleanup in runlib.c, functions made static, renamings, some BYTE - changed to BOOL, TOFIX, TODO added, etc. - + runner.prg help message standardized, extended. - + Tried to modify Borland makefiles to be able to build runner. - + Added runner lib to the Makefile's library list. - ( !! PLEASE CHECK THE BORLAND MAKEFILES !! ) - - * tests/working/rtl_test.prg - + /FAIL switch added to only show failing lines. - * Reindented using 3 characters. - - * source/rtl/inkey.c - include/inkey.h - ! Some ints changed to BOOL. - - * source/rtl/transform.c - tests/working/rtl_test.prg - ! The rest of the long types and one int converted to ULONG. - ! A temporary fix for an obvious bug, an if branch commented out. - This way it seems to work far better. GPF seem to have fixed. - Now only 10 tests fails. - ! TRANSFORM() test results corrected where Clipper is buggy, two - tests added which previously GPF-ed. - - * source/debug/debugger.prg - source/vm/hvm.c - * Function DEBUGGER renamed to __DBGENTRY - - * libs/icc/empty - - Removed since this directory is not used anymore. - - * source/hbpp/makefile.b16 (moved to /hbpp.b16) - source/hbpp/makefile.b32 (moved to /hbpp.b32) - source/hbpp/build.bat (removed) - source/hbpp/build32.bat (removed) - build.bat - build32.bat - hbpp.b16 (added !! NOT tested !!) - hbpp.b32 (added !! NOT tested !!) - + Moved to the root, renamed and incorporated to the mainstream - Borland make process, it's commented out. - ( !! PLEASE UPDATE THE BORLAND MAKEFILES !! ) - - * source/compiler/harbour.y - source/hbpp/hbpp.c - * Reformatted code for error and warning tables. - -19990821-22:18 GMT+3 Alexander Kresin - * source/debug/tbrwtext.prg - * minor improvements - * makefile.b32 - * added tone.c - -19990821-14:20 GMT+2 Ryszard Glab - - *source/rtl/inkey.c - * added test code for OS_UNIX_COMPATIBLE based on noncanonical - low-level terminal functions - we need however to extend this - code to support different terminals - -19990821-00:05 GMT+1 Antonio Linares - * source/debug/debugger.prg - * improved debugger functionality. - * source/vm/hvmc. - * improved debugger support. - -19990820-16:25 EDT Paul Tucker - * source/rtl/gtapi.c - * account for nesting of gtPre/PostExt and for calling - DispBegin/End while Pre/Post in effect. - -19990820-14:24 EDT Paul Tucker - * source/rdd/dbf1.c - * casts on sztext - -19990820-19:42 GMT+1 Bruno Cantero - * filelist.txt - include/rddapi.h - source/rdd/dbcmd.c - source/rdd/dbf1.c - source/rdd/sdf1.c - source/rdd/delim1.c - source/rdd/dbfntx/dbfntx1.c - dbUseArea() and dbCreate() add a default extension to filename if not provided. - -19990820-11:50 EDT Paul Tucker - * source/rtl/dir.c - * corrected case of iDirnameLen - * source/rtl/transfrm.c - * added casts as required - * makefile.vc - - remove HARBOUR_USE_GTAPI - -19990820-15:05 GMT+2 Ryszard Glab - - *source/rtl/strings.c - * corrected a NULL assigment to '\x0' - - *source/rdd/dbcmd.c - * corrected SELF_DELETE to SELF_DELETED in HB_DELETED function - - *source/runner/runner.c - * corrected NULL to 0L (we are returning LONG in ReadLong()) - - *include/external.ch - + new file with EXTERNAL declaration for all harbour - functions/procedures - - *source/rtl/dir.c - * corrected a parameter passed to 'opendir' function when - Watcom C/C++ is used - - *source/runner/Makefile - *source/runner/external.prg - *source/runner/runhrb.c - *source/runner/runmain.prg - * new files to create the runner executable. - + external.prg is here temporary because the preprocessor doesn't - process EXTERNAL statement yet - + runhrb.c is copied from runner.c however without all code used - to handle the symbol table - + runmain.prg calls HB_RUN from runhrb.c - NOTE: I have left runner.c unchanged because I was unable to - replace it with new files in all these build*.bat - these - build*.bat doesn't allow to create an executable from more then - one source file :( - -19990820-14:40 GMT+1 Victor Szel - * include/hbsetup.h - + HARBOUR_USE_GTAPI is automatically #defined if any type of the GTAPIs - is #defined. - So from now on only one of these should be #defined to turn on the GT: - #define HARBOUR_USE_DOS_GTAPI - #define HARBOUR_USE_OS2_GTAPI - #define HARBOUR_USE_WIN_GTAPI - -19990820-14:30 GMT+1 Victor Szel - * source/compiler/harbour.y - source/hbpp/hbpp.c - source/hbpp/hbpplib.c - source/hbpp/stdalone/hbpp.c - include/hbpp.h - + All occurence of FILENAME, MakeFilename, SplitFilename() changed - to the Harbour standard hb_fsFName*() and HB_FNAME. This way one - copy of them could be safely removed. - -19990820-13:47 GMT+1 Bruno Cantero - * source\rdd\dbcmd.c - Fixed some warnings, now RDD compile without warnings - -19990820-13:27 GMT+1 Bruno Cantero - * source\rdd\dbcmd.c - source\rdd\dbf1.c - source\rdd\delim1.c - source\rdd\sdf1.c - source\rdd\dbfntx\dbfntx1.c - Fixed some warnings (unused variables) - -19990820-12:50 GMT+1 Victor Szel - * source/rdd/dbcmd.c - ! SELF_DELETE -> SELF_DELETED (missed from the previous ChangeLog entry) - -19990820-12:40 GMT+1 Victor Szel - * source/rtl/filesys.c - include/filesys.h - + hb_fsFNameSplit() - hb_fsFNameMerge() - filename handling functions and structure added to the Harbour RTL. - These function were originated from MakeFilename() and SplitFileName() - * tests/working/rtl_test.prg - + rtl_test now shows the compiler version, os, date and time, other - improvements. - * All TRANSFORM() tests moved to rtl_test to allow automatic regression - testing. - * source/rtl/transfrm.c - * PicFlags type changed to WORD - * Some length and pos variable types changed to ULONG. - * TOFIX: added about an unreachable code segment. - * Some zero changed to '\0'. - * source/rtl/strings.c - source/rtl/maths.c - source/rtl/dates.c - source/rtl/arrays.c - * QUESTION:s changed to NOTE: regarding the parameter checking - -19990820-12:28 GMT+1 Antonio Linares - * source/debug/debugger.prg - * improved debugger functionality. F8 and F4 already operative. - * source/debug/tbrwtext.prg - * GotoLine() method added - * source/vm/hvmc. - * new bDebugging, bDebugShowLines variables added. - * new hb_vmDebuggerShowLine() function - -19990820-11:47 GMT+1 Bruno Cantero - * funclist.txt - include/rddapi.h - source/rdd/dbcmd.c - source/rdd/dbf1.c - source/rdd/sdf1.c - source/rdd/delim1.c - source/rdd/dbfntx/dbfntx1.c - source/vm/hvm.c - + Added new functions, changed VM for support Alias and updated function list. - -19990819-18:42 GMT+1 Victor Szel - * tests/working/rtl_test.prg - + STUFF() and RAT() tests added, some more tests added to PAD*() family. - * include/extend.h - source/rtl/strings.c - source/rtl/descend.c - source/vm/hvm.c - ! hb_strUpper(), hb_strLower(), hb_strAt() uses ULONG instead of long - for string positions and lengths. - ! hb_pad_prep() uses ULONG instead of WORD - + REPLICATE() now checks for string overflow. - * REPLICATE() uses only standard Extend API calls now. - * STUFF() made completely Clipper compatible, it now uses only standard - Extend API calls. - * hb_stricmp() USHORT changed to ULONG. - * return type of hb_strgreater changed to int from WORD - ! Some types changed to BOOL, many "long"s changed to ULONG. - * long -> LONG, _retni() -> retnl() in one place. - * Some zeros changed to \0 and NULL. - * Small name changes: - hb_pad_prep() -> hb_itemPadConv() - hb_strempty -> hb_strEmpty - hb_strdescend -> hb_strDescend - * source/rtl/copyfile.c - ! Fixed a bug when HB_STRICT_CLIPPER_COMPATBILITY was set. - * contrib/odbc/odbc.c - source/rtl/copyfile.c - source/rtl/descend.c - source/hbpp/hbpplib.c - ! Fixed #pragma startup directives. (missing "startup", missing - __GNUC__ guard.) - * source/hbpp/hbpplib.c - tests/working/testpre.prg - * HB_PREPROCESS -> HB___PREPROCESS, since this is an extension. - PREPROCESS -> __PREPROCESS - * source/vm/dynsym.c - * One small change. - -19990819-12:30 GMT+1 Victor Szel - * source/rtl/strings.c - ! hb_itemStr() possible error fixed when item.asDouble was - accessed without making sure whether the item is a double. - -19990819-00:15 EDT Paul Tucker - * source/rtl/gtapi.c - + hb_gtPreExt() - + hb_gtPostExt() - Like Clipper internals - these functions should be called as - bookends to printf if there is a possibility that a dispbegin - is in effect when the printf or fprintf(stderr) takes place. - * gtDispEnd(); - decrement counter after restoring screen - * source/rtl/console.c - * added calls to above functions - * source/rtl/gt/gtdos.c - * account for dispCount change - * source/rtl/gt/gtwin.c - * If the Windows console handle is not the initial handle inherited - from stdin - printf fails to work. Modified Dispbegin/end logic - to account for this. - -19990819-05:26 GMT+1 Victor Szel - - * source/compiler/harbour.l - source/compiler/harbour.y - source/compiler/genobj32.c - source/hbpp/hbpp.c - source/hbpp/hbppint.c - source/hbpp/hbpplib.c - source/hbpp/stdalone/hbpp.c - include/compiler.h - include/hbpp.h - - + Standardized the names of the memory handling functions. - OurMalloc() -> hb_xalloc() - OurRealloc() -> hb_xrealloc() - OurFree() -> hb_xfree() - _xgrab() -> hb_xgrab() - _xrealloc() -> hb_xrealloc() - _xfree() -> hb_xfree() - So that from now on, the Harbour API form can be used everywhere. - Some duplicate code eliminated. - - * source/rtl/arrays.c - hb_arrayScan() - - ! Checks the return value of the comparer block whether it's logical. - -19990819-04:44 GMT+1 Victor Szel - * source/rtl/memvars.c - include/extend.h - * int -> BOOL (hb_memvarValueNew()) - + PUBLIC CLIPPER and PUBLIC HARBOUR will initialize those variables with - .T. instead of .F., to be compatible with Clipper, and to be able to - detect Harbour. - * include/extend.h - source/rtl/extend.c - source/rtl/itemapi.c - source/vm/hvm.c - source/rtl/transfrm.c - - Removed HB_ITEM/asLogical.length variable, since it was never - used, and has no sense anyway. - - Removed HB_ITEM/asDate.length variable, since it was never - used, and has no sense anyway. - - Removed HB_ITEM/asInteger.decimal variable, since it was never - used, and has no sense anyway, it's always zero. - - Removed HB_ITEM/asLong.decimal variable, since it was never - used, and has no sense anyway, it's always zero. - * source/rtl/arrays.c - source/rtl/extend.c - source/rtl/memvars.c - source/vm/hvm.c - include/extend.h - * HB_ITEM/asLogical.value type changed to BOOL - * include/hbdefs.h - + ISNIL() macro added. - * source/tools/dates2.c - * Some optimalizations, simplifications. - * source/rtl/transfrm.c - ! Fixed handling of the case, when the second parameter was not a - string. - * Some optimalizations, simplifications. - ! Reenabled symbol registration, to avoid an empty initialization list. - This is only a temporary workaround. - -19990819-02:15 GMT+1 Victor Szel - * source/hbpp/hbpplib.c - ! OurMalloc -> _xgrab - * source/compiler/genobj32.c - ! "_VirtualMachine" -> "_hb_vmExecute" - * source/rtl/arrays.c - source/rtl/console.c - source/rtl/dates.c - source/rtl/inkey.c - source/rtl/math.c - source/rtl/strings.c - source/rtl/transfrm.c - source/vm/hvm.c - ! Commented out those symbol registration line, which are already included - in source/vm/initsymb.c - * source/vm/dynsym.c - * Some variable declaration moved to the block where it's used. - * Some 0 (zero) changed to NULL and '\0' - * source/rdd/dbcmd.c - ! extern HARBOUR functions declared as extern. - * source/rtl/classes.c - ! __msg*() function names changed to hb___msg*(), to avoid the - leading underscores. - * Many variable declaration moved to the block where it's used. - ! Some (5?) potential GPFs fixed when the string/block parameter was - omitted. - * BYTE changed to BOOL in one place. - ! Added proper (commented out) error description to three runtime errors. - * source/rtl/extend.c - * Some 0 (zero) changed to NULL and '\0' - * include/inkey.ch - ! Typo fixed. - * include/extend.h - source/rtl/arrays.c - source/rtl/classes.c - * BASEARRAY/wSuperCast changed to bSuperCase, type changed to BOOL. - * source/vm/hvm.c - source/vm/initsymb.c - source/tools/io.c - source/runner/runner.c - source/rtl/codebloc.c - source/rtl/console.c - source/rtl/dates.c - source/rtl/dir.c - source/rtl/extend.c - source/rtl/filesys.c - source/rtl/fm.c - source/rtl/inkey.c - source/rtl/langapi.c - source/rtl/memvars.c - source/rtl/msgxxx.c - source/rtl/set.c - source/rtl/strings.c - source/compiler/harbour.y - % Removed all #includes which are always included indirectly via - extend.h - * include/extend.h - * changed inclusion order of hbsetup.h and hbdefs.h, so that - hbsetup.h is included first. - * source/vm/initsymb.c - source/compiler/harbour.y - - DO removed from here. (since it's non standard Clipper) - * source/vm/initsymb.c - - STOD removed from here. (since it's non standard Clipper) - * made all HARBOUR prototypes extern. - - #include "init.h" removed. - + #include "initsymd.h" guarded with HARBOUR_STRICT_ANSI_C - + INKEY, PCOL, PROW address filled with proper value instead of NULL. - * include/memvars.ch - * Really small correction. - -19990818-19:20 EDT David G. Holm - * source/vm/hvm.c - * Added TODO: comment to indicate that the divide by zero check - needs to be removed once proper divide by zero error handling - has been added to Harbour. - -19990818-18:45 EDT David G. Holm - * config/os2/icc.cf - ! Fix to only use RDD libraries when RDD library is specified. - * include/inkey.h - + Added '#include "set.h"' to get HB_set_enum. - * source/rtl/dates.c - * Renamed hb_seconds() to hb_secondsToday() to avoid a duplicate - symbol warning when using a C++ compiler. - * source/rtl/environ.c - * Moved hb_revision to after hb_build to match Harbour build - number (e.g., "(Build 29a)"). - * source/rtl/gtapi.c - ! Moved speed enhancement display code in hb_gtWriteCon() to be - outside the switch() statement, so that forced display updates - take place immediately instead of when the next character is - processed. (This bug caused QOUT to act like QQOUT.) - ! Added a check to force the display of whatever is in 'strng' when - the buffer is full, because it's possible to write more than 500 - characters without hitting any other forced display conditions - when starting more than 500 characters away from the bottom right - corner of the screen (a 25 x 80 screen is 2000 characters). - - Commented out the calls to hb_gtDispBegin() and hb_gtDispEnd() in - hb_gtWriteCon() in anticipation of removing them, because their use - subverts the use of DISPBEGIN() and DISPEND() in Harbour code. - * source/rtl/inkey.c - - Removed '#include "set.h"', because inkey.h includes it. - + Uncommented DOS release CPU code and added '#if defined(DOS)'. - * source/rtl/tone.c - * Added support for long delays, like in Clipper. - ! OS/2 upper frequency limit is 32767. - * Limited all platforms to an upper frequency of 32767. - * source/vm/hvm.c - ! When dividing by 0, always return 0, just like Clipper. - * tests/working/mathtest.prg - * Moved modulo 0 test ahead of divide by 0 test. - * Put "error" text on a separate line. - * tests/working/sound.prg - + Calculate elapsed time, which should be close to 1.5 seconds - (except on platforms where SECONDS() only returns whole seconds). - -19990819-02:23 GMT+1 Bruno Cantero - * funclist.txt - source/rdd/rddsys.prg - source/rdd/dbcmd.c - source/rdd/dbf0.prg - source/rdd/dbf1.c - source/rdd/sdf0.prg - source/rdd/sdf1.c - source/rdd/delim0.prg - source/rdd/delim1.c - source/rdd/dbfntx/dbfntx0.prg - source/rdd/dbfntx/dbfntx1.c - tests/working/testrdd.prg - - Added new functions, run-time errors and update function list. - -19990818-16:16 EDT Paul Tucker - * source/rtl/console.c source/rtl/gtapi.c source/rtl/gt/gtwin.c - * fixes to my fixes - * makefile.vc - + source/debug/tbrwtext.prg - -19990818-14:33 EDT Paul Tucker - * source/rtl/console.c - * source/rtl/gtapi.c - * a number of small changes to improve speed. - * source/rtl/gt/gtwin.c - * correction to cursor positioning when dispend called - * tests/working/dirtest.prg - * comment out (for now) asort - it works, but it's rather slow on a larger directory - -19990818-14:13 GMT+1 Bruno Cantero - * include/rddapi.h - source/rdd/dbcmd.c - source/rdd/dbf1.c - source/rdd/sdf1.c - source/rdd/delim1.c - source/rdd/dbfntx/dbfntx1.c - Added new functions - -19990818-03:00 GMT+1 Victor Szel - - * source/compiler/harbour.y - ! Fixed "incorrect pcode" error with /gh switch and certain .prg files. - (Thanks to: Ryszard Glab ) - - * source/compiler/harbour.y - + Invalid pcode error now shows the failing pcode number. - - * source/vm/hvm.c - + TODO: added to include the actual unsupported pcode in the error - message. - - * include/run_exp.h - include/initsymc.h - include/initsymd.h - source/vm/hvm.c - source/rtl/memvars.c - source/rtl/math.c - source/rtl/arrays.c - source/rtl/console.c - source/rtl/dates.c - source/rtl/do.c - source/rtl/errorapi.c - source/rtl/filesys.c - source/rtl/strings.c - + Standard name registration method added (hvm.c). - ! Completed init tables so that all declared Harbour function get - registered. - - * include/run_exp.h - + ACHOICE added. - - * source/compiler/harbour.y - source/compiler/harbour.l - source/rtl/itemapi.c - source/rdd/dbcmd.c - * Some tricks used to suppress unused variable warnings changed - to HB_SYMBOL_UNUSED(). - -19990817-15:36 EDT Paul Tucker - * source/debug/tbrwtext.prg - * modified to with with cr/lf or just lf - -19990817-21:10 GMT+1 Antonio Linares - * source/rtl/errorsys.prg - * public getlist := {} uncommented. - -19990817-14:26 EDT Paul Tucker - * source/debug/Makefile - + tbrwtext.prg - -19990817-20:51 GMT+1 Antonio Linares - * source/rtl/tbrowse.prg - * Added lHeaders := .f. at method New(). - * source/rtl/tbcolumn.prg - * Small fix on nWidth do case otherwise. - -19990817-20:35 GMT+2 Ryszard Glab - - *source/compiler/harbour.y - * corrected code used to generate HB_P_ENDPROC - the declared - length of function/procedure is now equal to the number of bytes - written into HRB file - some comments added - - *source/runner/runner.c - * corrected reading of function/procedure body (it was trying to - read (size+1) bytes) - * the MAIN procedure is defined if HARBOUR_START_PROCEDURE is - defined - the runner works with GCC/Linux now - * corrected code used to call (_INITSTATIC) function - inside - this function there is no access to passed parameters then - there is no need to pass them - static variables can be - initialized using literal values only - -19990817-20:14 GMT+1 Victor Szel - * tests/working/Makefile - tests/working/colorind.prg (content moved to rtl_test.prg) - tests/working/rtl_test.prg - tests/working/testhbf.prg - tests/working/and_or.prg - ! Starting procedure name changed to Main() so Win32/GCC is also able to - run them. - * Some minor changes - -19990817-13:50 EDT David G. Holm - * config/dos/global.cf - + Added code to leave COMSPEC alone instead of changing '\' to - '/' for bcc31, because NT chokes on '/' when using the Cygwin - GNU Make System to build the Borland C 3.1 version of Harbour. - * source/rtl/console.c - + Surrounded 'if( isatty( fileno( stdout ) ) )' in hb_outstd() - with '#ifndef __CYGWIN__' and '#endif'. - ! Corrected 'if( isatty( fileno( stdout ) ) )' in hb_outerr() - to check stderr instead of stdout. - + Surrounded 'if( isatty( fileno( stderr ) ) )' in hb_outerr() - with #ifndef '__CYGWIN__' and '#endif'. - * source/runner/runner.c - ! Added ')' that was missing from a conditional test. - * tests/working/dates4.prg - * Moved output of extra CR/LF pair in CheckDate() subroutine to - after the __Accept() call, because __Accept() already outputs - a CR/LF pair before displaying the prompt. - -19990817-17:13 GMT+1 Antonio Linares - + source/debug/tbrwtext.prg - * Class TBrwText for browsing debugger source code - * source/debug/debugger.prg - * Improved - * makefile.b32 - * TBrwText module added - -19990817-13:20 GMT+1 Antonio Linares - * include/classes.ch - * extern added, so now the SuperClass symbol is properly linked. - -19990817-07:30 GMT+1 Victor Szel - * source/vm/hvm.c - source/rtl/errorapi.c - source/rtl/classes.c - source/rtl/fm.c - source/rtl/itemapi.c - source/rtl/transfrm.c - include/error.ch - + printf()s changed to a call to hb_errInternal() instead. - * hb_callStackShow() modified so that it uses the same format as - the standard error handler. - - * include/initsymc.h - include/initsymd.h - source/rtl/errorapi.c - + Harbour callable __errRT_BASE() function added. - - * include/errorapi.h - source/rdd/dbcmd.c - source/rtl/errorapi.c - source/rtl/arrays.c - source/rtl/classes.c - source/rtl/copyfile.c - source/rtl/dates.c - source/rtl/do.c - source/rtl/errorapi.c - source/rtl/filesys.c - source/rtl/inkey.c - source/rtl/math.c - source/rtl/memvars.c - source/rtl/set.c - source/rtl/strings.c - source/rtl/transfrm.c - source/tools/dates2.c - source/vm/hvm.c - * hb_error*() -> hb_err*() - - removed obsolete hb_errorNat*() prototypes. - - * include/hberrors.h - include/hbpp.h - source/compiler/harbour.y - source/hbpp/*.c - source/hbpp/stdalone/*.c - + Added the ability to display warnings in standard format. - ! Adjusted and corrected to help display of HBPP.EXE - - * source/rtl/objfunc.prg - doc/subcodes.txt - * Got rid of the QOUT() type runtime-error messages, there's now - a more comprehensive, standard error checking system, which throws - Harbour errors. - ! Some small bugs fixed. (checking argument after usage, additional - parameters passed in one place - typo) - - * include/hboo.ch - source/rtl/objfunc.prg - source/rtl/tclass.prg - source/tools/stringp.prg - * DATA_VAL -> DATA_VALUE - -19990816-21:57 GMT+1 Victor Szel - * source/rtl/console.c - tests/working/colorind.prg - + Added standard header to __ColorIndex() - ! Some Lint warnings fixed. - + Some tests added. - * include/hbdefs.h - include/extend.h - ! Some Lint warnings fixed. - * include/Makefile - + Added hboo.ch - -19990816-22:15 GMT+3 Alexander Kresin - * source/rtl/tbrowse.prg - * tests/working/testbrw.prg - * added functionality - methods PanLeft().PanRight(),Hilite(),DeHilite() - * Up() and Down() now uses Scroll() and Hilite()/DeHilite() instead of - RefreshAll() and RefreshCurrent() - * source/hbpp/hbpp.c - * Bug fixed for new CLASS implementation ( with 'extern' ) - -19990816-12:26 EDT Paul Tucker - * source/rtl/browdb.prg - + copyright info. - + todo info - * makefile.vc - + browdb - + tone - -19990816-15:30 GMT+1 Victor Szel - * source/rtl/errorapi.c - ! Fixed hb_errLaunch() so that it will handle error handler return - values correctly. NOTEs added about this. - -19990816-13:30 CET Eddie Runia - * source/compiler/harbour.y - EndProc error resolved. - PushDouble error resolved. - Padding problem resolved - * source/runner/runner.c; include/run_exp.h - First symbol should be executed. Main renamed to HB_RUN - Init symbol code fixed - -19990816-13:20 GMT+1 Victor Szel - * source/rtl/Makefile - + browdb.prg added - * source/rtl/errorsys.prg - ! Removed ErrorLevel() call. - * source/rtl/itemapi.c - ! hb_evalNew() is no longer making a copy of the passed block/name - parameters, so hb_evalRelease() will properly release that item. - Although not exactly defined in CA-Clipper NG, the example program - suggest that it works like this. CA-Clipper example generated unreleased - blocks in Harbour. - % Some variable scopes optimized. - -19990816-12:39 GMT+1 Antonio Linares - + source/rtl/browdb.prg - * source code for TBrowseDb() - * source/rtl/tbrowse.prg - * removed source code for TBrowseDb() - * harbour/makefile.b32 - * browdb module added. - -19990816-12:03 GMT+1 Antonio Linares - * source/vm/hvm.c - * Enhanced ProcName() returned information. - (it generates the name of the Class and the method). - -19990816-12:03 GMT+1 Antonio Linares - * include/ctoharb.h - + Added new hb_callStackShow() prototype - * source/vm/hvm.c - + Added new hb_callStackShow() function - * improved internal errors reporting information - -19990816-01:11 EDT Paul Tucker - * source/vm/hvm.c - * ProcessObjSymbols -> hb_vmProcessObjSymbols - -19990816-02:45 GMT+1 Victor Szel - - * include/extend.h - source/rtl/classes.c - source/rtl/objfunc.prg - source/rtl/tclass.prg - source/vm/hvm.c - source/tools/stringp.prg - tests/working/dynobj.prg - tests/working/debugtst.prg - tests/working/inherit.prg - tests/working/strip.prg - tests/working/objects.prg - - % Some variables and functions made static in classes.c - ! Completed init symbol list. - - * Names changed to standard ones (they should also work in 10 chars mode): - - ClassCreate -> __clsNew - ClassInstance -> __clsInst - __InstSuper -> __clsInstSuper - ClassAdd -> __clsAddMsg - ClassDel -> __clsDelMsg - ClassMod -> __clsModMsg - WClsDatas -> __cls_CntClsData - __wDatas -> __cls_CntData - __wDataDec -> __cls_DecData - __wDataInc -> __cls_IncData - - aOMethod -> __objGetMethodList - aOData -> __objGetMsgList - aOGet -> __objGetValueList - aOSet -> __objSetValueList - oClone -> __objClone - ClassName -> __objGetClsName - oSend -> __objSendMsg - isMessage -> __objHasMsg - IsData -> __objHasData - IsMethod -> __objHasMethod - oAddMethod -> __objAddMethod - oAddInline -> __objAddInLine - oAddData -> __objAddData - oModMethod -> __objModMethod - oModInline -> __objModInLine - oDelMethod -> __objDelMethod - oDelInline -> __objDelInLine - oDelData -> __objDelData - - ClassH -> __msgClsH - ClassName -> __msgClsName - ClassSel -> __msgClsSel - SelectSuper -> __msgSuper - EvalInline -> __msgEvalInline - GetClassData -> __msgGetClsData - SetClassData -> __msgSetClsData - GetData -> __msgGetData - SetData -> __msgSetData - Virtual -> __msgVirtual - - DictRealloc -> hb_clsDictRealloc - ReleaseClass -> hb_clsRelease - ReleaseClasses -> hb_clsReleaseAll - hb_GetClassName -> hb_objGetClsName - hb_GetMethod -> hb_objGetMethod - hb_isMessage -> hb_objHasMsg - - * include/hboo.ch - source/rtl/classes.c - source/rtl/objfunc.prg - source/rtl/tclass.prg - source/tools/stringp.prg - tests/working/dynobj.prg - tests/working/objects.prg - tests/working/overload.prg - tests/working/objects.prg - - + MET_ and DATA_ declaration moved to one place (hboo.ch). - - * source/rtl/errorapi.c - include/errorapi.h - - % hb_error*() functions are returning void instead of WORD, except for - hb_errorRT_BASE_Ext1(). - - * include/error.ch - include/langapi.h - source/rtl/langapi.c - - + New error code EG_ARRDIMENSION added - - * source/rtl/arrays.c - - ! ARRAY() now properly checks the passed parameters (Clipper compatible). - + ARRAY() TODO: added (to support multiple dimensions) - ! AADD() Fixed parameter handling, throws errors like Clipper. - ! ASIZE() Fixed parameter handling. - ! hb_arrayIns() removed one error to be Clipper compatible. - ! hb_arrayDel() removed one error to be Clipper compatible. - + AFILL(), ASCAN(), AEVAL(), ACOPY() TOFIX: added. - - * source/rtl/transform.c - - ! _exit -> exit (_exit had no prototype, and that was the only place - where it was used) - ! Some BYTE and int changed to BOOL at obviouse place. - ! Some functions made static. - ! Some unused variables removed (lFact*) - -19990815-18:45 GMT+2 Ryszard Glab - - *source/rtl/hvm.c - * added 'hb_vm' prefix to alias/field related functions - * some functions declared 'static' - - *include/ctoharb.h - - removed declarations of internal virtual machine functions - - *source/compiler/harbour.y - * changed an error description for incorrect use of PARAMETERS - statement - * added type casting to compile under C++ compilers - * static frame is correctly generated if static variable - is used in a codeblock only - - *include/extend.h - - removed obsolete declaration of hb_memvarNewSymbol() - - *include/hb_vmpub.h - + added definition of callback function HB_DYNS_FUNC used - to enumerate dynamic symbols - - *source/vm/dynsym.c - + new function hb_dynsymEval() that enumerates dynamic symbols - by calling specified HB_DYNS_FUNC * function - - *source/rtl/memvars.c - + added __MVCLEAR function to release all PRIVATE and PUBLIC - variables (this function is used in CLEAR MEMORY statement) - -19990815-19:59 GMT+3 Alexander Kresin - * source/rtl/tbrowse.prg - * tests/working/testbrw.prg - * added functionality - some methods implemented, added support of - footing, head separator, footer separator, freeze. - Now it seems almost complete. - -19990815-17:40 GMT+1 Victor Szel - * bldodbc.bat - hbodbc.b32 - * moved to /contrib/odbc - * updated for the new locations (not tested though). - -19990814-20:40 GMT+1 Victor Szel - * include/hb_vmpub.h - source/vm/dynsym.c - ! FS_ declarations now included casts, to suppress some - pedantic warnings (Win32/GCC -ansi -pedantic). - * source/hbpp/hbpp.c - source/hbpp/table.c - ! Made them end with newline. (ANSI C req.) - * source/vm/hvm.c - include/rddapi.h - source/hbpp/hbpp.c - ! // comment changed to /**/ (ANSI C req.) - * include/init.h - include/run_exp.h - source/compiler/harbour.y - contrib/odbc/odbc.c - source/hbpp/hbpplib.c - source/rdd/dbfntx/dbfntx1.c - source/rdd/dbcmd.c - source/rdd/dbf1.c - source/rdd/delim1.c - source/rdd/sdf1.c - source/rtl/arrays.c - source/rtl/classes.c - source/rtl/console.c - source/rtl/copyfile.c - source/rtl/dates.c - source/rtl/descend.c - source/rtl/dir.c - source/rtl/environ.c - source/rtl/filesys.c - source/rtl/hardcr.c - source/rtl/inkey.c - source/rtl/math.c - source/rtl/mtran.c - source/rtl/set.c - source/rtl/setcolor.c - source/rtl/strings.c - source/rtl/tone.c - source/rtl/transfrm.c - source/tools/dates2.c - ! Corrected some HB_INIT_SYMBOLS_END() and HB_CALL_ON_STARTUP_END() - macro definitions to include the ending ";". - ! Removed the ";" after - HB_INIT_SYMBOLS_END() and HB_CALL_ON_STARTUP_END() macro references. - (ANSI C req.) (Win32/GCC complained about it with -ansi -pedantic: - "warning: ANSI C does not allow extra `;' outside of a function") - -19990814-19:55 GMT+1 Victor Szel +19990913-23:00 GMT+1 Victor Szel * ChangeLog - ChangeLog.002 - * Old ChangeLog renamed to ChangeLog.002 + ChangeLog.003 + * Old ChangeLog renamed to ChangeLog.003 * New ChangeLog created. * source/pp/pragma.c * contrib/dot/pp_harb.ch diff --git a/harbour/ChangeLog.003 b/harbour/ChangeLog.003 new file mode 100644 index 0000000000..f27dea1cdf --- /dev/null +++ b/harbour/ChangeLog.003 @@ -0,0 +1,3753 @@ +19990913-22:50 GMT+1 Victor Szel + + * source/rtl/gtapi.c + ! hb_gtRectSize() fixed to always return a valid value, even when + the coordinates are out of range, just like in Clipper. + This caused a GPF when running a program with the standard output + redirected. The screen size stored in the caching static variables + were invalid or uninitialized. + The Row()/Col() parameters are also cached in static variables, I'm not + sure if this is needed, it would be better IMO to add hb_gtRow() and + hb_gtCol() and call these when needed, it could be also cached locally + to optimalize where appropriate. + ! s_uiMaxCol()/s_uiMaxRow() static variables replaced with hb_gtMax*() + calls. + % hb_gtWriteCon() now caches the screen size info locally. + * source/rtl/console.c + ! SAVESCREEN() - Non GTAPI version now returns an empty string. + * source/rtl/alert.prg + + Will now return NIL and do nothing if the number of parameters was zero. + This better mimics the STRICT Clipper behaviour. + ! One explicit value changed to manifest constant. ( 0 -> SC_NONE ) + * source/rtl/memvars.c + ! FO_SHARED flag uncommented for __MVRESTORE(). + NOTE: Cygwin will now delete the .mem file after a restore. + This is a known problem and should be fixed elsewhere. + * tests/working/overload.prg + + New tests added by Jose Lalin. + * source/rtl/natmsg/msggl.c + * Updated version by Jose Lalin. + * include/errorapi.h + source/rtl/errorapi.c + + hb_errPutArgs() function to set :Args of an Error object. + * tests/working/rtl_test.prg + tests/working/memfile.prg + + __MVSAVE()/__MVRESTORE() error cases moved here from MEMFILE.PRG + + Operator overloading tests added. + +19990913-15:35 GMT+2 Ryszard Glab + + *source/rdd/dbcmd.c + * added retry possibility for error handling in field + assignment/access + * changed BOOL to ERRCODE for hb_rddSelect*() and + hb_rddPutFieldValue/hb_rddGetFieldValue + + *include/rddapi.h + * changed BOOL to ERRCODE for hb_rddSelect*() and + hb_rddPutFieldValue/hb_rddGetFieldValue + + *source/vm/hvm.c + * changed BOOL to ERRCODE for hb_rddSelect*() and + hb_rddPutFieldValue/hb_rddGetFieldValue + * memvar handling functions moved directly into main VM loop + + *include/ctoharb.h + * removed declaration of internal memvar functions used in VM + + *source/rtl/memvars.c + * added retry possibility for error handling in variable access + + *tests/working/rtl_test.prg + * added code to test __MVGET function (macro evaluation in Clipper) + +19990913-13:30 GMT+1 Victor Szel + + * source/compiler/harbour.y + ! Stupid bug fixed which always caused an error when using the /p switch. + The bug has been introduced today. + * source/runner/runlib.c + * Formatting/indenting errors fixed. + +19990913-12:00 GMT+1 Victor Szel + + * tests/working/rtl_test.prg + + ASORT() tests added. + ! Fixed an expected result for aScan() was 12 instead of 4. + ! CHR() tests fixed to avoid the Clipper compiler expression optimizer. + * source/rtl/asort.prg + ! Parameter checking fixed and streamlined again. + ! Fixed when sorting a given range of the array. + ! Fixed when the codeblock is not returning a logical type. This is not + Clipper compatible, but Clippers behaviour is not defined for this case, + and seems buggy. + % One variable eliminated from QuickSort() + + Formatted. + ; Results checked against Clipper + +19990913-10:00 GMT+1 Victor Szel + + * include/compiler.h + include/hberrors.h + source/compiler/harbour.l + source/compiler/harbour.y + source/compiler/gen*.c + source/hbpp/hbpp.c + source/hbpp/hbppint.c + source/hbpp/stdalone/hbpp.c + ! Fixed a GPF when the .PPO file could not be created. + * The compiler screen output made more Clipper like. + * Some error messages made Clipper like. + + Some printf()s changed to use GenError() instead. + + Added www site name and Copyright notice to the header. + * lPpo -> _bPPO variable name change. + * source/vm/hvm.c + + Some casts added. + +19990913-01:40 GMT+1 Victor Szel + + * source/rtl/memvars.c + ! __MVSAVE() - Pedantic fix to the saved format of DATE type. + ! __MVSAVE() - Made it bug compatible with Clipper, for DOUBLE numeric + types with no decimals, Clipper adds one to the saved width, which is + wrong, since at restore the width will be incorrect (one more than it + should be), you can check this with the value 5000000000 for example. + HARBOUR_STRICT_CLIPPER_COMPATIBILITY added here, right now the bug fix + in enabled. + * source/rtl/asort.prg + ! More parameter checkings added. + * tests/broken/numform.prg + + Added test to demonstrate a bug in the compiler. (a==22.and.b==10) + * tests/working/memfile.prg + ! Fixed faulty RESTORE command. + * source/compiler/harbour.y + +19990912-17:11 EDT Paul Tucker + * source/rtl/memvars.c + * added a few casts + +19990912-20:45 GMT+1 Victor Szel + + * source/rtl/memvars.c + ! __MVSAVE() will no longer try to save memvars with longer filename than + 10 characters, the Clipper maximum. + + * tests/working/memfile.prg + tests/working/Makefile + + .MEM file save/restore test program added, it's a simple test and doesn't + yet checks for every aspects of the topic. + + * funclist.txt + + __MSAVE()/__MRESTORE() marked Ready. + +19990912-20:30 GMT+1 Victor Szel + + * source/rtl/memvars.c + + __MVSAVE()/__MVRESTORE() .MEM file saving and restoring support added, + Clipper compatible, with extensions to __MVRESTORE() to only restore + varnames with a specified mask. + + * source/rtl/itemapi.c + include/itemapi.h + + hb_itemPutDL() added to set a date directly with a Julian date value. + + * source/rtl/filesys.c + ! hb_fsIsDrv() fixed bug when the original drive is not restored. + Thanks go to Jose Lalin for finding this. + + * tests/working/statinit.prg + + More meaningful messages are printed. + + * source/rtl/extend.c + ! hb_parcsiz() now only works for parameters passed by reference, just like + in CA-Cl*pper. + +19990912-15:45 GMT+2 Ryszard Glab + + *include/errorapi.h + *source/rtl/errorapi.c + * all hb_errRT*() functions return error code returned by + hb_errLaunch + * separated generic runtime error creation from error launching + + *include/extend.h + *source/rtl/strings.c + + added hb_strncpyUpper( char *pDest, char *pSource, ULONG ulLen ) + function to copy and convert to uppercase in one operation + + *source/rdd/dbcmd.c + * functions that select workarea can now retry the select operation + in case of error (the user code can open a missing database in a + custom error handler) + + *source/vm/hvm.c + *added substitution possibility in case of invalid alias value + + *tests/working/rtl_test.prg + * failure description shows now function name and line number where + failed code was used + + *include/external.ch + * added declaration of MEMVARBLOCK, __MVGET, __MVPUT + +19990912-07:43 GMT+1 Victor Szel + * source/vm/hvm.c + ! hb_vmSwapAlias() removed the RT error 9993, now it works like Clipper. + + Added an empty TYPE() function prototype with a TODO: + * source/vm/initsymb.c + - QSELF removed from the list, since it's a native opcode in Harbour, + there's not need to initialize it, the function address was NULL anyway. + + Changed NULL pointer to HB_TYPE for the "TYPE" symbol. + initsymb.c is complete now. + * source/rtl/terror.prg + source/compiler/genobj32.c + * Small corrections. + +19990912-01:29 EDT Paul Tucker + * source/rtl/dir.c + ! Changed selection criteria to include files that do not have + any attribute set. This particularly affected the results + returned by tests/working/adirtest.prg + * source/rtl/adir.prg + ! Changed default attributes passed to Directory to include "A" + +19990912-00:45 EDT David G. Holm + * source/rtl/dir.c + ! Changed file size array element to numeric to match CA-Clipper. + * tests/working/dirtest.prg + + Added 'SET CENTURY ON'. + - Removed padding from size array element. + - Added a TRANSFORM call to size array element. + - Removed padding from date and time array elements. + +19990911-20:25 EDT David G. Holm + * source/rtl/tone.c + ! Added '|| defined(__CYGWIN__)' to the #if block for HARBOUR_GCC_OS2 + and _Windows for calculating the value for temp for each pass of the + tone duration timing loop. + +19990911-07:42 EDT Paul Tucker + * makefile.vc + added new files for compiler to exe generation section + +19990911-13:03 GMT+1 Victor Szel + * source/compiler/harbour.y + source/compiler/genc.c + source/compiler/genhrb.c + source/compiler/genjava.c + source/compiler/genpas.c + source/compiler/genrc.c + source/compiler/Makefile + include/compiler.h + makefile.b32 + makefile.b40 + makefile.vc + harbour.b31 + + Separated the generation code from the main HARBOUR.Y file. + (The Borland and MSVC make files have been modified, but I could not test + them) + * source/rtl/arrays.c + + One comment added about hb_itemGetDS( NULL, szDate ); + +19990911-12:45 GMT+2 Ryszard Glab + + *source/compiler/harbour.y + * changed binary search to linear search for abbreviations + or redefinitions of reserved functions + + *source/rtl/math.c + * added generation of runtime errors in case of math errors + (log(0), sgrt(-2), etc) - for Watcom C only at this moment. + 'matherr' function is used to suppress printing of internal + compiler message for math errors. I think we need rethink + the handling of such errors. + + *source/rdd/dbcmd.c + *include/rddapi.h + *source/vm/hvm.c + * functions called from virtual machine return SUCCESS or FAILURE + +19990911-11:30 GMT+1 Victor Szel + * contrib/odbc/odbc.c + include/classes.ch + include/compiler.h + include/ctoharb.h + include/errorapi.h + include/extend.h + include/init.h + include/itemapi.h + include/pcode.h + source/compiler/genobj32.c + source/compiler/harbour.l + source/compiler/harbour.y + source/compiler/symbols.asm + source/debug/debugger.prg + source/rtl/arrays.c + source/rtl/classes.c + source/rtl/console.c + source/rtl/copyfile.c + source/rtl/dates.c + source/rtl/descend.c + source/rtl/errorapi.c + source/rtl/errorsys.prg + source/rtl/extend.c + source/rtl/filesys.c + source/rtl/fm.c + source/rtl/inkey.c + source/rtl/itemapi.c + source/rtl/math.c + source/rtl/msgxxx.c + source/rtl/objfunc.prg + source/rtl/setkey.prg + source/rtl/strings.c + source/rtl/tbcolumn.prg + source/rtl/tbrowse.prg + source/rtl/tclass.prg + source/rtl/terror.prg + source/rtl/tget.prg + source/rtl/tgetlist.prg + source/vm/dynsym.c + source/vm/hvm.c + * Partial copyright headers formatted, joined where possible, etc. + * Copyright header changed to the standard doc/hdr_tpl.txt for + Antonio Linares. + +19990911-01:42 EDT Paul Tucker + * source/compiler/harbour.y + sz_Compare4() Change the length of the first compare to + Min( 4, len(string)) to account for strings shorter than 4. + Add 1 to the length in the second compare to include the trailing + null so that (ie:) SetPos and SetPosBS can be detected as unique. + +19990910-18:45 EDT David G. Holm + * tests/working/rtl_test.prg + ! Changed smart stringify token marker in TEST_LINE to regular + stringify token marker. + * Changed all alias tests to use TEST_LINE instead of TEST_CALL. + +19990910-17:00 EDT David G. Holm + * source/rtl/inkey.c + ! In HARBOUR HB_INKEY( void ), the double seconds variable has to + be initialized to 0.0, because not all compilers initialize all + local variables to 0 and seconds is not assigned if INKEY() was + called with no parameters. + +19990910-22:10 GMT+1 Victor Szel + * source/vm/hvm.c + ! Fixed the operator overloading feature. (Reported by David) + * source/compiler/harbour.y + + Added /es switch, like in Clipper. /es0 and /es is the default, no + errorlevel is raised on warning, /es1 will set errorlevel, /es2 will + set errorlevel and not generate output. + + The program header is always (even with /q) printed now, right at startup. + * "id" -> "prefix" + + /m /r /t /u @ command line switches added as todo, checks and + messages added to the source, commented out lines added to help screen. + * tests/working/Makefile + tests/working/statinit.prg + + //NOTEST removed, the missing dummy HELLO() function added, so now it + links. + * source/rtl/memvars.c + * Fixed the MEMVARBLOCK() implementation in the doc examples 8) + +19990910-15:25 EDT David G. Holm + * source/rtl/gt/gtos2.c + ! I forgot to remove a debug printf() call when I committed the + hb_gt_Scroll() fixes in ChangeLog entry 19990908-21:35 EDT. + +19990910-14:55 EDT David G. Holm + * source/rdd/dbcmd.c + * source/rdd/dbf1.c + * source/rtl/copyfile.c + * source/rtl/filesys.c + * source/rtl/set.c + * Changed F_ERROR back to FS_ERROR. + +19990910-14:40 EDT David G. Holm + * source/compiler/harbour.y + ! Changed DWORD return type for PackDateTime() to ULONG. + +19990910-14:20 EDT David G. Holm + * source/rtl/console.c + ! Uncommented two calls to hb_fsSetDevMode() in hb_consoleInitialize() + which force the stdout and stderr handles to binary mode for Clipper + compatibility. There was no explanation in the ChangeLog as to why + the two calls had been commented out. + +19990910-14:15 EDT David G. Holm + * tests/working/Makefile + ! Moved statinit.prg to BAD_PRG_SOURCES, because it won't link. + * tests/working/statinit.prg + ! Added '//NOTEST' as the first line, because it won't link. + +19990910-17:40 GMT+1 Victor Szel + * tests/working/rtl_test.prg + + Added a more complete ALIAS regression test suite. + * source/compiler/harbour.y + ! Compiles even if the YYDEBUG constant is *not* defined, the compiler + also hides the /y switch from the help screen. + + Added command line switch /x. The init symbol function name can be + set to an explicit value (using /xMyCoolLib) or to an automatically + generated one (using /x). By default no mangling takes place. + * include/itemapi.h + source/rtl/itemapi.c + + hb_itemPCount(), hb_itemParamPtr(), hb_itemReturnPtr() Item API calls + added, to provide full functionality by the Item API. The longer term + goal would be to make the Item API as the preferred, most complete and + flexible API, and leave the Extend API as a secondary, bit slower, but + simpler and more compatible option. Also the Item API should make it + unnecessary to directly access internals, so it should provide a full but + controlled access to all those. Only the VM itself should have access to + internals IMO. + * include/compiler.h + * Some formatting. + +19990910-16:00 GMT+2 Ryszard Glab + + *source/vm/hvm.c + * string alias is now correctly handled + + *include/rddapi.h + + added declaration for hb_rddSelectAorkAreaAlias + +19990910-11:10 GMT+1 Victor Szel + * tests/working/rtl_test.prg + + Enabled some alias tests which fail. (Ryszard, could you take a look + at them ?) + * source/vm/hvm.c + ! hb_vmSwapAlias() - Fixed mistyped variable name, pItem was accessed + instead of pWorkarea. (Is this OK, Ryszard ?) + * source/rtl/itemapi.c + ! hb_itemStrCmp() - Fixed a bug, when the character were compared as a + signed value instead of unsigned. ( BYTE ) casts added where needed. + This caused four regr.tests to fail. + * source/rtl/gtapi.c + ! hb_gtSetColorStr() is now using toupper instead of a platform + dependent bit operation. + * tests/working/rtl_test.prg + + Code added to test the :Args feature of error handling, this is commented + out, since Harbour doesn't support it yet. + * include/error.api + ! Zero bytes (!) removed from some places, so now the compatibility header + files are working fine. + * source/compiler/harbour.y + source/rtl/dir.c + source/memvars.c + * Some formatting corrections. + * include/ctoharb.h + * Opcode functions grouped by type. Later on the same thing should be + done in HVM.C. If similar code fragments are close to each other, bugs are easier to spot. + * include/pcode.h + * Comments aligned. + +19990910-11:05 GMT+2 Ryszard Glab + + *source/compiler/harbour.y + * corrected support for pcode buffer larger than 64kB + (many WORD converted to ULONG) + However jumps are still limited to signed 16 bits - the compiler + generates error when this limit is exceeded + + *include/compiler.h + * changed WORD to ULONG + + *include/hberrors.h + * new error ERR_JUMP_TOO_LONG + +19990909-21:40 EDT Paul Tucker + * makefile.vc + + source/rtl/memvarbl.prg + + /q to Harbour flags + + /nologo to C flags + +19990909-20:55 EDT David G. Holm + * include/filesys.api + ! Added FS_ERROR (defined using '#define FS_ERROR F_ERROR' + following the already present '#include "fileio.ch"'). + +19990909-20:00 EDT David G. Holm + * include/fileio.ch + * source/rdd/dbcmd.c + * source/rdd/dbf1.c + * source/rtl/copyfile.c + * source/rtl/filesys.c + * source/rtl/set.c + ! Changed all FS_ERROR to F_ERROR for Clipper compatibility. + Thanks to Matteo Baccan for reporting this. + +19990910-01:10 GMT+1 Victor Szel + * source/rtl/arrays.c + % One memset() call replaced with a call to the Item API. It's a bit + slower, but this is only an error handling branch, which is not getting + called in normal cases anyway. + * source/rtl/itemapi.c + % hb_itemGetDS(), hb_itemPutDS() now uses the new date API call. Simpler. + and the low level date handling memset(sz,' ',8) calls could be removed. + * source/rtl/extend.c + % hb_pards() uses the new date API call, so it's even simpler now. + * source/rtl/dates.c + include/dates.h + + New simpler date API functions added: + hb_dateDecStr() == hb_dateStrGet() + hb_dateEncode() + hb_dateEncStr() == hb_dateDecode() + hb_dateStrPut() + * source/rtl/errorapi.c + + Added support for the :Tries variable, now Harbour will increment it on + every retry. + * A bunch of internal item access changed to Item API calls. This also + fixed a possible problem with accessing Integer member without making + sure that the type is an INTEGER. + + "Internal error" text changed to "Unrecoverable error". + * source/rtl/strings.c + ! ASC(), CHR() error value substitution added. + ! CHR() added a HARBOUR_STRICT_CLIPPER_COMPATIBILITY branch, where Harbour + will handle the value 256/512/... like Clipper. + * tests/working/rtl_test.prg + + ASC(), CHR() tests added. + + Detected preprocessor errors are always displayed. + * include/external.ch + source/rtl/tget.prg + source/runner/stdalone/external.prg + * __GET synonym for _GET_ added. Clipper really uses this function name + _GET_ is always converted to __GET internally by the compiler. + * source/tools/Makefile + source/vm/Makefile + source/tools/debug.c + source/vm/debug.c + makefile.b31 + makefile.vc + * DEBUG.C moved to the Harbour VM, since it's used from the debugger. + Please check the non GNU makefile, since I could not test them. + * source/rtl/terror.prg + + Reformatted. + +19990909-21:30 GMT+1 Victor Szel + * source/rtl/arrays.c + ! hb_arrayCopy() fixed. Now it has two methods, one strictly compatible, + and one which fixes buggy behaviour on extreme parameters. Clipper will + copy one item, even it an out-of-range start, or target position is + passed, I've considered that buggy. You can choose with the + HARBOUR_STRICT_CLIPPER_COMPATIBILITY switch anyway. + * tests/working/rtl_test.prg + + ACOPY() tests added. + * source/rtl/tgetlist.prg + + Using getexit.ch include file, instead of repeating its content. + * source/debug/tbrwtext.prg + + CVS header added. + * include/extend.h + ! Some Clipper compatibility include files moved to the bottom, it's + better now, but it still doesn't work when + HARBOUR_STRICT_CLIPPER_COMPATIBILITY is defined. + * source/rtl/tget.prg + source/debug/debugger.prg + + Using common.ch include file, instead of repeating its content. + DEFAULT := form changed to the standard DEFAULT TO form, which is a + bit more efficient anyway, since it only assigns when needed. + * source/tools/fileread.prg + source/tools/dates2.c + source/tools/hb_f.c + source/vm/dynsym.c + source/hbpp/table.c + source/hbpp/hbppint.c + source/hbpp/hbpp.c + source/compiler/fixflex.c + source/rtl/*.c + * Standardization in header format. Note that we should also standardize + the *text* of the copyright message. + * source/vm/hvm.c + * Small formatting correction. + * source/rtl/xsavescr.prg + + Reformatted. + +19990909-18:22 GMT+1 Victor Szel + * source/rtl/arrays.c + ! ARRAY() fixed to parse the dimension list in the right order. + * source/rtl/extend.c + ! hb_stornd() fixed byref method, it stored INTEGER instead of DOUBLE. + * tests/working/rtl_test.prg + + Some new ARRAY() tests added. + * tests/working/extend2.c + ; Compiled/linked successfully with Cygwin. There's still incompatibility + since Harbour needs all the C functions to be prefixed with "HB_". + * Changed HARBOUR function types to CLIPPER. + * include/clipdefs.h + + Added #include "caundoc.api". + * include/hbdefs.h + + Added a __HARBOUR__ define, to make it possible to detect Harbour + from C code. + * include/caundoc.api + + Added _reta() and _pcount(). + * tests/broken/vec2.prg + tests/working/statinit.prg + tests/working/Makefile + ! Moved to the working dir. + +19990909-16:35 GMT+1 Victor Szel + * source/rtl/memvarbl.prg + ! MEMVARBLOCK() now returns NIL if the passed parameter was not a string, + or the MEMVAR name is not declared. + * source/rtl/arrays.c + include/extend.h + ! hb_arraySize() - Fixed a memory related bug. Now when an array is + resized to zero length, it will free (and not reallocate) the memory + allocated for the item pointer table. ASIZE({ "A", "B" }, 0) could + show the problem. + + ARRAY() now supprt multiple dimensions. Code based on hb_vmArrayNew(). + ! Array functions error handling behaviour made completely CA-Clipper + compatible. + ! ARRAY() could GPF on an error condition. + ! AADD() checks if the second parameter is not NULL. + ! AFILL() could GPF when second param was omitted. + ! AADD() now throws a substitutable error. + ! AFILL(), ASCAN(), AEVAL(), ACOPY() - Made completely compatible the + ulStart/ulCount/ulTarget parameter handling. Please note that + ASCAN()/AEVAL()/ACOPY() has not yet been regression tested. + * hb_arrayFill(), hb_arrayScan(), hb_arrayEval(), hb_arrayCopy() changed + to parameter to implement the previous change. + * source/rtl/environ.c + ! __RUN() now checks for the parameter type, not the number. + + __RUN() funtionality enabled for __CYGWIN__ + + __RUN() will now throw an "operation not supported" runtime error on + platforms where it's not supported, this is IMO better than silently + doing nothing. The error has a Default case, so the use can continue + running the program. + ! __RUN() Standardized the doc header. + * source/rtl/copyfile.c + + Made completely compatible in order to pass the tests. A small file + name forming difference is still there. + * tests/working/rtl_test.prg + + __COPYFILE() tests added. + + __RUN() tests added. + + Array function error condition tests. + + MEMVARBLOCK() tests added. + + AFILL() tests added. + * source/rtl/memvars.c + + Added Clipper compatibility functions: + __MCLEAR(), __MRELEASE(), __MXRELEASE(), __MSAVE(), __MRESTORE() + They are simple wrappers to the corresponding Harbour versions. + * funclist.txt + + Added all internal functions (beginning with __) from Clipper/STD.CH. + + Marked MEMVARBLOCK() "Ready". + * source/compiler/harbour.y + * Small indentation fix in the generated code. + +19990909-16:05 GMT+2 Ryszard Glab + + *source/rtl/memvarbl.prg + + corrected to allow setings of NIL value + +19990909-13:00 GMT+2 Ryszard Glab + + *source/runner/stdalone/external.prg + + added __MVGET, __MVPUT, MEMVARBLOCK + + *include/init.h + + added 'static' declaration for functions used to initialize + symbols table + +19990909-12:45 GMT+2 Ryszard Glab + + *source/rtl/memvars.c + * removed unused variables + + *source/rtl/memvarbl.prg + + added new file with MEMVARBLOCK() function + + *source/trl/Makefile + + added memvarbl.prg to PRG_SOURCES + +19990909-12:00 GMT+2 Ryszard Glab + + *source/rtl/memvars.c + + added __mvGET and __mvPUT functions to set/get the value of + private and public variables + + *doc/subcodes.txt + * updated info for 3009 and 3010 subcodes used in __mvGET/__mvPUT + +19990908-21:35 EDT David G. Holm + * include/extend.h + * include/hbdefs.h + * include/hbpp.h + * include/hbsetup.h + * source/vm/hvm.c + ! In order to eliminate a redefinition error for _POSIX_PATH_MAX, + "extend.h" now includes "hbdefs.h", which includes "hbsetup.h", + which includes . + + * source/rtl/gt/gtdos.c + ! Fixed hb_gt_Scroll() by renaming parameter 'attrib' to 'attr', + and assigning all other parameters to variables of the correct + types and names that the code that was cut-and-pasted from the + source/rtl/gtapi.c module expects. + + * source/rtl/gt/gtos2.c + ! Changed the types of the hb_gt_Scroll() parameters to 'char' to + match the source/rtl/gtapi.c usage and changed their names so + that the scrolling logic won't try to use them directly. + + Added local variables to hb_gt_Scroll() with the types and names + expected by the scrolling code and assigned them from their + corresponding parameters. + + Added unsigned char to USHORT conversions for the row and column + scroll values, because negative scroll values were coming through + as positive values greater than 127, because ICC has to default + the char type to unsigned to avoid char type related link failures. + +19990909-01:10 GMT+1 Victor Szel + * source/compiler/harbour.y + + Modified to add the current date and time (in a packed form as a + hexadecimal DWORD value) to the generated symbol init function name, in + order to lessen the possibility of name collisions. + * source/rtl/inkey.c + % hb_inkeyPoll() optimized, so that if no key press could be detected, + the function will immediately return. + ! hb_inkeyPut() fixed to check the parameter and not allow to mistakenly + stuff a zero key code to the buffer. + * tests/working/rtl_test.prg + ! Fixed the expected results of two math functions to the mathematically + correct ones. + + Added some AllTrim() tests which brings CA-Clipper 5.2e to it's knees. + Harbour handles them fine. + * include/hbdefs.h + source/rtl/filesys.c + source/compiler/harbour.y + * MKLONG() and MKINT() moved to hbdefs.h + * LOBYTE(), HIBYTE(), LOWORD() moved outside the + HB_DONT_DEFINE_BASIC_TYPES guard, since they are guarded one-by-one + anyway. (all this in hbdefs.h) + * include/hbdefs.h + include/hbsetup.h + * _POSIX_PATH_MAX moved to hbsetup.h, where it belongs. + * include/dates.h + + Added some missing global functions. + * source/rtl/dates.c + * Small variable name corrections. + * source/rtl/setcolor.c + source/rtl/gtapi.c + ! Fixed indentantion and some small formatting errors. + +19990908-11:56 EDT Paul Tucker + * source/rtl/gtapi.c + * modified SetColor to accept a null pointer, and do nothing + * changed so that "" resets colors to Clipper default. + +19990908-17:00 GMT+2 Ryszard Glab + + *source/compiler/harbour.y + * corrected handling of parenthesized expressions + * corrected generation of pcodes for declaration of dimensioned + array variables ( LOCAL var[ 2, 4 ] ) - there is no longer POP + opcode between array dimensions + + *source/vm/hvm.c + + added code that creates multi-dimensioned arrays + (arrays declared by LOCAL arr[ 3, 5, getDim() ] - it + supports PRIVATE and PUBLIC declaration too) + + *source/rtl/arrays.c + + added functions hb_arrayGetItemPointer() which returns a pointer + to an item occcupied by a specified array element + + *include/extend.h + + added declaration of hb_arrayGetItemPointer() function + + *tests/broken/parexpr.prg + ! moved to tests/working directory + + added some code to test IF and IIF expressions (it is really + related to parenthesized expressions) + + *tests/working/Makefile + + added parexpr.prg + +19990908-10:30 EDT David G. Holm + * source/rtl/environ.c + ! I restored the Windows #ifdef #include block from the 1.43 version, + but kept the #define WIN32_LEAN_AND_MEAN from the 1.45 version. + * source/rtl/set.c + ! For _SET_COLOR case, only pass an argument to hb_setColor() if + the 2nd SET argument is a string. Otherwise pass (char *) NULL. + * source/vm/hvm.c + * Moved hb_inkeyPoll() to the HB_P_DO case to enhance performance. + +19990908-12:36 GMT+1 Antonio Linares + * source/tools/debug.c + + Added new function HB___GETLOCAL() to retrieve local variable containts. + (see debug.c for GetLocal() use documentation). + * source/debug/debugger.prg + * First propotipe retrieving local variables values + (still it is missing removing locals once a procedure is over. + Editing is not implemented yet). + +19990908-05:05 EDT Paul Tucker + * source/rtl/inkey.c + - remove extra #define INCL_DOSPROCESS + + add #define INCL_NOPMAPI + * source/rtl/gtapi.c + simplified hb_gtScroll() to a function call. + The code from this function was moved to gt/gtdos.c hb_gt_scroll() + I currently can't compile a dos version so need a tester! + * source/rtl/gt/gtos2.c + - remove #define INCL_KBD since no keyboard functions are used + + add #define INCL_NOPMAPI since PMAPI is not needed. + * source/rtl/gt/gtdos.c + * active hb_gt_scroll source. + needs test. + * most of this reported by Chen Kedem + +19990908-03:05 EDT Paul Tucker + * source/rtl/gt/gtos2.c + + hb_gt_scroll by Chen Kedem + +19990908-08:24 GMT+1 Antonio Linares + * makefile.b32 + * strfmt.c and strfmt.obj were missing. + +19990908-08:09 GMT+1 Antonio Linares + * rdd.b32 + * Fixed missing '\' on the C output file path. + +19990908-01:33 EDT Paul Tucker + * source/rtl/environ.c + corrected to work with msvc. + The format passed to sprintf is now a variable. Under Windows, + the hb_osletter is actually the build number, and the default + format was not printing it correctly. + +19990908-00:05 EDT David G. Holm + * source/rtl/environ.c + ! Version 1.43 added Windows code to detect the Windows version, but + it also replaced the DOS code to detect Windows with Windows code + to detect Windows. But Borland C 3.1 refuses to compile Windows code + when creating DOS programs and I suspect that other DOS compilers do + the same. So I restored version 1.42 and then put the Windows code + from version 1.43 back in the only place where it belongs. + - I removed the "95/98" designation from the Windows detection in DOS + mode, because that code should also be able to detect Windows 3.x. + * source/rtl/tget.prg + ! Added missing ::Display() at end of ::Delete() + +19990908-04:52 GMT+1 Victor Szel + * tests/working/rtl_test.prg + + Some tests now are only included when compiled with Harbour, to skip + obvious bugs in Clipper. + * source/hbpp/table.c + + _SET_COUNT added. + * include/clipdefs.h + include/error.api + include/item.api + include/extend.api + ! Some fixes. + +19990908-03:14 GMT+1 Victor Szel + * tests/working/rtl_test.prg + + Some ==/= tests added for strings. + * source/rtl/arrays.c + ! hb_arrayScan(). Fixed a string comparison bug. + * source/rtl/transform.c + + TOFIX added about a directly modified item string buffer. + +19990908-02:30 GMT+1 Victor Szel + * source/rtl/math.c + source/rtl/strings.c + source/rtl/extend.c + source/rdd/dbf1.c + * WORDs changed to int to reflect the recent Item API changes. + * include/itemapi.h + source/rtl/itemapi.c + ! hb_itemParam(), hb_itemType() parameter type and retval changed to USHORT + from WORD, to be Clipper compatible. + * hb_itemGetNLen(), hb_itemPutN?Len() WORD types changed to int. + * include/extend.h + source/rtl/arrays.c + * hb_arrayGetType() retval type changed to USHORT instead of WORD. + * include/extend.h + source/rtl/extend.c + * hb_retn?len() functions now uses int instead of WORD. + * hb_parinfo() and hb_pcount() now returns int instead of WORD, to be + more Clipper like. + * hb_param() WORD param type changed to int. + * tests/working/rtl_test.prg + + The execution time is now showed at the end of the tests. + + One missing copyright added. + * source/rtl/filesys.c + ! Formatting fixes. + +19990907-20:17 EDT Paul Tucker + * source/rtl/console.c + + added HB_SETMODE() (reported by Matteo Bacaan + +19990908-00:33 GMT+1 Victor Szel + * source/rtl/filesys.c + % FREAD() now uses the fixed ISCHAR() macro for parameter checking, + and ISBYREF(). + * source/rtl/extend.c + ! hb_param() now checks the type mask against the dereferenced item, + until now hb_param() was not working with values passed by reference. + After this fix the IS????() macros are Clipper compatible. + * source/rtl/tbcolumn.prg + ! TBColumnNew() fixed not to throw an error when a block is not passed. + + TBColumnNew() TOFIX added about possibly different behaviour than Clipper. + * source/rtl/math.c + ! hb_numRound() fixed for negative values. + % hb_numRound() is not using sprintf(), atof(), hb_x*() calls, so it should + be faster and requires less memory. All tests are still running fine. + I don't know why was it needed ? (David ?) + ! INT() fixed for values beyond -/+LONG_MAX. + ! ROUND() fixed to set the decimal width to MAX(iDec, 0) instead of iDec. + * tests/working/rtl_test.prg + + Some ROUND() tests added (mainly for negative numbers). + + Some byref tests added for several functions. + + SQRT() and some other math function tests added. + * source/rtl/strings.c + ! hb_itemStr() fixed to always use the "%*.*f" format to convert + a DOUBLE value. + ! hb_itemStr() fixed a possible error when the item.asDouble member + could accessed but the type was not DOUBLE. + + STR(), STRZERO() value substitution possible on error. + + STRZERO() added a HARBOUR_STRICT_CLIPPER_COMPATIBILIY to throw the + same error code as in Clipper, actually Clippers STRZERO will call STR + and the error will be handled by STR(), too. + * source/rtl/inkey.c + funclist.txt + tests/working/rtl_test.prg + + FKLABEL(), FKMAX() added. These are *really* dumb functions, but anyway. + Tests added. + * include/extend.h + + One cast added the IT_NUMERIC #define. + * source/rtl/environ.c + + OS(): Added Windows version detection code by + Luiz Rafael Culik + +19990907-17:00 GMT+1 Victor Szel + * source/vm/hvm.c + ! hb_vmEqual() is now Clipper compatible for ARRAY and BLOCK types. + ! hb_vmMinus() is now generating the result as LONG (instead of DOUBLE) + when the two operands are DATEs. + ! hb_vmDivide() fixed the decimal handling for integer operands with an + integer result. + ! hb_vmNegate() now handles the number width in a Clipper compatible way. + ! hb_vmEqual(), hb_vmNotEqual(), hb_vmLess*(), hb_vmGreater*(), hb_vmDo(), + hb_arrayAt() error handling now support value substitution. + hb_vmDo() and hb_vmArrayAt() should be tested, since I'm not exactly sure + if they are correctly pushing the result. + * source/rtl/strings.c + ! VAL() fixed to return INTEGER/LONG if applicable, not always a DOUBLE. + Similar logic can be found in hb_vmPushNumber(). + + REPLICATE() STROVERFLOW error now supports value substitution. + * hb_itemPadConv() now uses less internal, type checks reordered with the + most probable moved to the top. Some Extend API calls changed to Item API + ones, to make it faster. + ! hb_itemPadConv() was casting back DOUBLE value without decimals to LONG + to convert it to string. Corrected. There may be other places where + DOUBLE is converted to LONG, these should be revised, since a DOUBLE is + also used when there are *no* decimal places, but the value is too big + to fit in a LONG (like: 5000000000), for example INT() is buggy because + of that right now. + * tests/working/rtl_test.prg + + Some new decimal handling and ABS() tests added. + + Some divide and date subtracion tests added to decimal handling section. + + Some negate tests added to the decimal handling section. + + INT() tests added. + * LOCAL test values converted to STATIC, PRIVATE test values converted + to PUBLIC. + * Split the tests into smaller functions, since the 64K function limit + has been reached. + ! Expected results changed where we consider Clipper to be buggy, mainly + for cases when the parameters is passed by reference. + + SQRT() tests added. + * source/rdd/dbf1.c + ! Fixed the passed parameters to hb_itemPutNDLen() + * tests/working/testdbf.prg + + Numeric value put/get tests added. + * source/rtl/itemapi.c + ! hb_itemType() now checks for NULL parameters, like in Clipper. + ! hb_itemPutNDLen() was handling the wDec parameter in a wrong way by + mistake. I assumed that the wDec value means the decimal places within + the full length, but that was wrong. + ! hb_itemStrCmp() two LONGs changed to ULONG. + * source/rtl/math.c + % MOD() one Extend API call changed to Item API to make it faster. + + MIN()/MAX() now uses Item API instead of accessing internals. + + ABS() uses Item API instead of internals. + ! ABS() now keeps the width of the positive integers. + ! hb_numRound() now uses a much larger buffer (like in hb_itemStr()), this + seem to have fixed the random GPFs in Cygwin when running RTL_TEST. + Same type of dangerous code can be found in RDD/DBF1.C, too. (Bruno!) + + ABS(), INT(), ROUND(), EXP(), LOG(), SQRT(), MIN(), MAX() value + substitution added. + * source/rtl/descend.c + * Now using Item API only, internals totally eliminated. Simpler code, + some variables eliminated, some small optimalizations. + * source/rtl/do.c + * Value substitution added to EVAL(), DO() + * source/rtl/classes.c + * Value substitution added to :EVAL + * tests/working/descend.prg + tests/working/Makefile + - Removed since an automated version is already included in RTL_TEST. + * source/rtl/classes.c + source/rtl/arrays.c + + Copyright info added. + * source/rtl/set.c + ! Some minor formatting corrections. + +19990907-02:30 GMT+1 Victor Szel + * include/external.ch + source/runner/stdalone/external.prg + + Updated to reflect the recent changes. + * source/rtl/itemapi.c + ! hb_itemGetCPtr() will now return an empty string ("") on error and not + a NULL pointer. + ! Leak fixed in hb_evalLaunch() when the function to evaluate was passed + as a string. (hb_itemGetC() changed to hb_itemGetCPtr()) + * source/rtl/arrays.c + source/rtl/extend.c + source/rdd/dbcmd.c + include/extend.h + * Some array functions renamed to be consistent with the similar Item API + function names. + hb_arrayGetString -> hb_arrayGetCPtr + hb_arrayGetStringLen -> hb_arrayGetCLen + hb_arrayGetBool -> hb_arrayGetL + hb_arrayGetDouble -> hb_arrayGetND + hb_arrayGetDate -> hb_arrayGetDS + * hb_arrayGetCPtr() now calls hb_itemGetCPtr() instead of using redundant + code. + + hb_arrayGetC() added keep it in sync with the Item API. + + hb_arrayCopyC() added keep it in sync with the Item API. + % Further simplified the hb_arrayGet*()/hb_arraySet()/+some more functions. + * source/rdd/dbcmd.c + funclist.txt + + DBF() function added. (not tested yet) + * source/rdd/dbf1.c + source/rdd/delim1.c + source/rdd/sdf1.c + source/rdd/dbf0.prg + source/rdd/delim0.prg + source/rdd/sdf0.prg + * The forcelink function names changed. The C functions got a "C" appended + at the end, the Harbour ones got an underscore at the beginning, this + way it's more Clipper like, but it was also inevitable, since previously + the forcelink function HB_DBF() was colliding with the standard Clipper + function named DBF() (HB_DBF() from C). + * source/rdd/dbcmd.c + source/rdd/rddsys.prg + source/vm/hvm.c + include/rddapi.h + * Instead of calling rddShutDown() from a Harbour EXIT function, now + the same functions C version is called by the Virtual Machine on exit. + This way it's more Clipper compatible, since in CA-Cl*pper the RDDSYS + doesn't need to clean-up on exit. RDDSYS.PRG is now exchangeable with + the Clipper one. + ! hb_rddShutDown() fixed a possible GPF if there was no rddSetDefault() + calls at all (when RDDSYS was overridden by a dummy one). + * source/rtl/setkey.prg + * Not CA-Clipper compatible functions (extensions) renamed to avoid + possible collision with existing code: + SETKEYGET() -> HB_SETKEYGET() + SETKEYSAVE() -> HB_SETKEYSAVE() + SETKEYCHECK() -> HB_SETKEYCHECK() + The function names are valid even if compiled with /10 switch. + +19990907-01:00 GMT+1 Victor Szel + * source/rtl/arrays.c + ! hb_arrayScan() fixed, so that it can also search for a NIL value. Like + Clipper. + % Optimized the search loop for speed. + ! Fixed searching of numeric values. Different numeric sub-types with the + same value are also considered equal (of course), so 10 == 10.0 now. + * Uses Item API calls where possible. + * source/rtl/classes.c + ! hb___msgEval() added, so now send an :eval message to a block + will work fine, sending it to other types will result in a proper error + message. + ! hb___msgClsH() will return 0, if the checked type is not an ARRAY/OBJECT. + Until now a GPF occured on this code: a := "A" ; a:classH + * Functions reordered. + * source/rtl/do.c + source/vm/hvm.c + * EVAL() moved to do.c. + ! EVAL() internal message changed to the Clipper compatible one. + * DO() parameter count error message changed to EG_ARGCOUNT/3000. + * source/compiler/harbour.y + + SETPOSBS() added to the reserved function list. + * tests/working/rtl_test.prg + + Some PAD?() tests added with new types, byref. Some new MIN()/MAX() tests + added. ASCAN() tests added. + + /SKIP: switch added, to make it possible to temporarly skip specific + tests. (RTL_TEST /SKIP:100,102) + + EVAL(), :EVAL() tests added. Some are commented out, due to bugs. + * source/rtl/itemapi.c + include/itemapi.h + - Removed hb_itemSetNLen() since it was superseded by hb_itemPutN?Len() + functions, these are more compact, faster, and have default value of the + parameters. + +19990906-11:25 GMT+1 Antonio Linares + * source/rtl/tbrowse.prg + * Fixes on Stabilize() method + * source/rtl/tbcolumn.prg + * Small fix on New() method + * source/debug/debugger.prg + * First outline for monitoring variables + (it is left open for testing purposing) + +19990906-01:27 EDT Paul Tucker + * source/rtl/set.c + * added a cast in open_handle to fsRead() + +19990905-17:55 EDT David G. Holm + * source/rtl/console.c + + Added code to preserve the current user file error code when + using Harbour hb_fs... functions. + * source/rtl/set.c + + Added code to preserve the current user file error code when + using Harbour hb_fs... functions. + + Added code to remove the old EOF character ('\x1A') when + appending to text-mode files on non-Unix platforms. + * tests/working/output.prg + * Changed the names of the output files to OUTPUT_A (.txt), + OUTPUT_E.EXT, and OUTPUT_P (.prn) so that the files may be + examined and deleted without having to worry about the .PRG + file (the extensions in parentheses are the default ones). + +19990905-17:48 GMT+1 Victor Szel + * source/rtl/dbf1.c + % Uses hb_itemPutN?Len() instead of hb_itemSetNLen(), so it's a bit + faster now. + * source/rtl/errorapi.c + % Now uses hb_itemDo() instead of the Eval API. Eight function calls + substituted with a single one. + * source/rtl/extend.c + + hb_retn?len() functions now make simple calls to hb_itemPutN?Len() + functions. + * source/rtl/itemapi.c + include/itemapi.h + + EVALINFO structure now has a Clipper compatible paramCount member. + ! hb_eval*() speed up a bit by using paramCount, and by assigning error + return value only on error. + ! hb_evalPutParam() now check if pItem is a NULL. + ! hb_evalRelease() now sets back the EVALINFO structure to an initial + state, just like Clipper. + + hb_itemDo() and hb_itemDoC() function added, they do the same as hb_eval() + but in a lot more convenient way. + + hb_itemPutNDLen(), hb_itemPutNILen(), hb_itemPutNLLen() functions added + to make to number lenght setting easier. + * source/rtl/do.c + ! DO() without any parameter caused a GPF. Fixed. + * tests/working/rtl_test.prg + + Alias tests enabled. Now an internal occurs in one of them, this will + need fixing. Some alias Pop/Push/Swap functions are not checking NULL + pointers and are not yet compatible with Clipper in strange situations. + + Fixed some result in == test with objects and arrays. Added some more + == tests. + * source/vm/hvm.c + ! Small correction in one debug message. + * source/vm/initsymb.c + + SETPOSBS added to the list. Since it's a native opcode in Clipper, it + always linked in by nature. + +19990905-02:47 EDT Paul Tucker + * source/rtl/filesys.c + * casts on access() and in HB_FILE + +19990904-23:35 EDT David G. Holm + * include/hbver.h + * Bumped revision from "a" to "b". + * Changed date to 1999.09.04 + * source/rtl/filesys.c + ! Borland needs "direct.h". + +19990904-20:35 EDT David G. Holm + * include/filesys.h + + Added hb_fsFile(). + * source/rtl/filesys.c + + The guts of HB_FILE() are now in hb_fsFile(), so that + C RTL functions can check for the existence of a file. + ! Added temporary bug fix for Cygwin I/O flags (starting + with O_CREATE, they are one bit position too high). + + I left in the debug statements that I used to track down + the Cygwin I/O flag bug, but I commented them out. */ + * source/rtl/set.c + ! Corrected the file open/create handling in open_handle(). + +19990904-18:35 EDT David G. Holm + * source/rtl/tone.c + ! Added missing '&& ! defined(_Windows)' checks to the + __BORLANDC__ checks that didn't already have them and + weren't already preceded by a 'defined(_Windows)' check. + +19990904-15:20 GMT+1 Victor Szel + * source/rtl/arrays.c + ! hb_arrayScan() fixed. (Thanks Antonio) + +19990903-19:35 EDT David G. Holm + * source/rtl/console.c + ! Added #ifdef HARBOUR_USE_GTAPI/#endif around use of GT API + functions in the new HB_SETPOSBS() function. + * source/rtl/filesys.c + ! Added #defines for _getdisk and _chdisk for DJGPP. + +19990903-19:00 GMT+1 Victor Szel + * source/itemapi.c + include/itemapi.h + + hb_itemGetCPtr() function added. Use this with care, don't modify the + returned buffer. This is the fastest way to access a string buffer via + the standard API. The retval should really be declared const, but that + would generated a bunch of compiler warnings, so I didn't add it. + ! hb_itemGetDS() made compliant with the Clipper NG, it now terminates + the date with a zero character, so the buffer needs to be 9 characters + long. Although Clipper itself is buggy in this respect and doesn't + append a trailing zero, even the example in the NG is buggy. + NOTE added about this. + * source/vm/hvm.c + * LEN(), EMPTY(), VALTYPE(), hb_stackDispLocal() (almost) now use no + internals, or uses Item API instead of Extend API, since it's faster + in their case. + * source/rtl/arrays.c + source/rtl/extend.c + include/extend.h + + hb_arrayIsObject() function added. + * hb_arrayGetString() now uses hb_itemGetCPtr() + + Copyright info added to arrays.c + ! hb_arrayGetDate() now returns the date with a terminating zero. + * Small cosmetic change in array.c. + * source/rtl/extend.c + % hb_stor*() functions further optimized, usage of ulArrayIndex eliminated. + ! One bug slipped in to one of the hb_stor*() functions at the previous + changes. Fixed. ( if -> else if ) + + NOTE added to hb_parc() + * hb_ret*() functions now uses Item API calls, this way a huge amount + or sensitive redundant code has been eliminated. Since these functions + are always called only once in Harbour callable function, the speed hit + should not be noticable (There's one more NULL check and a function + call). hb_retn?len() functions were not converted. We could make these + functions inline to speed it up. Notice that the size of extend.c has + been reduced from 23K to 17K. + ; hb_par*() functions also have many redundant code, but it would be more + of a speed hit to convert them, since these are generally called several + times in a function, and two additional if()s would be also executed. + * source/compiler/harbour.y + + The parameter count checking now shows the expected *range* in the + error message if applicable (not only the minimum number of params). + * tests/working/rtl_test.prg + + Changed the column layout. Few new tests added (==). + * source/rtl/classes.c + % One variable eliminated (wIndex). + * source/rtl/dir.c + include/init.h + ! Indenting errors fixed. + +19990903-15:30 GMT+1 Victor Szel + * source/rtl/itemapi.c + % hb_itemPutDS() contained one more hb_itemClear() then needed. + + hb_itemGetNI(), hb_itemPutNI() added for completeness. + ! hb_itemArrayGet()/hb_itemArrayPut() checks if the passed array item ptr + is not a NULL. + * source/rtl/extend.c + * hb_parni(), hb_parnl() now uses hb_arrayGetN*() instead of + hb_arrayGetDouble(). + % Array index validation removed from hb_par*() functions, since the + called Array API is doing this. + + hb_stor*() function group now using Item API instead of duplicating + the same code. These function looks much simpler now. + ! hb_stor*() functions were suboptimal in handling the -1 parameter, they + were assigning a new value to it, then checking IS_BYREF()/IS_ARRAY(). + The logic has been optimalized. + + Optional parameter type changed to ULONG from long. + * source/rtl/array.c + include/extend.h + + Missing prototypes added to extend.h + ! hb_arrayAdd() will not throw a runtime error anymore, instead it + returns a BOOL to signal error. Error launching moved to AADD(). + ! hb_arrayClone() will not throw error. ACLONE() is more compatible now. + ! hb_arrayCopy() will not throw error, but return BOOL. + ACOPY() is more compatible now. + ! hb_arrayRelease(), hb_arrayEval() will not throw error. They will return + BOOL. + ! hb_arrayScan() will return ULONG instead of int. It will now throw an + error anymore. + ! hb_arrayGetType() will return WORD instead of int. + ! hb_arrayIns(), hb_arrayDel() will return BOOL, and not throw an error. + ! hb_arrayFill() will not throw an error, but will return BOOL, AFILL() + will check if the second parameter is not NIL. + ! hb_arrayAdd(), hb_arrayLast() checks if the passed item is an array, like + the other hb_array*() functions. + + hb_arrayNew() now returns BOOL. Actually a constant TRUE right now. + + hb_arrayLast() now return BOOL, it will return FALSE if the passed item + was not an array. + ! hb_arraySize() now return BOOL. + ! hb_arrayClone() fixed bug which caused a GPF. (Thanks Paul!) + This was introduced around yesterday. + ! hb_arrayLen() will not throw a runtime error anymore. + ! hb_arrayGet*()/hb_arraySet() will no longer throw runtime errors. + + hb_arrayGet(), hb_arraySet() now return BOOL. + + hb_arrayGetNL(), hb_arrayGetNI() added to be in sync with Item API. + ! hb_arrayGetDate() now properly clears the date field on error. + * source/rtl/dir.c + + NOTE: added about the behaviour on reaching array lenght limit. + * source/rtl/extend.c + + NOTE: added about parameter -1 + * source/rtl/set.c + * bMode name changed to bAppend + * source/rtl/console.c + funclist.txt + + SETPOSBS() undocumented Clipper function added. I don't know why is this + function so important to CA, but it's a pcode level function. + * source/compiler/harbour.y + + Added parameter count check for EVAL() + + Added parameter count check for SETPOSBS() which is and undocumented + Clipper function. Now the parameter count check list is complete. + * source/vm/hvm.c + + Added runtime parameter count check for EVAL(). + * tests/working/ifelse.prg + + Changes by Jose Lalin implemented. + * source/rtl/classes.c + source/rtl/itemapi.c (nszText -> szText) + include/rtl/itemapi.h (nszText -> szText) + ! Small formatting fix. + * source/rtl/codebloc.c + ! A few formatting errors corrected. + +19990903-14:35 GMT+2 Ryszard Glab + + *source/rtl/codebloc.c + * corrected bug if nested codeblocks without local variables + references were created + +19990903-14:00 GMT+2 Ryszard Glab + + *include/hb_vmpub.h + * added a second parameter for HB_DYNS_FUNC + + *source/vm/dynsym.c + *include/extend.h + * added a second parameter for hb_dynsymEval() function + + *source/rtl/memvars.c + * new function __mvDBGINFO() for memvars debugging + (documentation included in memvars.c) + + *include/memvars.ch + * new MV_PRIVATE definition + + *source/rtl/mouseapi.c + * added (char*) type cast to make C++ compilers happy + +19990903-08:00 GMT+1 Victor Szel + * include/hbdefs.h + include/extend.h + ! IT_OBJECT() checked for IT_ARRAY type, correct to IT_OBJECT, which + is equal to IT_ARRAY, so there was no bug, but it's not a good practice + to take shortcuts like this. + * Type checking macros moved to extend.h from hbdefs.h + * source/vm/hvm.c + % Variable optimed out in HB_PCOUNT(). + * source/compiler/harbour.y + source/hbpp/stdalone/hbpp.c + source/rtl/filesys.c + ! hb_fsFNameSplit() now leaves the szName pointer to NULL if there was + no name specified. + ! hb_fsFNameMerge() now handles when szName is NULL. + * Some variable names made consistent in the functions above. + +19990902-21:15 EDT David G. Holm + * source/rtl/filesys.c + ! Added missing semi-colon for line 1842. + * Replaced all calls to getdisk() and setdisk(), which are not very + likely to be POSIX-compliant (they don't exist in the Cygwin or OS/2 + implementations of GCC), with _getdrive() and _chdrive(), which are + not POSIX-compliant either, but at least they exist for OS/2 GCC, + IBM Visual Age C++, Borland C, and Microsoft C. They also exist in + mingw32/direct.h for Cygwin, but that includes dir.h instead of + mingw32/dir.h, so it won't compile with a default Cygwin install, + so I left in the Cygwin exclusion. I also set things up so that only + OS2, DOS, and _Windows compilers will attempt to use these functions, + seeing as how they are unlikely to exist on Unix and Linux. + +19990902-17:30 GMT+1 Victor Szel + * tests/working/rtl_test.prg + + <=, >=, >, < operator tests added. + * source/rtl/hvm.c + % Variable scope optimalization, variables accessed only once eliminated, + formatting errors corrected. + + Error value substitution support added to: + hb_vmNot(), hb_vmNegate(), hb_vmInString(), hb_vmInc(), hb_vmDec(). + ! hb_vmEqual(), hb_vmNotEqual() fixed for those where it returned + a constant FALSE, blocks, arrays, etc. It confused the stack. + ! Fixed all hb_vmOperatorCall() calls since they were not popping the + values from the stack. ( did not test this ) + ! hb_vmGreater*(), hb_vmLess*() functions pushed inverse results for + logical types. + +19990902-12:20 GMT+1 Victor Szel + * tests/working/rtl_test.prg + + STOD() tests added. + * source/rtl/dir.c + * Direct stack access changed to hb_itemReturn(). + * source/rtl/hvm.c + ! hb_vmEqual(), hb_vmNotEqual() didn't handle DATE type. Fixed. + % hb_vmEqual(), hb_vmNotEqual() reordered the order of type to be a bit + more efficient. + % hb_vmEqual(), hb_vmNotEqual(), hb_vmGreater*(), hb_vmLess*() function + variable scopes optimed. They need less stack space now. + * source/rtl/errorapi.c + funclist.txt + + First pass of DOSERROR() implementation. + * source/rtl/dates.c + source/rtl/extend.c + source/rtl/itemapi.c + + hb_dateStrPut() now takes care of filling the target with spaces when + the date is empty, so from now on the caller shouldn't bother with this. + This has also fixed a possible bug in RDD/PutValue with empty date. + * source/rtl/itemapi.c + include/itemapi.h + + hb_itemGetCLen() function added, which simply returns the length of + STRING item, arrays.c uses it right now. + * source/rtl/arrays.c + * Many stack.return accesses converted to use hb_itemReturn(). + * One hb_itemClear()/hb_xfree() call pair converted to hb_itemRelease(). + % Replaced internal hb_arrayLen() calls with direct access to the + array structure. + * hb_arrayGet*() functions will call the proper Item API function instead + of repeating the functionality. + * source/rtl/console.c + * hb_fsSetMode() -> hb_fsSetDevMode() + * include/filesys.h + source/filesys.c + + hb_fsSetError() added, to be able to get/set the last error number + in internal functions which uses the FS API. + * hb_fsSetMode() -> hb_fsSetDevMode() + * source/rtl/descend.c + - One obsolete comment removed. + * source/rtl/console.c + ! Some formatting errors removed. + +19990901-21:24 EDT Paul Tucker + * source/rtl/filesys.c + * hb_fsReadLarge() -> drop out on eof + * hb_fsWriteLarge() -> drop out on disk full + * source/rtl/console.c + source/rtl/set.c + * added casts. + +19990902-01:44 GMT+1 Victor Szel + * source/rtl/filesys.c + include/filesys.h + - For speed reasons the hb_fsRead/Write() functions were set back to use + USHORT, they are again Clipper compatible, and don't have the overhead + of the long buffer support, since for most cases it's not needed. + + hb_fsReadLarge() and hb_fsWriteLarge() API functions added, which support + the very long buffer lengths (ULONG_MAX). FREADSTR() is using the large + read right now. + ! hb_fsWriteLarge() infinite loop on error fixed (?) Paul ? + + TOFIX: added to hb_fsFNameMerge() (related to buffer overrun). + * source/rtl/console.c + source/rtl/set.c + include/set.h + + Changed to use the Filesys API instead of calling the platform dependent + file handling functions. + ! hb_err*() caller now expect E_BREAK, too. + ! hb_setRelease() called close_binary() instead of close_text() for + hb_set_extrahan. Fixed. + - Removed a bunch of (now) unneeded include files and OS branched. + Source looks kind of clean now. + * config/rules.cf + make_tpl.* + + Added the L_USR variable, to make it possible to pass custom parameters + to the linker. Some platform/compiler combinations need to add support + for this manually: DOS/BCC31, DOS/WATCOM, WIN32/BCC32, WIN32/ICC + * source/rtl/itemapi.c + ! Some formatting errors removed. + * tests/working/rtl_test.prg + * Small corrections. + +19990901-20:34 GMT+1 Victor Szel + * source/vm/initsymb.c + + HB_LOCK pointer added. + * tests/working/Makefile + ! Mistakenly got replaced with my private one. Fixed. + +19990901-17:20 GMT+1 Victor Szel + * tests/working/rtl_test.prg + + Added tests for decimals handling. (NUMPAR.PRG) + * source/rtl/strings.c + + VAL() now using hb_retndlen() instead of internalling (wow!). + + hb_itemStr() is now using hb_itemGetNLen() + * source/rtl/math.c + + No functions (except ABS()) are now accessing the internals. They + are using hb_retndlen() and hb_itemGetNLen() instead. + ABS(), MAX(), MIN(), MOD(), ROUND() + ! HB_MOD() accessed item.asDouble even if the item was not a DOUBLE. + - There were places were the decimals places were explicitly set to the + default SET_DECIMAL setting, even though the hb_retnd() call already set + this. I've removed these assigments. (David, is this OK ?) + * source/rtl/itemapi.c + * hb_itemGetNLen() is now optionally returning the parameters, so passing + a NULL is now valid. + ! hb_itemGetNLen() now returns zeros for non-numeric values. + ; hb_itemSetNLen() tested. + * source/rtl/extend.c + include/extend.h + + hb_retndlen(), hb_retnilen(), hb_retnllen() added, which are the same + as the standard hb_retn*() functions, but the width and decimals can be + specified. + * source/rtl/dates.c + + DAY(), MONTH(), YEAR(), DOW() now using the new hb_itemSetNLen() API call + instead of dealing with the internals. + * source/rtl/console.c + + Changed to call hb_fsSetMode(). + * source/rtl/filesys.c + include/filesys.h + include/fileio.ch + + Added hb_fsSetMode() function, and the constants. + * Changes by Jose Lalin implemented. + +19990901-15:00 GMT+1 Jose Lalin + * filesys.c + + Added hb_fsChDrv() + + Added hb_fsCurDrv() + + Added hb_fsIsDrv() + ! BC4.5 docs: setdisk/getdisk are for DOS, WIN16, WIN32 and OS/2 + I don't know if they work under Unix/Linux too. + * hb_fsCurDir() + * hb_fsExtOpen + + some HB_SYMBOL_UNUSED added. + + NOTE [vszel]: + 1.) I've #ifdef-ed out the new stuff for __CYGWIN__ since + setdisk()/getdisk() were neither declared nor present in any + libraries. + 2.) I've added some new header files to FILESYS.C. Please check them + on your system, whether they are correct. + +19990901-14:05 EDT Paul Tucker + * source/rtl/filesys.c + * hb_fsread() -> account for the possibility that num read is less + than requested. (It was staying in the while loop forever without this) + +19990901-17:59 GMT+1 Bruno Cantero + * source/rdd/dbcmd.c + + Added Lock() function + +19990901-17:20 GMT+1 Victor Szel + * source/rtl/set.c + funclist.txt + + SetCancel() function added. + * source/vm/hvm.c + ! hb_vmRequestCancel() now diplays correctly on DOS/DJGPP, since it's + using hb_consoleGetNewLine() to display a newline instead of '\n'. + * source/runner/runlib.c + ! __HRBRUN() now handles if the error launcher returns with an E_BREAK. + * source/rtl/copyfile.c + ! The error launching now also reacts to a BREAK correctly. + * source/compiler/harbour.l + ! At one place BREAK was not converted to uppercase, so the generated pcode + was faulty. RTL_TEST.PRG didn't link because of that. + (Ryszard, is this the correct fix ?) + * source/rtl/errorapi.c + ! szOperation now can be NULL. This caused some error launchings to GPF, + for example BADALIAS calls in HVM.C. + * IS_*() internal macros changed to hb_itemType() calls. + * source/rtl/filesys.c + + Added runtime error 2018 to DISKSPACE(). + * source/vm/hvm.c + ! Fixed a variable name which went out sync between the last two CVS + sessions. + * source/rtl/inkey.c + + Added copyright info. + +19990901-15:40 GMT+1 Victor Szel + * source/compiler/harbour.y + + It will now recognize and accept filenames specified via the + /o switch (not only paths), it also allows to override the extension. + Like CLIPPER.EXE. + * Indentation more or less fixed. + * Zeros changed to NULL and '\0'. + % Inc()/Dec() logic cleaned-up. Note that there are many more places where + such logic cleaning and variable scoping optim. could be done. + I'm also not sure if the debug_msg() calls should only be made when + warnings are turned on, IMHO they should always appear when DEBUG is on. + ! Some formatting errors corrected. + * tests/working/fileio.prg + + New test cycle added beginning with FOpen() (Temporary solution) + ! nFlags is not NIL anymore. + * tests/working/rtl_test.prg + + Some tough alias related tests added. They are commented out + for Harbour, since right now they will GPF for sure. + * source/rtl/langapi.c + source/rtl/natmsg/*.c + ! Fixed eleven error messages to look exactly like in Clipper. + * source/rtl/filesys.c + include/filesys.h + * hb_fsRead(), hb_fsWrite() changed to use ULONG instead of USHORT. + ( ! not tested ! ) + ! FOPEN() added FO_COMPAT to the default open flags. (cosmetic) + * source/rdd/dbf1.c + + GetValue() now sets the width and decimals of the returned numeric + value properly using hb_itemSetNLen(). ( not tested ) + * source/rtl/itemapi.c + include/itemapi.h + + hb_itemGetNLen() added. The pair of the recently added hb_itemSetNLen(). + * source/rtl/console.c + + Some static renamed and prefixed with s_ + * source/compiler/symbols.asm + + CVS header added. + * source/compiler/harbour.c + ! Formatting errors corrected. + +19990901-14:40 GMT+2 Ryszard Glab + + *source/compiler/harbour.l + * corrected handling of BREAK statement + + *source/compiler/harbour.y + * corrected generation of line number opcodes + * corrected the support for local variables when nested + codeblocks are used + * the step value is popped correctly at the end of FOR/NEXT loop + (the nested loops are working correctly now) + + *source/rtl/codebloc.c + * corrected the support for local variables when nested + codeblocks are used + + *source/vm/hvm.c + *include/ctoharb.h + * added hb_vmRequestCancel() function + + *source/rtl/inkey.c + * signals the virtual machine that Alt-C was pressed + + *doc/codebloc.txt + * updated information + +19990831-22:49 EDT Paul Tucker + * include/set.h + source/rtl/set.c + Set(_SET_DEBUG) now returns Logical as in Clipper 5.2 and 5.3 operation. + (Clipper 5.3 docs are incorrect) + +19990831-23:10 GMT+1 Victor Szel + * source/rtl/itemapi.c + include/itemapi.h + + hb_itemSetNLen() added to set the numeric values length and number + of decimal places. This way we have a standard way to set these without + fiddling with the internals. Cool. + +19990831-22:20 GMT+1 Victor Szel + * source/rtl/hvm.c + ! hb_vmFunction() now resets the return value to NIL, since previously + the default return value of the functions was not defined if there was + no hb_ret*() calls in them or if the called function was a PROCEDURE. + * source/rtl/descend.c + include/extend.h + ! It was modifying the string buffer directly, RTL_TEST failed in some + situations. Fixed. hb_strDescend() prototype modified. + * tests/working/Makefile + + ValType() tests added. + ! empty.prg, strsub.prg removed. + + Descend() tests added. + +19990831-20:55 GMT+1 Antonio Linares + * source/rtl/tbrowse.prg + * Methods RefreshAll() and Invalidate() were not recalculating ::RowCount. + +19990831-19:47 GMT+1 Bruno Cantero + * source/rdd/dbf1.c + * Bug fixed + +19990831-19:09 GMT+1 Bruno Cantero + * include/rddapi.h + source/rdd/dbcmd.c + source/rdd/dbf1.c + * Added more RDD functions. + + * tests/working/Makefile + * Added testdbf.prg + +19990831-17:40 GMT+1 Victor Szel + + * source/rtl/arrays.c + include/extend.h + ! Fixed handling of zero array index, it was allowed previously. + (hb_arrayGet*(), hb_arraySet()) + + Added hb_arrayError() which checks the pArray and ulIndex, if it's not + valid, it throws a runtime error. + * source/vm/hvm.c + ! Fixed where operations followed the hb_err*() call. + (hb_vmArrayAt(), hb_vmArrayPut(), hb_vmDo(), ...) + ! hb_vmPopLogical() was decrementing the stack but was only clearing it + when it was logical type. Leak fixed. (Is this correct ?) + * hb_vmAliasPop() -> hb_vmPopAlias() + hb_vmAliasPush() -> hb_vmPushAlias() + hb_vmAliasSwap() -> hb_vmSwapAlias() + Renamed to be consistent with the pcode name and with the others. + * tests/working/rtl_test.prg + tests/working/empty.prg (removed) + tests/working/strsub.prg (removed) + + Added many new tests, comments, enhancement. + + EMPTY.PRG, STRSUB.PRG incorporated. + ! Some TRANSFORM() test results changed (@0) + * source/rtl/devoutp.prg + % One local variable eliminated. + * source/vm/hvm.c + + Added value substitution for errors 1081, 1082, 1083, 1084, 1085, 1088 + * source/rtl/transfrm.c + + Put all stuff related to the @0 picture clause between + #ifndef HARBOUR_STRICT_CLIPPER_COMPATIBILITY guards, since this was + not in original Clipper, that's why the tests failed. + * source/rtl/set.c + ! Fixed "ON"/"OFF" error where OFF was not recognized, this bug was + introduced yesterday. + % Some variables scopes optimalized, some internals changed to standard + interface calls. + * source/rtl/errorapi.c + source/vm/hvm.c + include/extend.h + + Moved ERRORBLOCK() and errorBlock variable to errorapi.c, hb_errInit() + hb_errExit() added. All that is a *bit* slower, since only "official" + API calls are being used. + * source/runner/runlib.c + source/rtl/gtapi.c + source/vm/dynsym.c + source/vm/hvm.c + include/vm.api + include/fm.api + include/hbpp.h + include/gtapi.h + include/extend.h + include/hb_vmpub.h + include/hbdefs.h + * Formatting errors corrected. + + static variables prefixed with "s_" + +19990831-02:37 GMT+1 Bruno Cantero + * include/rddapi.h + source/rdd/dbcmd.c + source/rdd/dbf1.c + tests/working/testdbf.prg + * Full support for memo fields. + +19990830-19:00 GMT+1 Victor Szel + + * source/filesys.c + include/filesys.h + funclist.txt + + Added: DIRCHANGE(), MAKEDIR(), DIRREMOVE(), DISKCHANGE(), DISKNAME() + All of them are Clipper 5.3 compatible functions. Some of them will not + work, since the underlying low level API is not worked out. + ! Fixed CURDIR() to preserve the FERROR() value. + ! Fixed prototype of hb_fsChDrv(). + + DISKSPACE() added (currently only working in DOS). + * source/rtl/arrays.c + + hb_arrayAdd() added BASE/1187 Bound error "AADD" error message. + ! 1068 Not an array errors changed to the 9999 code, until we allocate + a 3xxx error for. This error was not there in Clipper. + * source/vm/hvm.c + + Added standard "no exported method" and "no exported variable" + runtime error instead of the internal error. + ( ErrorNew():hello := 1, ErrorNew():hello ) + + hb_vmPlus() and hb_vmMinus() added "string overflow" runtime errors + (1209, 1210) (could not test this though :) + * Error code 1000 in BADALIAS errors changed to 9999, until someone finds + out the correct error code, since there's no 1000 error code in Clipper. + * source/rtl/set.c + ! Fixed to also accept strings that *begin* with "ON" or "OFF", like + Clipper. + * source/rtl/tone.c + source/rtl/codebloc.c + source/rtl/memvars.c + source/rtl/environ.c + source/rtl/classes.c + source/rtl/console.c + source/rtl/langapi.c + source/rtl/setcolor.c + source/rtl/strings.c + source/rtl/dates.c + source/rtl/set.c + source/rtl/transfrm.c (removed static) + source/rtl/inkey.c + source/rtl/fm.c + source/rtl/dir.c + source/rtl/gtapi.c + * Formatting errors corrected. + + static variables prefixed with "s_" + * Some type changed to BOOL. + +19990830-16:59 +0300 Chen Kedem + * source/rtl/mouse/mouseos2.c + * hb_mouse_Hide() now work in any text screen mode. + * hb_mouse_IsButtonPressed() now return TRUE if any button was + pressed. + TOFIX: every time I read event from the queue I lose the result + so I can not check if iButton was pressed, so for now I ignore + iButton and return TRUE if the last event saved had DOWN in it. + also to keep the noise level down I mask out MOUSE_MOTION + events. + * suMouHandle changed to s_uMouHandle + * Some reformatting. + +19990830-12:49 EDT Paul Tucker + * source/rtl/gtapi.c + * Handle nesting of gtPre/PostExt + * corrected s_uiPreCount handling in gtDispEnd + +19990830-14:25 GMT+1 Victor Szel + + * tests/working/rtl_test.prg + + Added the possibility to test expressions resulting in a runtime error. + + Added ABS(), EXP(), operator tests, some runtime error tests. + * Some bugs fixed, some enhancements. + * include/errorapi.h + source/rtl/errorapi.c + ! hb_errRT_TERM now accept the OS code parameter. + * source/rtl/set.c + ! Open error now shows the correct error codes for SET_PRINTFILE, + and SET_EXTRAFILE. The error message made completely Clipper compatible. + Retry and Default now works. + * source/rtl/arrays.c + ! Fixed two error messages ("AEVAL" -> "(AEVAL() function)") + UNDONE. + * source/rtl/classes.c + - Removed some externs not needed anymore. + * include/set.h + * Cleaned up. + * source/rtl/set.c + source/rtl/dates.c + source/rtl/transfrm.c + source/rtl/strings.c + source/rtl/inkey.c + source/rtl/setcolor.c + source/rtl/console.c + source/rtl/mouseapi.c + source/rtl/filesys.c + * Formatting errors corrected. + +19990830-10:40 GMT+1 Victor Szel + + * source/rtl/errorapi.c + include/errorapi.h + + Error launcher with substitution added. + + Added an emulation to the Clipper "Processor stack fault" error to + indicate the situation where there is an error in the error handler + itself, and thus infinite recursive calls are being executed. The + Harbour error message gives a better idea about the problem than in + Clipper. + * source/vm/hvm.c + ! hb_vmEqual() - Exact error message now depends on the bExact setting. + (1070 vs. 1071) + * source/vm/hvm.c + ! hb_vmNegate() - Throws a proper runtime error, instead of an internal + error. (like Clipper) + ( -("1") ) + * source/compiler/harbour.y + + Added compile time parameter check for LOCK() (BTW, there should be no + parameter passed.) + * source/rtl/copyfile.c + ! Fixed one error code (2012 -> 2016). + ! Two QUESTION: removed. + ; __COPYFILE is now 100% Clipper compatible (tested). + * source/vm/initsymb.c + + Added function pointers to the RDD functions. + + TODO: added for the NULL pointers still there. + (there are only three of them) + * source/vm/hvm.c + source/vm/initsymb.c + funclist.txt + + WORD() function added. + * source/vm/hvm.c + source/rtl/errorsys.prg + + hb_vmDivide(), hb_vmModulus() + Zero divide error is now handled in the standard error handler, and + the zero divide runtime error is properly generated. + * source/rtl/dates.c + ! DTOC() now throws Clipper compatible runtime error 1118. + ( DTOC("1") ) + * source/rtl/strings.c + + TODO: added to STRTRAN() (to check string overflow once) + * source/rtl/arrays.c + ! Fixed two error messages ("AEVAL" -> "(AEVAL() function)") + * source/rtl/filesys.c + source/rtl/strings.c + source/rtl/copyfile.c + + NOTE: added that the runtime errors are Clipper compatible, but + undocumented (FOPEN(), STRTRAN(), __COPYFILE()) + * source/rtl/transfrm.c + * Some reformatting. + +19990829-15:47 EDT Paul Tucker + * include/filesys.h + * hb_fsDelete and hb_fsRename now return int + * source/rtl/filesys.c + hb_fsDelete(), hb_fsRename + now Clipper compatible (only tested so far with msvc) + combined _some_ #if posix and msc_ver statements since posix version + works with msvc + * hb_fsClose - Invalid memory block error mapped to Invalid Handle + * hb_fsSeek Now Clipper compatible with -1 and FS_SET + Unknown Command error now mapped to Seek Error + * HB_FSERASE error is now 'invalid path' on bad parameter + * HB_FSRENAME error is now 'file not found' on bad parameter + +19990829-13:30 EDT Paul Tucker + * source/include/set.h + rearrange set struct to be in correct order + * source/hbpp/table.c + hand corrected output for _SET_ defines + * tests/working/set_test.prg + modified output to show which set is being displayed, and + external 'hooks' so that it demonstrates the same thing under Clipper. + +19990829-14:45 GMT+1 Victor Szel + + * source/vm/hvm.c + ! hb_vmArrayPut() - QUESTION: replaced with the proper runtime error + message. (like Clipper) + ( array[ .T. ] := 1 ) + ! hb_vmArrayAt() - Fixed: Now throws a proper runtime error instead + of an internal error. (like Clipper) + ( array[ .T. ] ) + ! hb_vmDec() - Throws a proper runtime error. (like Clipper) + ( a := .T. ; a-- ) + ! hb_vmModulus(), hb_vmMult(), hb_vmDivide(), hb_vmPower() - Throws + a proper runtime error, instead of an internal error. (like Clipper) + ( "1" / 10, "1" * 10, "1" % 10, "1" ^ 10 ) + * include/set.ch + include/set.h + source/rtl/set.c + + _SET_COUNT added to be even more Clipper compatible. + + _SET_* numeric values made compatible with Clipper. + * HB_INVALID_SET changed to HB_SET_INVALID_ + WARNING ! All source codes should be recompiled. + * source/rtl/errorapi.c + + Added copyright information. + * source/rtl/itemapi.c + source/rtl/extend.c + + One QUESTION: removed, it was obsolete now. + * source/rtl/set.c + + One QUESTION: answered. ( _SET_EXIT ) + * source/rtl/array.c + source/rtl/classes.c + * Some reformatting. + +19990829-11:21 GMT+1 Bruno Cantero + * include/rddapi.h + source/rdd/dbcmd.c + source/rdd/dbf1.c + * Beginning with memos. + +19990829-01:20 EDT Paul Tucker + * source/debug/debugger.prg + * ::Activate - call restoreAppStatus() since code was the same. + * ::Go added a DispEnd() + * __dbgEntry() Modified so that the app Screen is visible when + you select 'go' (F5) + The dispbegins/Ends here seem a bit weird, but this is temporary + as I'm working on a more permanent solution for the debugger to + do screen handling. + +19990828-22:20 EDT Paul Tucker + * source/rtl/filesys.c + * modified FO_ flags handling slightly to correctly reflect their state. + * modified handling of O_BINARY for msvc (was being discarded) + +19990828-14:00 GMT+1 Victor Szel + + * source/rtl/filesys.c + source/hbpp/stdalone/hbpp.c + source/compiler/harbour.y + include/hbsetup.h + include/hbpp.h + ! hb_fsFNameSplit() fixed handling of colon in filenames. + (reported by Bruno Cantero) + * source/compiler/harbour.y + ! Fixed the name format of the generated symbol registration function, + since it was causing a compiler error where the .prg name begun with + a number ( for example: 1.prg ). The new format is: hb_vm_SymbolInit_*() + * include/ctoharb.h + source/rtl/errorapi.c + source/vm/hvm.c + + hb_errLaunch() and hb_errLaunchSubst() finished + (the latter not yet tested). + Thanks to Ryszard Glab. + * include/ctoharb.h + source/vm/hvm.c + source/vm/initsymb.c + * hb_vmRTSymbolsInit() -> hb_vmSymbolInit_RT + * include/hbsetup.h + include/hbpp.h + + Changed OPT_DELIMITER to OS_OPT_DELIMITER_LIST and moved to hbsetup.h + So now it's multiplatform. + * source/rtl/mouse/mousedos.c + + hb_mouse_IsButtonPressed() added by Luiz Rafael Culik. + (small fixes applied, code not tested) + * include/hbdefs.h + ! LOBYTE(),HIBYTE(),LOWORD() put in #ifndef guards. + (reported by Jon Berg) + * tests/working/fileio.prg + + Some tests added. + +19990828-08:40 GMT+1 Antonio Linares + * source/vm/hvm.c + * Fixed hb_vmDebuggerEndProc() + (now it properly saves the previous PRG returned value) + * source/debug/debugger.prg + * CallStack now shows Classes and methods names + * It properly works debugging object oriented code + +19990827-18:46 GMT+1 Bruno Cantero + * source/rtl/filesys.c + * Now hb_fsCommit() work with MSVC + + * funclist.txt + include/rddapi.h + source/rdd/dbcmd.c + source/rdd/dbf1.c + * Added dbCommit() and dbCommitAll() functions + +19990827-14:19 GMT+1 Bruno Cantero + * include/rddapi.h + source/vm/hvm.c + source/rdd/dbcmd.c + source/rdd/dbf1.c + * Bug in hb_rddGetFieldValue() and hb_rddPutFieldValue() removed. + +19990827-13:01 GMT+1 Antonio Linares + * source/vm/hvm.c + + Added new function hb_vmDebuggerEndProc() + (notifies the Debugger __DBGENTRY() about a HB_P_ENDPROC + * source/rtl/tbrowse.prg + * fixed small bug on method stabilize + * source/debug/debugger.prg + + Added support for the CallStack window + (notice I have intentionally left it open by default, to + monitorize how it is working) + * source/debug/tbrwtext.prg + * small fixes. + +19990827-06:50 GMT+1 Victor Szel + + * source/rtl/inkey.c + include/inkey.h + + hb_inkeyPut() added, see next. + + __KEYPUT() added. This function is able to insert *any* inkey codes + (not just the 0-255 range) to the keyboard buffer one by one. + ! __KEYBOARD() allowed to insert zero codes into the buffer which made + INKEY() hang. It's now using hb_inkeyPut() to avoid this. + % __KEYBOARD() uses ISCHAR() instead of two hb_p*() calls. Eliminated + one of the two hb_parclen() calls. + * hb_inkeyPoll() now calls hb_inkeyPut() to insert the new code. + ! INKEY() fixed parameter count checking bug introduced a few hours ago. + +19990827-06:00 GMT+1 Victor Szel + + * include/mouseapi.h + source/rtl/mouseapi.c + source/rtl/mouse/mousedos.c + + Copyright info corrected. + + Added original (BorlandC) implementation (MOUSE.ZIP) by + Jose Lalin . + Luiz Rafael Culik . + + The OS/2 implementation is thanks to + Chen Kedem + + Please note that these files have not been tested yet, Borland + users should comment out the #define BORLANDC line in mousedos.c. + Non-GNU make file users should add the new files source/rtl/mouseapi.c + and source/rtl/mouse/mousedos.c file to their make system. + +19990827-05:00 GMT+1 Victor Szel + + * include/Makefile + include/mouseapi.h + source/rtl/mouseapi.c + source/rtl/mousexxx.c (renamed) + source/rtl/Makefile + source/rtl/mouse/mousetpl.c + source/rtl/mouse/mousedos.c + source/rtl/mouse/mouseos2.c + source/rtl/mouse/mousewin.c (added) + include/mouse.h (changed to mouseapi.h) + source/rtl/mouse.c (changed to mouseapi.c) + source/rtl/msxxx.c (changed to mousexxx.c) + + Changed the previouse Mouse API implementation to a somehow more + Clipper compatible and complete one. + * source/rtl/inkey.c + + INKEY() add runtime parameter count checking and error message. + * Two ints changed to BOOLs. + * source/vm/hvm.c + include/rddapi.h + * Some int -> BOOL, Some 0 -> NULL, '\0', Some cleanup. + ! LEN(), EMPTY(), PCOUNT() returns a runtime error if bad number of + parameter was passed. + + BREAK() doesn't have a parameter count check, an explanation of this + added as a NOTE:. + * hb_rdd*() function declarations moved to rddapi.h + * include/ctoharb.h + source/vm/hvm.c + source/vm/initsymb.c + * InitSymbolTable() -> hb_vmRTSymbolsInit() + * include/extend.h + source/rtl/fm.c + source/vm/hvm.c + + Moved memory statistics printing to fm.c, fixed memory subsystem now + has a hb_xinit() and hb_xexit() functions, which should contain all + init and exit code related to memory. + % Memory statistic variables made static, prefixed with "s_" + + #define added to suppress the collection of statistics. + * include/ctoharb.h + source/vm/hvm.c + source/rtl/errorapi.c + * hb_stackShow() -> hb_stackDispLocal() + * hb_callStackShow() -> hb_stackDispCall() + * include/errorapi.h + source/rtl/errorapi.c + * hb_errLaunch() using eval API to launch the handler. + + hb_errLaunchSubst() added to be able to add error handling using value + substitution. Not finished yet. + * include/hbdefs.h + % PCOUNT uses hb_pcount() since it's more efficient than hb_parinfo(0) + * source/rtl/extend.c + ! hb_evalPutParam() is no longer making a copy of the items, like Clipper. + * source/rtl/itemapi.c + % hb_itemParam(): one hb_param() call optimed out. + * source/hbpp/stdalone/hbpp.c + include/hbpp.h + + Standalone PP is now showing the line numbers in errors and warnings. + * source/compiler/harbour.y + source/hbpp/hbpplib.c + source/hbpp/stdalone/hbpp.c + source/rtl/errorapi.c + % GenError(), GenWarning(), hb_errInternel() no longer need sprintf() + neither the local stack buffers, so there's no more an undocumented limit + on the message length. + * source/rtl/console.c + ! In some places printf( "\n" ) was changed to print CrLf. + (Non-GT version is affected only) + * source/rtl/errorapi.c + source/hbpp/hbplib.c + source/vm/hvm.c + ! Uses hb_consoleGetNewLine() instead of \n character, so that it will + work on all platforms. This was needed because we have turned off cooked + mode of stdout, so the compiler/OS will not do it for us. The bug could + be observed in the stack dump on an internal error in DOS/DJGPP. + * source/rtl/console.c + include/extend.h + + New function hb_consoleGetNewLine() which returns the CrLf value. + * source/vm/hvm.c + include/extend.h + * hb_console*() declarations moved to the header file. + * source/compiler/harbour.y + + Small cosmetic enhancments in generated C code. + * source/tools/debug.c + - Removed external declaration of non-existing function. + * source/rtl/langapi.c + source/rtl/natmsg/*.c + ! Typo fixed "Limit exeeded" -> "Limit exceeded". + Thanks to Jose Lalin . + * source/tools/io.c + source/tools/nconvert.prg + source/tools/Makefile + gt.b32 + ! HB_RD() - Fixed: chdir() changed to rmdir() + + nconvert.prg added, Borland makefile modified + by Luiz Rafael Culik . + +19990826-22:00 EDT Paul Tucker + * include/hbsetup.h + + add mouse driver selector defines + + source/rtl/mouse.c + * harbour level mouse interface + code by Jose Lalin dezac@corevia.com + and Luiz Rafael Culik (culik@sl.conex.net) + + source/rtl/msxxx.c + * similar usage to gtxxx.c + + source/rtl/mouse directory + + source/rtl/mousedos.c + code by Jose Lalin dezac@corevia.com + and Luiz Rafael Culik (culik@sl.conex.net) + + source/rtl/mouseos2.c + code by Chen Kedem + + source/rtl/mousetpl.c + +19990826-20:05 GMT+1 Bruno Cantero + * funclist.txt + include/rddapi.h + source/rdd/dbcmd.c + source/rdd/dbf1.c + + Added dbAppend() function + +19990826-03:25 GMT+1 Bruno Cantero + * source/rtl/filesys.c + + Changed hb_fsOpen for support shared files (MSVC) + +19990825-23:30 GMT+1 Victor Szel + + * source/compiler/harbour.y + source/compiler/harbour.l + source/compiler/genobj32.c + source/hbpp/stdalone/hbpp.c + source/hbpp/hbpplib.c + include/hbpp.h + include/compiler.h + include/hberrors.h + + + Added standard error messages for memory management errors. + + Changed yyerror so that it calls the standard error launcher. + - hb_xalloc() functions removed, since it was not used anymore. + * hb_xalloc() changed to hb_xgrab(), it was not tested for the possible + NULL return value. + - One exit() after GenError() removed (source/hbpp/hbpp.c). + * exit( 1 ) -> exit( EXIT_FAILURE ) + ! GenWarning(), GenError(), CheckArgs() was allocating memory which was not + freed.Now the stack is used instead of calling memalloc functions, so + they can be used to report memory errors, too. + ! The last printf() changed to GenError() in harbour.l + + * source/tools/io.c + include/external.ch + source/runner/stdalone/external.prg + + - RENFILE() removed since there is already a function with the exact same + functionality in the standard Harbour RTL, named FRENAME(). + * Cleanup in io.c. + * Some __DOS__ guards changed to DOS. Some left since the code guarded + is compiler specific. Warning! This change could cause problems with some + other DOS compilers. + + TOFIX: added about a chdir call in RD() code. + + Code added to the non DOS branch. + + * source/rtl/console.c + + % SCROLL() - Some hb_pcount()s removed, parameter init optimed. + ! hb_out() - hb_parinfo() changed to pItem->type, since hb_parinfo() + can now contain the IT_BYREF flag, so if something would be passed + by reference, it would not be recognized as a valid type. + + * source/rtl/do.c + * Small cleanup. + + * gt.b32 + ! Fixes by Luiz Rafael Culik implemented. + +19990825-17:22 GMT+1 Bruno Cantero + * source/vm/hvm.c + + Added support for FIELD symbols + * source/rdd/dbcmd.c + + Open function improved + + Added support for FIELD symbols + * source/rdd/dbf1.c + + PutValue function improved + +19990825-13:30 GMT+2 Ryszard Glab + + *source/vm/hvm.c + * corrected alias handling in hb_vmAliasSwap() however we still need + to implement the function that will select an workarea using passed + string with an alias name + * if QUIT or BREAK is called in EXIT PROCEDURE then processing + of these procedures is stopped + +19990825-12:50 GMT+1 Victor Szel + + * source/rdd/dbcmd.c + - Removed symbol init code. + * source/tools/io.c + ! Modified so that it defines each function everytime, not just when + __DOS__ constant is defined. __DOS__ guard was moved around the function + bodies. + ! Removed FILE() function from here, since it's already declared in + Harbour RTL/filesys.c + * include/external.ch + source/runner/stdalone/external.prg + + Updated list of EXTERNAL, now including RDD and HBPP functions. + * source/compiler/harbour.y + ! Compile time parameter checking modified for RTRIM(), TRIM() since we + have a Harbour extension here, which should be allowed, added missing + LEFT() from the compile-time parameter checking list. + * source/rtl/filesys.c + + Added parameter count checking to FILE() + * source/rtl/transfrm.c + + Added parameter count checking to TRANSFORM() + * source/rtl/dates.c + + Added parameter count checking to CTOD(), DTOC(), DAY(), MONTH(), YEAR(), + DOW(). + * Code reformatting, variable scoping, some small optimalizations. + * source/rtl/strings.c + doc/subcodes.txt + * Some pcount() checkings converted to IS*() macros in PAD*(), *TRIM(). + * RTRIM(), TRIM() will now consider more than two parameters as an error. + - Removed parameter count checking from RIGHT(). + + NOTE: added about RTRIM(), TRIM(), ALLTRIM() Harbour extension. + % Simplified checking code for LEFT() and RIGHT() + ! LEFT(),STRTRAN() are no longer launching custom Harbour error codes + 3009/3010, this was not compatible, Clipper launches a standard error + code here. + * AT() parameter checking standardized. + * source/rtl/itemapi.c + * hb_itemGetL() and hb_itemGetNL() made consistent with the recent changes + in hb_parl() and hb_parnl(). + * Some code reformatting, some casts added, some branch and retval + optimalization. 0 -> NULL, '\0' + * source/debug/debugger.prg + * SHADOW() -> __SHADOW() + * source/rtl/console.c + - SHADOW() changed to __SHADOW() since it's not a std Clipper function. + ! SETCURSOR() is returning SC_NORMAL if there's no GT API. + * Some reformatting, some small optimalizations, added some copyright + info. + + Parameter count error added to DEVPOS(), SETPOS(), PROW(), PCOL(), + COL(), ROW() + * source/rtl/copyfile.c ( #include "itemapi.h" removed ) + source/rtl/hardcr.c + source/rtl/mtran.c + source/rtl/arrays.c ( 0 -> NULL ) + source/rtl/descend.c ( hb_pcount() call removed ) + * Reformatting. Small cleanup. Some small optimalizations. + +19990825-09:02 GMT+1 Antonio Linares + * source/debug/tbrwtext.prg + * Improved display functionality. + +19990825-09:02 GMT+1 Antonio Linares + * source/debug/debugger.prg + + Breakpoints already working. + (Notice the Harbour debugger does not debug multiple files yet). + +19990825-01:15 GMT+1 Victor Szel + + * source/rtl/extend.c + ! hb_parinfo() fixed so that it will return proper type information for + parameters passed by reference, like in Clipper. + ! hb_par*() functions accept zero parameter again to access self. + NOTE: added about this. + + * tests/working/fileio.prg + source/rtl/filesys.c + ! FREAD() fixed, it now checks second parameter correctly using + hb_parinfo(). + + Some new tests added, one test put between + HARBOUR_STRICT_CLIPPER_COMPATIBILITY guards, see next. + ! FREAD() uses hb_parcsiz() (hb_parclen()+1) as the maximum number of + bytes which could be read. Modified FREAD() but put between + HARBOUR_STRICT_CLIPPER_COMPATIBILITY guards, since this is a rather + unexpected behaviour, plus it can overwrite the terminating zero byte + in the string buffer. + + NOTE: added about an incompatibility in hb_fsSeek()/hb_fsWrite() + behaviour. + + * contrib/odbc/odbc.c + - Removed symbol init code. + * source/rtl/math.c + * Ultra minor change. + +19990824-17:20 EDT David G. Holm + * config/dos/bcc31.cf + - Removed '-DHARBOUR_USE_GTAPI' from 'CPPFLAGS'. + + Include RDD libraries when RDD is in library list. + * config/os2/icc.cf + - Removed '-DHARBOUR_USE_GTAPI' from 'CPPFLAGS'. + ! Corrected 'LINKELIBS' to read 'LINKLIBS'. + * source/compiler/harbour.c + + Added 'extern unsigned _stklen = UINTMAX;' for Borland DOS mode, + because compiling source/rtl/tget.c resulted in stack overflow + with the default 4096 byte stack. + * source/rtl/inkey.c + + Added 'DosSleep( 25 );' to hb_releaseCPU() for OS/2. + * source/rtl/tone.c + + Added 'Beep()' support for Win32, thanks to Chen Kedem + . Notes: Only tested with Cygwin() on + Windows NT and 95; On other Windows it only produces the + default sound or standard beep. + ! Removed call to hb_releaseCPU() at end of outer loop for long + durations in order to provide as seamless a sound continuation + as possible and to avoid increasing the duration when using DOS + platform code on some platforms (DOS DPMS, Windows NT, and OS/2). + +19990824-15:30 EDT Paul Tucker + * source/rtl/filesys.c + * added a couple of casts. + +19990824-20:30 GMT+1 Victor Szel + + * include/hbdefs.h + ! ISBYREF() macro changed to call hb_parinfo() instead of hb_param(), + it was not working previously since hb_param() was automatically + dereferencing the parameter. + FOPEN() parameter checking was not working correctly because of this. + + ( WARNING ! THIS SEEMS TO BE A WORKAROUND FOR SOME OTHER PROBLEM + WITH PARAMETERS PASSED BY REFERENCE, PLEASE ALSO NOTE THAT + FRead() IS NOT WORKING RIGHT NOW ) + + * source/rtl/filesys.c + doc/subcodes.txt + * Huge cleanup, reformatted, eliminated usage of internal structures, + fixed types, standardized variable names, explicit constants changed + to manifest constants, fixed a whole bunch of bugs, simplified code + fragments, optimalized variable usage and scope. 65535U -> (USHORT)-1 + % "return;"s removed + * reindented using 3 chars + ! FWRITE() and hb_fsWrite() returns 0 instead of 65535 if the write failed. + ! FOPEN() runtime error code fixed + ! FERASE() return value fixed + ! FREAD() will check if the passed buffer size is smaller than the + required read length. + ! FREAD(): Added warning about the fact, that the buffer returned by + hb_parc() will be directly modified. (this is strictly prohibited by + Clipper doc). + ! hb_fsCreate() didn't reset the last error code on success. + ! hb_fsDelete(), hb_fsRename(), hb_fsLock(), hb_fsCommit() - the not + defined platform branch is now setting the last error code. + ! hb_fsExtOpen() is now setting the last code to FS_ERROR. + % FREADSTR() made much faster for longer strings. + ! FREADSTR() uses hb_fsRead() instead of read() + ! hb_fsClose() didn't set the last error code. + ! I2BIN(), L2BIN() was returning one more character than Clipper + (it worked OK when bad parameters were passed). + ! BIN2L() returned an int instead of long, this is fixed. + + * source/rtl/math.c + * Reformatting finished. + +19990824-19:05 GMT+1 Victor Szel + + * source/rtl/math.c + ! MIN(), MAX() code fixed to behave exactly like Clipper, it will now + return a DOUBLE if any parameter is DOUBLE, it will return LONG if + any parameter is LONG, otherwise it will return INT, the HB_ITEM + decimals now are only accessed for DOUBLE types (and of course only set + for DOUBLE return types). The bug could be observed by running AC_TEST + pressing PgDn at the bottom of the list then pressing Up button, the + index display was shown with decimals in it (DOS/DJGPP). + % MIN(), MAX() code optimalized. + * Some direct hb_param() calls changed to macros. + +19990824-18:05 GMT+1 Victor Szel + + * source/rtl/extend.c + include/extend.h + % Variable declarations moved to inner blocks. + ! Parameter number zero is considered a bad case, instead of undefined. + % Optimalization and cleanup. Returns from inner blocks optimed out. + % Array index parameter is only evaluated when actual parameter is an + array, so that it should be faster now. + % The type checkings reordered, so that the first is the most probable one. + Array type is checked last, since this is the most rarely occuring case. + This will speed up things a bit. + ! Casting to (long) fixed in hb_parni() when return an array element. + ! Variable parameters are treated consistently as longs, we are not + Clipper compatible here, but in Harbour an array index can be ULONG, just + as like the string lengths were already ULONGs instead of ints. + ! WORD wArrayIndex changed to ULONG ulArrayIndex. + ! hb_storclen() WORD parameter changed to ULONG. + + Some casts added to hb_parni(), hb_parnd() + ! hb_parl() is returning valid values for INTEGER, LONG and DOUBLE type of + parameters. (Clipper does the same except for DOUBLE) + ! hb_parnl() is returning the date value as a long is the paramater is DATE + type. (just like in Clipper). + ; Reformatted to Harbour standard. + + * source/arrays.c + ! hb_arrayGetDouble() is now returning a value even for the DATE type, + to be consistent with hb_parn*(); + ! hb_arrayGetBool() is now returning a value even for INTEGER, LONG and + DOUBLE types, to be consistent with hb_parl(). + * Reindented using Harbour standard. + % Removed hb_ret() calls, they are not needed, since the default return + value is always NIL. + ! AEVAL() GPF fixed when the second parameter was not a codeblock. + - Removed (unsigned) casts from hb_arrayLen(). + ; Reformatted to Harbour standard. + + * source/rdd/dbcmd.c + ! HB_DBSKIP() it will work even when a DOUBLE type of numeric was passed, + (like Clipper). The low level HB_ITEM access changes to use the + extend API. + + * makefile.b32 + ! Fixes by Luiz Rafael Culik implemented. + + * source/rtl/strings.c + + Added a new runtime error for ALLTRIM(), this error has been + introduced in Clipper 5.3. + (Put between HB_COMPATIBILITY_CLIPPER_53 guard) + % Some PHB_ITEM accesses changed to type checking macros, only where + the PHB_ITEM was only used to check the type. + * Some reformatting (putting spaces between ()[] chars) + ; Reformatted to Harbour standard. + + * source/rtl/math.c + % PHB_ITEM access changed to Extend API calls and/or type checking macros. + + * source/rtl/console.c + % PHB_ITEM access changed to Extend API calls and/or type checking macros. + ! SETPRC() was checking the first parameter type two times, but not at all + the second. + + * source/rtl/descend.c + ! One (double) cast moved to the right place. + + * source/rtl/classes.c + % One hb_ret() removed. + * Some reformatting. + + * tests/working/rtl_test.prg + + CA-Clipper bugs documented somewhat better. + + * source/rtl/dates.c + source/rtl/dir.c + source/rtl/inkey.c + source/vm/hvm.c + * Some minor formatting change: defined( x ) -> defined(x). + + Two (double) casts added to hb_vmPopDouble() + +19990824-17:57 GMT+1 Antonio Linares + * source/debug/debugger.prg + + Added support for Next Window (K_TAB) and Prev Window (K_SH_TAB) + +19990824-17:10 GMT+1 Bruno Cantero + * funclist.txt + include/rddapi.h + source/rdd/dbcmd.c + source/rdd/dbf1.c + + Added FLOCK, DBUNLOCK, DBUNLOCKALL, AFIELDS, DBSTRUCT, LUPDATE, NETERR, + HEADER and RECSIZE + +19990824-16:04 GMT+1 Antonio Linares + * source/debug/debugger.prg + + Added support for F5-Go. (Breakpoints are not checked yet). + +19990824-14:55 GMT+2 Ryszard Glab + + *source/compiler/harbour.y + * corrected arguments type checking in Inc/Dec functions + + *source/hbppint.h + * memory.h is not defined in WATCOM C/C++ + + *include/rddapi.h + * added forward declaration for _AREA struct + +19990824-11:07 GMT+1 Bruno Cantero + * funclist.txt + include/rddapi.h + source/rdd/dbcmd.c + source/rdd/dbf1.c + + Added RLOCK, DBRLOCK and DBRUNLOCK functions + +19990824-03:50 GMT+1 Victor Szel + * tests/working/fileio.prg + + Rewritten to check more functions in more situations, displaying all + return values, etc. (almost like RTL_TEST.PRG) + * source/compiler/harbour.y + + Changed spaces to tabs in the generated code. This made the + generated code size almost 30% smaller, and the comments better aligned. + * source/compiler/harbour.l + source/compiler/harbour.y + include/hberrors.h + + One yyerror() call converted to standard GenError(). + * source/hbpp/hbppint.c + ! 'W' sign changed to 'I' for preprocessor warning. + * config/dos/djgpp.cf + - -( -) removed. + * runner.b32 + ! Fixes by Luiz Rafael Culik implemented. + * include/ctoharb.h + + hb_vmRequest*() functions added. + * source/rtl/errorsys.prg + + BREAK uncommented. + * include/filesys.h + * Some name standardization (fp -> p). + +19990823-19:37 GMT+1 Antonio Linares + * source/rtl/tbrowse.prg + * Added Class TbColumn DATA ColorBlock support. + * source/debug/debugger.prg + * Added support for setting breakpoints. + (they don't work yet, but you may set them pressing F9) + +19990823-17:00 GMT+1 Antonio Linares + * source/debug/debugger.prg + * improved application colors and cursor management. + +19990823-12:40 GMT+2 Ryszard Glab + + *source/compiler/harbour.y + + added full support for BEGIN/RECOVER/END sequence + + added full support for BREAK statement and BREAK function + (BREAK statement is implemented using BREAK function) + + fixed incorrect warning about unused static variables + * added some optimalization of generated opcodes - repeated + HB_P_LINE opcodes are replaced with only one HB_P_LINE opcode + if compiled with no debugger support + + *source/vm/hvm.c + + added full support for BEGIN/RECOVER/END sequence and BREAK + + new functions hb_vmRequestBreak() and hb_vmRequestQuit() + that can be used from C code to request BREAK or QUIT action + + changed HB_DEBUG to empty macro instead of function when + debug code is not requested + * some internal variables declared 'static' + * EXIT functions are called on exit when QUIT is requested + +QUESTION: How to handle the call to QUIT function inside of + EXIT procedure? Should we continue execution of the rest of + procedures or immediatelly quit to OS? + + *include/pcode.h + + added new opcodes + HB_P_SEQBEGIN + HB_P_SEQEND + HB_P_SEQRECOVER + +NOTE: You have to recompile all PRG code! + + *include/hberrors.h + + added new error code ERR_EXIT_IN_SEQUENCE called when + EXIT, LOOP or RETURN is used inside BEGIN/END sequence + (however these statement are valid in RECOVER code) + + *tests/working/begin.prg + + new file to test BEGIN/RECOVER/END sequence and BREAK statement + + *tests/working/Makefile + * added begin.prg + +19990823-10:45 GMT+1 Bruno Cantero + * include/rddapi.h + source/rdd/dbcmd.c + source/rdd/dbf1.c + source/rdd/sdf1.c + source/rdd/delim1.c + source/rdd/dbfntx/dbfntx1.c + + Added support for SUPER methods. + +19990823-02:00 EDT Paul Tucker + * source/debug/tbrwtext.prg + * GotoLine() only forceStable once after loop is done. + +19990823-01:11 EDT Paul Tucker + * source/debug/debugger.prg + * ::Activate - fix for trashed screens + Escape key will now exit the debugger, but the app will continue to run + Altd() will reactivate the debugger (maybe not imediately) + +19990823-01:11 GMT+1 Victor Szel + * source/rtl/alert.prg + ! PreExt/PostExt code moved inside Alert(), then the STATIC variable + could be removed, so that it will work even in nested calls. + * source/compiler/harbour.y + ! Extern "DEBUGGER" changed to "__DBGENTRY" + * config/win32/gcc.cf + tests/working/Makefile + source/runner/stdalone/Makefile + ! Removed the -( -) parameter, RDD lib added a second time after + the VM lib to resolve circular dependency. (Thanks to Paul Tucker) + * include/extend.h + include/hbdefs.h + * Standard #include files included from hbdefs.h instead of extend.h + * source/compiler/genobj32.c + ! Some types changed to BOOL + % Some #includes removed. + * source/runner/runner.c + - Removed (runlib.c is the new name) + * runner.b32 + + Added (missed from the previous CVS session) + * source/vm/hvm.c + % Removed some unneeded HARBOUR prototypes. + % Removed #include "init.h" + * source/rtl/strings.c + + Put #include "init.h" between guards + * tests/working/transfrm.prg + tests/working/Makefile + - Removed since all its content has been moved to rtl_test.prg + previously. + +19990822-16:20 EDT Paul Tucker + * source/rtl/alert.prg + + PreExt() and PostExt() + These allow alert to display if dispbegin is in effect. + +19990822-20:02 GMT+1 Bruno Cantero + * source/rdd/dbcmd.c + source/rdd/dbf1.c + * Bug in PutValue removed (again) + +19990822-18:20 GMT+1 Bruno Cantero + * include/rddapi.h + source/rdd/dbcmd.c + source/rdd/dbf1.c + * Bug in PutValue removed + +19990822-14:12 GMT+1 Victor Szel + * config/win32/gcc.cf + + -( -) parameters temporarly readded, to make it work, new circular + dependencies has been introduced, since HVM.C is calling RDD functions. + * include/extend.h + source/rtl/strings.c + source/rtl/math.c + * hb_mathRound() -> hb_numRound() + ! hb_numRound() fixed, so that it handles negative and zero iDec + parameter correctly. (STR()/STRZERO() got also fixed) + + Comment header added to STR() and STRZERO() + * tests/working/rtl_test.prg + * /FAIL changed to /ALL, so from now on, only the failing lines will be + showed by default. + + Added some tests. + * source/rtl/console.c + ! Comment typo fixed. + +19990822-12:49 GMT+1 Bruno Cantero + * include/rddapi.h + source/vm/hvm.c + source/rdd/dbcmd.c + source/rdd/dbf1.c + source/rdd/sdf1.c + source/rdd/delim1.c + source/rdd/dbfntx/dbfntx1.c + * Renamed hb_GetCurrentWorkAreaNumber, hb_SelectWorkAreaNumber and + hb_SelectWorkAreaAlias to hb_rddGetCurrentWorkAreaNumber, + hb_rddSelectWorkAreaNumber and hb_rddSelectWorkAreaAlias. + +19990822-07:40 GMT+1 Victor Szel + + * source/rtl/strings.c + ! hb_itemStr() fixed so that it rounds the value if the required + decimal width is smaller than the original. Note that rounding is + buggy so it still doesn't work. + * HB_STRTRAN() one more long converted to ULONG. (lFound -> ulFound) + + * include/extend.h + source/rtl/math.c + tests/working/rtl_test.prg + + Made a C callable version of ROUND() function, named hb_mathRound(). + + Added ROUND() tests. + + * source/rtl/strzero.prg + source/runner/stdalone/external.prg + include/external.ch + tests/working/rtl_test.prg + funclist.txt + + STRZERO() added. + + STRZERO() and STR() tests added. + + EXTERNAL NUMTOTXTHU enabled, since STRZERO() is existing now. + + * source/rtl/alert.prg + source/rtl/menuto.prg + source/rtl/achoice.prg + ! Some warnings fixed. (Why aren't we compiling with /w by default ?) + ! Hotkey handling bug fixed in ACHOICE(). + ! Comment typo fixed in Alert() + + * source/rtl/hardcr.c + tests/working/hardcr.prg + ! Fixed a bug in HARDCR() with handling strings including Chr(0). + It's now 100% Clipper compatible. + * hb_hardcr() renamed to hb_strHardCR() + + * source/rtl/mtran.c + * Small change in internal function, it returns the resulting string + pointer now. + * hb_memotran() renamed to hb_strMemotran() + + * source/tools/dates2.c + source/hbpp/hbpplib.c + source/vm/hvm.c + source/vm/initsymb.c + source/rtl/arrays.c + source/rtl/classes.c + source/rtl/console.c + source/rtl/copyfile.c + source/rtl/dates.c + source/rtl/descend.c + source/rtl/dir.c + source/rtl/do.c + source/rtl/environ.c + source/rtl/errorapi.c + source/rtl/filesys.c + source/rtl/hardcr.c + source/rtl/inkey.c + source/rtl/math.c + source/rtl/memvars.c + source/rtl/mtran.c + source/rtl/set.c + source/rtl/setcolor.c + source/rtl/strings.c + source/rtl/tone.c + source/rtl/transfrm.c + - Removed HB_INIT_SYMBOLS_*() automatic symbol registration, placed + "forcelink" code where needed. + + * include/extend.h + + hb_strDescend() prototype added. (this may be used in index creation + once) + + * source/runner/runhrb.c (removed) + source/runner/runlib.c (added) + source/runner/external.prg -> source/runner/stdalone/external.prg + source/runner/runhrb.prg -> source/runner/stdalone/runner.prg + source/runner/Makefile + source/runner/stdalone/Makefile + tests/working/Makefile + include/initsymb.h (removed) + include/initsymc.h (removed) + include/run_exp.h (removed) + runner.b32 (added !! NOT tested !!) + build32.bat (modified) + build40.bat (modified) + - Removed include files not needed anymore. + + Separated runner library from standalone executable. + * Renamed HB_RUN() to __HRBRUN() + + Added return value support to __HRBRUN() + + Added standard error messages to runlib.c, printf() is no longer called. + + TODO: the error codes should be replaced with meaningful ones. + * Large cleanup in runlib.c, functions made static, renamings, some BYTE + changed to BOOL, TOFIX, TODO added, etc. + + runner.prg help message standardized, extended. + + Tried to modify Borland makefiles to be able to build runner. + + Added runner lib to the Makefile's library list. + ( !! PLEASE CHECK THE BORLAND MAKEFILES !! ) + + * tests/working/rtl_test.prg + + /FAIL switch added to only show failing lines. + * Reindented using 3 characters. + + * source/rtl/inkey.c + include/inkey.h + ! Some ints changed to BOOL. + + * source/rtl/transform.c + tests/working/rtl_test.prg + ! The rest of the long types and one int converted to ULONG. + ! A temporary fix for an obvious bug, an if branch commented out. + This way it seems to work far better. GPF seem to have fixed. + Now only 10 tests fails. + ! TRANSFORM() test results corrected where Clipper is buggy, two + tests added which previously GPF-ed. + + * source/debug/debugger.prg + source/vm/hvm.c + * Function DEBUGGER renamed to __DBGENTRY + + * libs/icc/empty + - Removed since this directory is not used anymore. + + * source/hbpp/makefile.b16 (moved to /hbpp.b16) + source/hbpp/makefile.b32 (moved to /hbpp.b32) + source/hbpp/build.bat (removed) + source/hbpp/build32.bat (removed) + build.bat + build32.bat + hbpp.b16 (added !! NOT tested !!) + hbpp.b32 (added !! NOT tested !!) + + Moved to the root, renamed and incorporated to the mainstream + Borland make process, it's commented out. + ( !! PLEASE UPDATE THE BORLAND MAKEFILES !! ) + + * source/compiler/harbour.y + source/hbpp/hbpp.c + * Reformatted code for error and warning tables. + +19990821-22:18 GMT+3 Alexander Kresin + * source/debug/tbrwtext.prg + * minor improvements + * makefile.b32 + * added tone.c + +19990821-14:20 GMT+2 Ryszard Glab + + *source/rtl/inkey.c + * added test code for OS_UNIX_COMPATIBLE based on noncanonical + low-level terminal functions - we need however to extend this + code to support different terminals + +19990821-00:05 GMT+1 Antonio Linares + * source/debug/debugger.prg + * improved debugger functionality. + * source/vm/hvmc. + * improved debugger support. + +19990820-16:25 EDT Paul Tucker + * source/rtl/gtapi.c + * account for nesting of gtPre/PostExt and for calling + DispBegin/End while Pre/Post in effect. + +19990820-14:24 EDT Paul Tucker + * source/rdd/dbf1.c + * casts on sztext + +19990820-19:42 GMT+1 Bruno Cantero + * filelist.txt + include/rddapi.h + source/rdd/dbcmd.c + source/rdd/dbf1.c + source/rdd/sdf1.c + source/rdd/delim1.c + source/rdd/dbfntx/dbfntx1.c + dbUseArea() and dbCreate() add a default extension to filename if not provided. + +19990820-11:50 EDT Paul Tucker + * source/rtl/dir.c + * corrected case of iDirnameLen + * source/rtl/transfrm.c + * added casts as required + * makefile.vc + - remove HARBOUR_USE_GTAPI + +19990820-15:05 GMT+2 Ryszard Glab + + *source/rtl/strings.c + * corrected a NULL assigment to '\x0' + + *source/rdd/dbcmd.c + * corrected SELF_DELETE to SELF_DELETED in HB_DELETED function + + *source/runner/runner.c + * corrected NULL to 0L (we are returning LONG in ReadLong()) + + *include/external.ch + + new file with EXTERNAL declaration for all harbour + functions/procedures + + *source/rtl/dir.c + * corrected a parameter passed to 'opendir' function when + Watcom C/C++ is used + + *source/runner/Makefile + *source/runner/external.prg + *source/runner/runhrb.c + *source/runner/runmain.prg + * new files to create the runner executable. + + external.prg is here temporary because the preprocessor doesn't + process EXTERNAL statement yet + + runhrb.c is copied from runner.c however without all code used + to handle the symbol table + + runmain.prg calls HB_RUN from runhrb.c + NOTE: I have left runner.c unchanged because I was unable to + replace it with new files in all these build*.bat - these + build*.bat doesn't allow to create an executable from more then + one source file :( + +19990820-14:40 GMT+1 Victor Szel + * include/hbsetup.h + + HARBOUR_USE_GTAPI is automatically #defined if any type of the GTAPIs + is #defined. + So from now on only one of these should be #defined to turn on the GT: + #define HARBOUR_USE_DOS_GTAPI + #define HARBOUR_USE_OS2_GTAPI + #define HARBOUR_USE_WIN_GTAPI + +19990820-14:30 GMT+1 Victor Szel + * source/compiler/harbour.y + source/hbpp/hbpp.c + source/hbpp/hbpplib.c + source/hbpp/stdalone/hbpp.c + include/hbpp.h + + All occurence of FILENAME, MakeFilename, SplitFilename() changed + to the Harbour standard hb_fsFName*() and HB_FNAME. This way one + copy of them could be safely removed. + +19990820-13:47 GMT+1 Bruno Cantero + * source\rdd\dbcmd.c + Fixed some warnings, now RDD compile without warnings + +19990820-13:27 GMT+1 Bruno Cantero + * source\rdd\dbcmd.c + source\rdd\dbf1.c + source\rdd\delim1.c + source\rdd\sdf1.c + source\rdd\dbfntx\dbfntx1.c + Fixed some warnings (unused variables) + +19990820-12:50 GMT+1 Victor Szel + * source/rdd/dbcmd.c + ! SELF_DELETE -> SELF_DELETED (missed from the previous ChangeLog entry) + +19990820-12:40 GMT+1 Victor Szel + * source/rtl/filesys.c + include/filesys.h + + hb_fsFNameSplit() + hb_fsFNameMerge() + filename handling functions and structure added to the Harbour RTL. + These function were originated from MakeFilename() and SplitFileName() + * tests/working/rtl_test.prg + + rtl_test now shows the compiler version, os, date and time, other + improvements. + * All TRANSFORM() tests moved to rtl_test to allow automatic regression + testing. + * source/rtl/transfrm.c + * PicFlags type changed to WORD + * Some length and pos variable types changed to ULONG. + * TOFIX: added about an unreachable code segment. + * Some zero changed to '\0'. + * source/rtl/strings.c + source/rtl/maths.c + source/rtl/dates.c + source/rtl/arrays.c + * QUESTION:s changed to NOTE: regarding the parameter checking + +19990820-12:28 GMT+1 Antonio Linares + * source/debug/debugger.prg + * improved debugger functionality. F8 and F4 already operative. + * source/debug/tbrwtext.prg + * GotoLine() method added + * source/vm/hvmc. + * new bDebugging, bDebugShowLines variables added. + * new hb_vmDebuggerShowLine() function + +19990820-11:47 GMT+1 Bruno Cantero + * funclist.txt + include/rddapi.h + source/rdd/dbcmd.c + source/rdd/dbf1.c + source/rdd/sdf1.c + source/rdd/delim1.c + source/rdd/dbfntx/dbfntx1.c + source/vm/hvm.c + + Added new functions, changed VM for support Alias and updated function list. + +19990819-18:42 GMT+1 Victor Szel + * tests/working/rtl_test.prg + + STUFF() and RAT() tests added, some more tests added to PAD*() family. + * include/extend.h + source/rtl/strings.c + source/rtl/descend.c + source/vm/hvm.c + ! hb_strUpper(), hb_strLower(), hb_strAt() uses ULONG instead of long + for string positions and lengths. + ! hb_pad_prep() uses ULONG instead of WORD + + REPLICATE() now checks for string overflow. + * REPLICATE() uses only standard Extend API calls now. + * STUFF() made completely Clipper compatible, it now uses only standard + Extend API calls. + * hb_stricmp() USHORT changed to ULONG. + * return type of hb_strgreater changed to int from WORD + ! Some types changed to BOOL, many "long"s changed to ULONG. + * long -> LONG, _retni() -> retnl() in one place. + * Some zeros changed to \0 and NULL. + * Small name changes: + hb_pad_prep() -> hb_itemPadConv() + hb_strempty -> hb_strEmpty + hb_strdescend -> hb_strDescend + * source/rtl/copyfile.c + ! Fixed a bug when HB_STRICT_CLIPPER_COMPATBILITY was set. + * contrib/odbc/odbc.c + source/rtl/copyfile.c + source/rtl/descend.c + source/hbpp/hbpplib.c + ! Fixed #pragma startup directives. (missing "startup", missing + __GNUC__ guard.) + * source/hbpp/hbpplib.c + tests/working/testpre.prg + * HB_PREPROCESS -> HB___PREPROCESS, since this is an extension. + PREPROCESS -> __PREPROCESS + * source/vm/dynsym.c + * One small change. + +19990819-12:30 GMT+1 Victor Szel + * source/rtl/strings.c + ! hb_itemStr() possible error fixed when item.asDouble was + accessed without making sure whether the item is a double. + +19990819-00:15 EDT Paul Tucker + * source/rtl/gtapi.c + + hb_gtPreExt() + + hb_gtPostExt() + Like Clipper internals - these functions should be called as + bookends to printf if there is a possibility that a dispbegin + is in effect when the printf or fprintf(stderr) takes place. + * gtDispEnd(); + decrement counter after restoring screen + * source/rtl/console.c + * added calls to above functions + * source/rtl/gt/gtdos.c + * account for dispCount change + * source/rtl/gt/gtwin.c + * If the Windows console handle is not the initial handle inherited + from stdin - printf fails to work. Modified Dispbegin/end logic + to account for this. + +19990819-05:26 GMT+1 Victor Szel + + * source/compiler/harbour.l + source/compiler/harbour.y + source/compiler/genobj32.c + source/hbpp/hbpp.c + source/hbpp/hbppint.c + source/hbpp/hbpplib.c + source/hbpp/stdalone/hbpp.c + include/compiler.h + include/hbpp.h + + + Standardized the names of the memory handling functions. + OurMalloc() -> hb_xalloc() + OurRealloc() -> hb_xrealloc() + OurFree() -> hb_xfree() + _xgrab() -> hb_xgrab() + _xrealloc() -> hb_xrealloc() + _xfree() -> hb_xfree() + So that from now on, the Harbour API form can be used everywhere. + Some duplicate code eliminated. + + * source/rtl/arrays.c - hb_arrayScan() + + ! Checks the return value of the comparer block whether it's logical. + +19990819-04:44 GMT+1 Victor Szel + * source/rtl/memvars.c + include/extend.h + * int -> BOOL (hb_memvarValueNew()) + + PUBLIC CLIPPER and PUBLIC HARBOUR will initialize those variables with + .T. instead of .F., to be compatible with Clipper, and to be able to + detect Harbour. + * include/extend.h + source/rtl/extend.c + source/rtl/itemapi.c + source/vm/hvm.c + source/rtl/transfrm.c + - Removed HB_ITEM/asLogical.length variable, since it was never + used, and has no sense anyway. + - Removed HB_ITEM/asDate.length variable, since it was never + used, and has no sense anyway. + - Removed HB_ITEM/asInteger.decimal variable, since it was never + used, and has no sense anyway, it's always zero. + - Removed HB_ITEM/asLong.decimal variable, since it was never + used, and has no sense anyway, it's always zero. + * source/rtl/arrays.c + source/rtl/extend.c + source/rtl/memvars.c + source/vm/hvm.c + include/extend.h + * HB_ITEM/asLogical.value type changed to BOOL + * include/hbdefs.h + + ISNIL() macro added. + * source/tools/dates2.c + * Some optimalizations, simplifications. + * source/rtl/transfrm.c + ! Fixed handling of the case, when the second parameter was not a + string. + * Some optimalizations, simplifications. + ! Reenabled symbol registration, to avoid an empty initialization list. + This is only a temporary workaround. + +19990819-02:15 GMT+1 Victor Szel + * source/hbpp/hbpplib.c + ! OurMalloc -> _xgrab + * source/compiler/genobj32.c + ! "_VirtualMachine" -> "_hb_vmExecute" + * source/rtl/arrays.c + source/rtl/console.c + source/rtl/dates.c + source/rtl/inkey.c + source/rtl/math.c + source/rtl/strings.c + source/rtl/transfrm.c + source/vm/hvm.c + ! Commented out those symbol registration line, which are already included + in source/vm/initsymb.c + * source/vm/dynsym.c + * Some variable declaration moved to the block where it's used. + * Some 0 (zero) changed to NULL and '\0' + * source/rdd/dbcmd.c + ! extern HARBOUR functions declared as extern. + * source/rtl/classes.c + ! __msg*() function names changed to hb___msg*(), to avoid the + leading underscores. + * Many variable declaration moved to the block where it's used. + ! Some (5?) potential GPFs fixed when the string/block parameter was + omitted. + * BYTE changed to BOOL in one place. + ! Added proper (commented out) error description to three runtime errors. + * source/rtl/extend.c + * Some 0 (zero) changed to NULL and '\0' + * include/inkey.ch + ! Typo fixed. + * include/extend.h + source/rtl/arrays.c + source/rtl/classes.c + * BASEARRAY/wSuperCast changed to bSuperCase, type changed to BOOL. + * source/vm/hvm.c + source/vm/initsymb.c + source/tools/io.c + source/runner/runner.c + source/rtl/codebloc.c + source/rtl/console.c + source/rtl/dates.c + source/rtl/dir.c + source/rtl/extend.c + source/rtl/filesys.c + source/rtl/fm.c + source/rtl/inkey.c + source/rtl/langapi.c + source/rtl/memvars.c + source/rtl/msgxxx.c + source/rtl/set.c + source/rtl/strings.c + source/compiler/harbour.y + % Removed all #includes which are always included indirectly via + extend.h + * include/extend.h + * changed inclusion order of hbsetup.h and hbdefs.h, so that + hbsetup.h is included first. + * source/vm/initsymb.c + source/compiler/harbour.y + - DO removed from here. (since it's non standard Clipper) + * source/vm/initsymb.c + - STOD removed from here. (since it's non standard Clipper) + * made all HARBOUR prototypes extern. + - #include "init.h" removed. + + #include "initsymd.h" guarded with HARBOUR_STRICT_ANSI_C + + INKEY, PCOL, PROW address filled with proper value instead of NULL. + * include/memvars.ch + * Really small correction. + +19990818-19:20 EDT David G. Holm + * source/vm/hvm.c + * Added TODO: comment to indicate that the divide by zero check + needs to be removed once proper divide by zero error handling + has been added to Harbour. + +19990818-18:45 EDT David G. Holm + * config/os2/icc.cf + ! Fix to only use RDD libraries when RDD library is specified. + * include/inkey.h + + Added '#include "set.h"' to get HB_set_enum. + * source/rtl/dates.c + * Renamed hb_seconds() to hb_secondsToday() to avoid a duplicate + symbol warning when using a C++ compiler. + * source/rtl/environ.c + * Moved hb_revision to after hb_build to match Harbour build + number (e.g., "(Build 29a)"). + * source/rtl/gtapi.c + ! Moved speed enhancement display code in hb_gtWriteCon() to be + outside the switch() statement, so that forced display updates + take place immediately instead of when the next character is + processed. (This bug caused QOUT to act like QQOUT.) + ! Added a check to force the display of whatever is in 'strng' when + the buffer is full, because it's possible to write more than 500 + characters without hitting any other forced display conditions + when starting more than 500 characters away from the bottom right + corner of the screen (a 25 x 80 screen is 2000 characters). + - Commented out the calls to hb_gtDispBegin() and hb_gtDispEnd() in + hb_gtWriteCon() in anticipation of removing them, because their use + subverts the use of DISPBEGIN() and DISPEND() in Harbour code. + * source/rtl/inkey.c + - Removed '#include "set.h"', because inkey.h includes it. + + Uncommented DOS release CPU code and added '#if defined(DOS)'. + * source/rtl/tone.c + * Added support for long delays, like in Clipper. + ! OS/2 upper frequency limit is 32767. + * Limited all platforms to an upper frequency of 32767. + * source/vm/hvm.c + ! When dividing by 0, always return 0, just like Clipper. + * tests/working/mathtest.prg + * Moved modulo 0 test ahead of divide by 0 test. + * Put "error" text on a separate line. + * tests/working/sound.prg + + Calculate elapsed time, which should be close to 1.5 seconds + (except on platforms where SECONDS() only returns whole seconds). + +19990819-02:23 GMT+1 Bruno Cantero + * funclist.txt + source/rdd/rddsys.prg + source/rdd/dbcmd.c + source/rdd/dbf0.prg + source/rdd/dbf1.c + source/rdd/sdf0.prg + source/rdd/sdf1.c + source/rdd/delim0.prg + source/rdd/delim1.c + source/rdd/dbfntx/dbfntx0.prg + source/rdd/dbfntx/dbfntx1.c + tests/working/testrdd.prg + + Added new functions, run-time errors and update function list. + +19990818-16:16 EDT Paul Tucker + * source/rtl/console.c source/rtl/gtapi.c source/rtl/gt/gtwin.c + * fixes to my fixes + * makefile.vc + + source/debug/tbrwtext.prg + +19990818-14:33 EDT Paul Tucker + * source/rtl/console.c + * source/rtl/gtapi.c + * a number of small changes to improve speed. + * source/rtl/gt/gtwin.c + * correction to cursor positioning when dispend called + * tests/working/dirtest.prg + * comment out (for now) asort + it works, but it's rather slow on a larger directory + +19990818-14:13 GMT+1 Bruno Cantero + * include/rddapi.h + source/rdd/dbcmd.c + source/rdd/dbf1.c + source/rdd/sdf1.c + source/rdd/delim1.c + source/rdd/dbfntx/dbfntx1.c + Added new functions + +19990818-03:00 GMT+1 Victor Szel + + * source/compiler/harbour.y + ! Fixed "incorrect pcode" error with /gh switch and certain .prg files. + (Thanks to: Ryszard Glab ) + + * source/compiler/harbour.y + + Invalid pcode error now shows the failing pcode number. + + * source/vm/hvm.c + + TODO: added to include the actual unsupported pcode in the error + message. + + * include/run_exp.h + include/initsymc.h + include/initsymd.h + source/vm/hvm.c + source/rtl/memvars.c + source/rtl/math.c + source/rtl/arrays.c + source/rtl/console.c + source/rtl/dates.c + source/rtl/do.c + source/rtl/errorapi.c + source/rtl/filesys.c + source/rtl/strings.c + + Standard name registration method added (hvm.c). + ! Completed init tables so that all declared Harbour function get + registered. + + * include/run_exp.h + + ACHOICE added. + + * source/compiler/harbour.y + source/compiler/harbour.l + source/rtl/itemapi.c + source/rdd/dbcmd.c + * Some tricks used to suppress unused variable warnings changed + to HB_SYMBOL_UNUSED(). + +19990817-15:36 EDT Paul Tucker + * source/debug/tbrwtext.prg + * modified to with with cr/lf or just lf + +19990817-21:10 GMT+1 Antonio Linares + * source/rtl/errorsys.prg + * public getlist := {} uncommented. + +19990817-14:26 EDT Paul Tucker + * source/debug/Makefile + + tbrwtext.prg + +19990817-20:51 GMT+1 Antonio Linares + * source/rtl/tbrowse.prg + * Added lHeaders := .f. at method New(). + * source/rtl/tbcolumn.prg + * Small fix on nWidth do case otherwise. + +19990817-20:35 GMT+2 Ryszard Glab + + *source/compiler/harbour.y + * corrected code used to generate HB_P_ENDPROC - the declared + length of function/procedure is now equal to the number of bytes + written into HRB file - some comments added + + *source/runner/runner.c + * corrected reading of function/procedure body (it was trying to + read (size+1) bytes) + * the MAIN procedure is defined if HARBOUR_START_PROCEDURE is + defined - the runner works with GCC/Linux now + * corrected code used to call (_INITSTATIC) function - inside + this function there is no access to passed parameters then + there is no need to pass them - static variables can be + initialized using literal values only + +19990817-20:14 GMT+1 Victor Szel + * tests/working/Makefile + tests/working/colorind.prg (content moved to rtl_test.prg) + tests/working/rtl_test.prg + tests/working/testhbf.prg + tests/working/and_or.prg + ! Starting procedure name changed to Main() so Win32/GCC is also able to + run them. + * Some minor changes + +19990817-13:50 EDT David G. Holm + * config/dos/global.cf + + Added code to leave COMSPEC alone instead of changing '\' to + '/' for bcc31, because NT chokes on '/' when using the Cygwin + GNU Make System to build the Borland C 3.1 version of Harbour. + * source/rtl/console.c + + Surrounded 'if( isatty( fileno( stdout ) ) )' in hb_outstd() + with '#ifndef __CYGWIN__' and '#endif'. + ! Corrected 'if( isatty( fileno( stdout ) ) )' in hb_outerr() + to check stderr instead of stdout. + + Surrounded 'if( isatty( fileno( stderr ) ) )' in hb_outerr() + with #ifndef '__CYGWIN__' and '#endif'. + * source/runner/runner.c + ! Added ')' that was missing from a conditional test. + * tests/working/dates4.prg + * Moved output of extra CR/LF pair in CheckDate() subroutine to + after the __Accept() call, because __Accept() already outputs + a CR/LF pair before displaying the prompt. + +19990817-17:13 GMT+1 Antonio Linares + + source/debug/tbrwtext.prg + * Class TBrwText for browsing debugger source code + * source/debug/debugger.prg + * Improved + * makefile.b32 + * TBrwText module added + +19990817-13:20 GMT+1 Antonio Linares + * include/classes.ch + * extern added, so now the SuperClass symbol is properly linked. + +19990817-07:30 GMT+1 Victor Szel + * source/vm/hvm.c + source/rtl/errorapi.c + source/rtl/classes.c + source/rtl/fm.c + source/rtl/itemapi.c + source/rtl/transfrm.c + include/error.ch + + printf()s changed to a call to hb_errInternal() instead. + * hb_callStackShow() modified so that it uses the same format as + the standard error handler. + + * include/initsymc.h + include/initsymd.h + source/rtl/errorapi.c + + Harbour callable __errRT_BASE() function added. + + * include/errorapi.h + source/rdd/dbcmd.c + source/rtl/errorapi.c + source/rtl/arrays.c + source/rtl/classes.c + source/rtl/copyfile.c + source/rtl/dates.c + source/rtl/do.c + source/rtl/errorapi.c + source/rtl/filesys.c + source/rtl/inkey.c + source/rtl/math.c + source/rtl/memvars.c + source/rtl/set.c + source/rtl/strings.c + source/rtl/transfrm.c + source/tools/dates2.c + source/vm/hvm.c + * hb_error*() -> hb_err*() + - removed obsolete hb_errorNat*() prototypes. + + * include/hberrors.h + include/hbpp.h + source/compiler/harbour.y + source/hbpp/*.c + source/hbpp/stdalone/*.c + + Added the ability to display warnings in standard format. + ! Adjusted and corrected to help display of HBPP.EXE + + * source/rtl/objfunc.prg + doc/subcodes.txt + * Got rid of the QOUT() type runtime-error messages, there's now + a more comprehensive, standard error checking system, which throws + Harbour errors. + ! Some small bugs fixed. (checking argument after usage, additional + parameters passed in one place - typo) + + * include/hboo.ch + source/rtl/objfunc.prg + source/rtl/tclass.prg + source/tools/stringp.prg + * DATA_VAL -> DATA_VALUE + +19990816-21:57 GMT+1 Victor Szel + * source/rtl/console.c + tests/working/colorind.prg + + Added standard header to __ColorIndex() + ! Some Lint warnings fixed. + + Some tests added. + * include/hbdefs.h + include/extend.h + ! Some Lint warnings fixed. + * include/Makefile + + Added hboo.ch + +19990816-22:15 GMT+3 Alexander Kresin + * source/rtl/tbrowse.prg + * tests/working/testbrw.prg + * added functionality - methods PanLeft().PanRight(),Hilite(),DeHilite() + * Up() and Down() now uses Scroll() and Hilite()/DeHilite() instead of + RefreshAll() and RefreshCurrent() + * source/hbpp/hbpp.c + * Bug fixed for new CLASS implementation ( with 'extern' ) + +19990816-12:26 EDT Paul Tucker + * source/rtl/browdb.prg + + copyright info. + + todo info + * makefile.vc + + browdb + + tone + +19990816-15:30 GMT+1 Victor Szel + * source/rtl/errorapi.c + ! Fixed hb_errLaunch() so that it will handle error handler return + values correctly. NOTEs added about this. + +19990816-13:30 CET Eddie Runia + * source/compiler/harbour.y + EndProc error resolved. + PushDouble error resolved. + Padding problem resolved + * source/runner/runner.c; include/run_exp.h + First symbol should be executed. Main renamed to HB_RUN + Init symbol code fixed + +19990816-13:20 GMT+1 Victor Szel + * source/rtl/Makefile + + browdb.prg added + * source/rtl/errorsys.prg + ! Removed ErrorLevel() call. + * source/rtl/itemapi.c + ! hb_evalNew() is no longer making a copy of the passed block/name + parameters, so hb_evalRelease() will properly release that item. + Although not exactly defined in CA-Clipper NG, the example program + suggest that it works like this. CA-Clipper example generated unreleased + blocks in Harbour. + % Some variable scopes optimized. + +19990816-12:39 GMT+1 Antonio Linares + + source/rtl/browdb.prg + * source code for TBrowseDb() + * source/rtl/tbrowse.prg + * removed source code for TBrowseDb() + * harbour/makefile.b32 + * browdb module added. + +19990816-12:03 GMT+1 Antonio Linares + * source/vm/hvm.c + * Enhanced ProcName() returned information. + (it generates the name of the Class and the method). + +19990816-12:03 GMT+1 Antonio Linares + * include/ctoharb.h + + Added new hb_callStackShow() prototype + * source/vm/hvm.c + + Added new hb_callStackShow() function + * improved internal errors reporting information + +19990816-01:11 EDT Paul Tucker + * source/vm/hvm.c + * ProcessObjSymbols -> hb_vmProcessObjSymbols + +19990816-02:45 GMT+1 Victor Szel + + * include/extend.h + source/rtl/classes.c + source/rtl/objfunc.prg + source/rtl/tclass.prg + source/vm/hvm.c + source/tools/stringp.prg + tests/working/dynobj.prg + tests/working/debugtst.prg + tests/working/inherit.prg + tests/working/strip.prg + tests/working/objects.prg + + % Some variables and functions made static in classes.c + ! Completed init symbol list. + + * Names changed to standard ones (they should also work in 10 chars mode): + + ClassCreate -> __clsNew + ClassInstance -> __clsInst + __InstSuper -> __clsInstSuper + ClassAdd -> __clsAddMsg + ClassDel -> __clsDelMsg + ClassMod -> __clsModMsg + WClsDatas -> __cls_CntClsData + __wDatas -> __cls_CntData + __wDataDec -> __cls_DecData + __wDataInc -> __cls_IncData + + aOMethod -> __objGetMethodList + aOData -> __objGetMsgList + aOGet -> __objGetValueList + aOSet -> __objSetValueList + oClone -> __objClone + ClassName -> __objGetClsName + oSend -> __objSendMsg + isMessage -> __objHasMsg + IsData -> __objHasData + IsMethod -> __objHasMethod + oAddMethod -> __objAddMethod + oAddInline -> __objAddInLine + oAddData -> __objAddData + oModMethod -> __objModMethod + oModInline -> __objModInLine + oDelMethod -> __objDelMethod + oDelInline -> __objDelInLine + oDelData -> __objDelData + + ClassH -> __msgClsH + ClassName -> __msgClsName + ClassSel -> __msgClsSel + SelectSuper -> __msgSuper + EvalInline -> __msgEvalInline + GetClassData -> __msgGetClsData + SetClassData -> __msgSetClsData + GetData -> __msgGetData + SetData -> __msgSetData + Virtual -> __msgVirtual + + DictRealloc -> hb_clsDictRealloc + ReleaseClass -> hb_clsRelease + ReleaseClasses -> hb_clsReleaseAll + hb_GetClassName -> hb_objGetClsName + hb_GetMethod -> hb_objGetMethod + hb_isMessage -> hb_objHasMsg + + * include/hboo.ch + source/rtl/classes.c + source/rtl/objfunc.prg + source/rtl/tclass.prg + source/tools/stringp.prg + tests/working/dynobj.prg + tests/working/objects.prg + tests/working/overload.prg + tests/working/objects.prg + + + MET_ and DATA_ declaration moved to one place (hboo.ch). + + * source/rtl/errorapi.c + include/errorapi.h + + % hb_error*() functions are returning void instead of WORD, except for + hb_errorRT_BASE_Ext1(). + + * include/error.ch + include/langapi.h + source/rtl/langapi.c + + + New error code EG_ARRDIMENSION added + + * source/rtl/arrays.c + + ! ARRAY() now properly checks the passed parameters (Clipper compatible). + + ARRAY() TODO: added (to support multiple dimensions) + ! AADD() Fixed parameter handling, throws errors like Clipper. + ! ASIZE() Fixed parameter handling. + ! hb_arrayIns() removed one error to be Clipper compatible. + ! hb_arrayDel() removed one error to be Clipper compatible. + + AFILL(), ASCAN(), AEVAL(), ACOPY() TOFIX: added. + + * source/rtl/transform.c + + ! _exit -> exit (_exit had no prototype, and that was the only place + where it was used) + ! Some BYTE and int changed to BOOL at obviouse place. + ! Some functions made static. + ! Some unused variables removed (lFact*) + +19990815-18:45 GMT+2 Ryszard Glab + + *source/rtl/hvm.c + * added 'hb_vm' prefix to alias/field related functions + * some functions declared 'static' + + *include/ctoharb.h + - removed declarations of internal virtual machine functions + + *source/compiler/harbour.y + * changed an error description for incorrect use of PARAMETERS + statement + * added type casting to compile under C++ compilers + * static frame is correctly generated if static variable + is used in a codeblock only + + *include/extend.h + - removed obsolete declaration of hb_memvarNewSymbol() + + *include/hb_vmpub.h + + added definition of callback function HB_DYNS_FUNC used + to enumerate dynamic symbols + + *source/vm/dynsym.c + + new function hb_dynsymEval() that enumerates dynamic symbols + by calling specified HB_DYNS_FUNC * function + + *source/rtl/memvars.c + + added __MVCLEAR function to release all PRIVATE and PUBLIC + variables (this function is used in CLEAR MEMORY statement) + +19990815-19:59 GMT+3 Alexander Kresin + * source/rtl/tbrowse.prg + * tests/working/testbrw.prg + * added functionality - some methods implemented, added support of + footing, head separator, footer separator, freeze. + Now it seems almost complete. + +19990815-17:40 GMT+1 Victor Szel + * bldodbc.bat + hbodbc.b32 + * moved to /contrib/odbc + * updated for the new locations (not tested though). + +19990814-20:40 GMT+1 Victor Szel + * include/hb_vmpub.h + source/vm/dynsym.c + ! FS_ declarations now included casts, to suppress some + pedantic warnings (Win32/GCC -ansi -pedantic). + * source/hbpp/hbpp.c + source/hbpp/table.c + ! Made them end with newline. (ANSI C req.) + * source/vm/hvm.c + include/rddapi.h + source/hbpp/hbpp.c + ! // comment changed to /**/ (ANSI C req.) + * include/init.h + include/run_exp.h + source/compiler/harbour.y + contrib/odbc/odbc.c + source/hbpp/hbpplib.c + source/rdd/dbfntx/dbfntx1.c + source/rdd/dbcmd.c + source/rdd/dbf1.c + source/rdd/delim1.c + source/rdd/sdf1.c + source/rtl/arrays.c + source/rtl/classes.c + source/rtl/console.c + source/rtl/copyfile.c + source/rtl/dates.c + source/rtl/descend.c + source/rtl/dir.c + source/rtl/environ.c + source/rtl/filesys.c + source/rtl/hardcr.c + source/rtl/inkey.c + source/rtl/math.c + source/rtl/mtran.c + source/rtl/set.c + source/rtl/setcolor.c + source/rtl/strings.c + source/rtl/tone.c + source/rtl/transfrm.c + source/tools/dates2.c + ! Corrected some HB_INIT_SYMBOLS_END() and HB_CALL_ON_STARTUP_END() + macro definitions to include the ending ";". + ! Removed the ";" after + HB_INIT_SYMBOLS_END() and HB_CALL_ON_STARTUP_END() macro references. + (ANSI C req.) (Win32/GCC complained about it with -ansi -pedantic: + "warning: ANSI C does not allow extra `;' outside of a function") + +19990814-19:55 GMT+1 Victor Szel + * ChangeLog + ChangeLog.002 + * Old ChangeLog renamed to ChangeLog.002 + * New ChangeLog created.