*** empty log message ***

This commit is contained in:
Antonio Linares
1999-10-06 05:55:48 +00:00
parent 8a0c491a0f
commit 1fc6222e6c
4 changed files with 300 additions and 252 deletions

View File

@@ -1,178 +1,20 @@
19991006-01:10 EDT David G. Holm <dholm@jsd-llc.com>
19991006-07:41 GMT+1 Antonio Linares <alinares@fivetech.com>
* source/rtl/classes.c
+ Added support for CLASSDATAs INIT clause.
* source/rtl/tclass.prg
+ Added support for CLASSDATAs INIT clause.
* include/hboo.ch
+ new defines added for CLASSDATAS.
* source/rtl/dates.c
% SECONDS() now uses ftime() and localtime() for all platforms.
* source/rtl/environ.c
+ Added HB_VERSION() changes supplied by Jose Lalin with
corrections for the compiler version and revision for
Borland C 3.1 and 5.x, Cygnus GCC with Cygwin,
Cygnus GCC with Mingw32, and Delorie GCC.
* source/rtl/set.c
+ Added HB_DEFPATH() and HB___DEFPATH() supplied by Jose Lalin.
* include/extend.h
* source/rtl/fm.c
% Only use hb_xmemcopy() and hb_xmemset() when the size of an
unsigned int is not the same as the size of an unsigned long.
* include/gtapi.h
* source/rtl/console.c
* source/rtl/gtapi.c
! DEVPOS(), SETPOS(), console cursor position, and console display
functions modified for improved Clipper compatibility.
19991005-23:20 EDT Paul Tucker <ptucker@sympatico.ca>
+ include/harbour.ch
* This file is meant as a repository of defines or translations needed
to allow CA-Clipper to compile programs that take advantage of any
Harbour specific extensions or additions to the language.
Currently, it only handles a substitute for HB_OsNewLine()
19991006-03:02 GMT+1 Victor Szel <info@szelvesz.hu>
* include/extend.h
source/rtl/arrays.c
source/rtl/classes.c
source/rtl/do.c
source/rtl/itemapi.c
source/vm/hvm.c
* hb_g_symEval -> hb_symEval
* source/vm/mainwin.c
* hb_g_* -> hb_*
* source/vm/hvm.c
! aStatics made static now for sure.
* source/rtl/strings.c
! Typo fixed.
* source/rtl/memoline.c
! Formatting fix.
19991005-20:35 EDT Paul Tucker <ptucker@sympatico.ca>
* source/rtl/memoline.c
* add a cast on xgrab call.
19991006-02:26 GMT+1 Victor Szel <info@szelvesz.hu>
* include/set.h
source/rtl/set.c
source/rtl/console.c
source/rtl/transfrm.c
! 64 changed to CLR_STRLEN in set.h
* Separate global "set" variables moved inside HB_SET_STRUCT
* include/caundoc.api
+ _bset, _bmove, _bcopy undocumented Clipper functions added, they are
mapped to mem*() functions.
* source/vm/main*.c
! Typo fixed.
19991006-00:32 GMT+1 Victor Szel <info@szelvesz.hu>
* include/extend.h
source/vm/debug.c
source/vm/hvm.c
* aStatics made static, prefixed with "s_"
__vmVarSGet(), __vmVarSList moved to hvm.c from debug.c
* source/vm/debug.c
include/hbextern.ch
source/runner/stdalone/external.prg
source/debug/debugger.prg
tests/debugtst.prg
* __APARAM -> __vmParLList
__GETLOCAL -> __vmVarLGet
__STATIC -> __vmVarSGet
__ASTATIC -> __vmVarSList
__GLOBALSTACKLEN -> __vmStkGCount
__AGLOBALSTACK -> __vmStkGList
__STACKLEN -> __vmStkLCount
__ASTACK -> __vmStkLList
Functions renamed.
* source/rdd/dbcmd.c
+ zeros changed to NULL/'\0'
* source/debug/debugger.prg
source/rtl/menuto.prg
source/rtl/setkey.prg
source/rtl/tclass.prg
source/rtl/terror.prg
source/tools/fileread.prg
+ static var names prefixed with "s_" in all .PRG modules.
* source/rtl/console.c
doc/funclist.txt
+ DISPOUTAT() undocumented Clipper function added.
* include/extend.h
source/rtl/arrays.c
source/rtl/classes.c
source/rtl/do.c
source/rtl/itemapi.c
source/vm/hvm.c
* symEval -> hb_g_symEval
Global variable prefixed with "hb_g_".
19991005-17:30 EDT Paul Tucker <ptucker@sympatico.ca>
* makefile.vc
+ source/rtl/mlcount
+ source/rtl/memoline
+ source/vm/mainstd (for now)
+ source/rtl/rddord
* gtapi.obj moved to terminal.lib
* duplicate console.obj removed from terminal.lib
(as reported by Gerrit Jan Doornink <gjd@casema.net>)
Tue Oct 05 14:44:16 1999 Gonzalo A. Diethelm <Gonzalo.Diethelm@jda.cl>
* source/rtl/filesys.c (hb_fsTell):
Replaced use of tell() with an equivalent call to lseek(), so that
this is supported under gcc.
19991005-20:34 GMT+1 Victor Szel <info@szelvesz.hu>
* include/hbextern.ch
source/runner/stdalone/external.prg
- One of the two HB_OSNEWLINE removed.
+ source/rtl/memoline.c
source/rtl/Makefile
doc/funclist.txt
+ MEMOLINE() added
(thanks to Ignacio Ortiz de Zúniga <ignacio@fivetech.com>)
!! WARNING !! Please modify non-GNU make files.
19991005-18:20 GMT+1 Victor Szel <info@szelvesz.hu>
+ source/rtl/rddord.prg
source/rtl/Makefile
+ dbCreateIndex()
dbSetIndex()
dbClearIndex()
dbReindex()
dbSetOrder()
IndexExt()
IndexKey()
These will not work yet, since they are simple wrapper to the ord*()
functions. Just like in Clipper.
!! WARNING !! Please modify non-GNU make files.
19991005-18:02 GMT+1 Victor Szel <info@szelvesz.hu>
* tests/rtl_test.prg
+ Added more complete tests for <,>,<=,>=,!= operators.
* source/vm/hvm.c
% hb_vmPopDate() is no more checking the type of the popped value, and
the related unrecoverable error is also removed, since the callers
do this check before each call.
* Some more function grouping, small corrections.
! hb_vmLess(), hb_vmLessEqual(), hb_vmGreater(), hb_vmGreaterEqual()
some cases were not handled, so stack corruption could occure, when
two ARRAY/BLOCK/OBJECT were compared. Fixed.
! hb_vmNotEqual() fixed for ARRAY/OBJECT/BLOCK types.
* source/vm/hvm.c
include/pcode.h
source/compiler/genc.c
source/compiler/genhrb.c
source/compiler/harbour.y
* HB_P_GENARRAY -> HB_P_ARRAYGEN
* HB_P_DIMARRAY -> HB_P_ARRAYDIM
!! WARNING !! Please rebuild all .PRG files, since the pcode values have
changed.
* include/hbver.h
+ Revision set to "a"
* source/compiler/harbour.c
+ isatty.c put back in order.
* source/compiler/main*.c
+ Some small cleanups.
19991006-01:06 GMT+1 Antonio Linares <alinares@fivetech.com>
* makefile.b32
+ mising include source\compiler path compiling harboury.c
* source/rtl/classes.c
+ Added support for CLASSDATAs INIT clause.
* source/rtl/tclass.prg
+ Added support for CLASSDATAs INIT clause.
* include/hboo.ch
+ new defines added for CLASSDATAS.
19991005-14:41 GMT+1 Victor Szel <info@szelvesz.hu>
* tests/run_tsta.bat
@@ -214,11 +56,193 @@ Tue Oct 05 14:44:16 1999 Gonzalo A. Diethelm <Gonzalo.Diethelm@jda.cl>
19991005-12:30 GMT+2 Ryszard Glab <rglab@imid.med.pl>
*source/compiler/harbour.y
* changed some rules to correctly handle the following syntax:
LOCAL cbVar:={|| cbVar}
(the cbVar inside a codeblock is correctly considered a local
variable instead of memvar variable)
* corrected usage info to print LF at the end of message
19991005-08:36 GMT+1 Victor Szel <info@szelvesz.hu>
* source/vm/main*.c
source/vm/Makefile
include/ctoharb.h
! Some cleanup on the new main() functions.
(using header file, fixed CVS headers, added copyright header, removed a TODO,
TO DO -> TODO, Hungarian notation, global var name, 0 -> NULL,
added to GNU makefile, std main return value missing.)
* makefile.b40 (removed)
makefile.b32
make_b40.bat
+ makefile.b40 removed, since from now on makefile.b32 provides
the same functionality when B40 macro is defined. See make_b40.bat.
* *.bat
*.b??
hbpplib.b32 (removed)
+ Further uniformized.
+ hbpp.exe make process uncommented from make_b16.bat.
We will see how it works.
+ hbpplib.b32 incorporated into hbpp.b32
- hbpp.b16 (removed)
makefile.b16
make_b16.bat
- hbpp.b16 removed, since it was not used, and is now incorporated to
makefile.b16.
* source/runner/stdalone/hbrun.prg
+ Using OutStd() instead of QOUT() to enable output redirecting like in
other command line utilites.
19991005-07:55 GMT+1 Antonio Linares <alinares@fivetech.com>
+ New file source/vm/mainstd.c (entry point for std applications)
+ New file source/vm/mainwin.c (entry point for win appplications)
* source/vm/hvm.c
-+ main() renamed to hb_vmInit()
* hb_quit() removed from there and moved to mainstd.c and
mainwin.c respectively.
* makefile.b32
* added support for mainstd.c and mainwin.c modules.
(make_b32.bat tested and works ok).
* tests/bld_b32.bat
* %1 moved to the end of line
* del %1.c removed
(tested and works ok).
19991005-00:13 GMT+1 Victor Szel <info@szelvesz.hu>
* source/compiler/genc.c
! Cosmetic: Some double tabs changed to single ones.
19991004-22:34 GMT+1 Victor Szel <info@szelvesz.hu>
* tests/db_brows.prg
- READEXIT() removed since it's now part of the RTL.
19991004-21:34 GMT+1 Victor Szel <info@szelvesz.hu>
* tests/*.bat
! Reworked, standardized, simplified. Please test them.
Now they resemble to the bin/*.bat batch files.
* tests/buildexe.bat
- Removed since it was obsolete, use bld_b16.bat instead.
19991004-19:54 GMT+1 Victor Szel <info@szelvesz.hu>
* source/rtl/memvars.c
! memvars.ch changed to hbmemvar.ch
* tests/working/*.* moved to tests/*.*
* tests/working/db_brows.*
! Fixed the CVS header, they missed to closing "$"
19991004-19:23 GMT+1 Victor Szel <info@szelvesz.hu>
* tests/broken/*.* moved to tests/working
tests/working/Makefile
* moved to the BAD_PRG_SOURCES
- tests/broken/
- Removed
* tests/working/hscript/*.* moved to samples/hscript
* Moved
* source/rtl/mlcount.c
* BYTE type changed to USHORT.
* Hungarian notation slighly corrected.
19991004-18:58 GMT+1 Victor Szel <info@szelvesz.hu>
+ source/runner/stdalone/hbrun.prg
+ Added (now for sure)
19991004-18:53 GMT+1 Victor Szel <info@szelvesz.hu>
+ include/reserved.ch
+ Added for complete Clipper compatibility, the file is a dummy, so it's
a TODO to replicate to originial functionality.
* include/Makefile
* Updated.
Mon Oct 04 12:52:42 1999 Gonzalo A. Diethelm <Gonzalo.Diethelm@jda.cl>
* tests/working/Makefile:
Added missing '\' after db_brows.ch.
Changed spaces to tabs.
19991004-18:42 GMT+1 Victor Szel <info@szelvesz.hu>
* include/classes.ch -> include/hbclass.ch
include/external.ch -> include/hbextern.ch
include/memvars.ch -> include/hbmemvar.ch
source/debug/debugger.prg
source/debug/tbrwtext.prg
source/rtl/tbcolumn.prg
source/rtl/tbrowse.prg
source/rtl/tget.prg
source/rtl/tgetlist.prg
tests/working/classch.prg
source/runner/stdalone/hbrun.prg
source/rtl/memvarbl.prg
source/rtl/menuto.prg
* Non-Clipper compatible Harbour .CH filenames prefixed with "HB" to avoid
possible name collisions with existing header files.
19991004-18:06 GMT+1 Victor Szel <info@szelvesz.hu>
+ source/rtl/mlcount.c
source/rtl/Makefile
doc/funclist.txt
+ MLCOUNT() added
(thanks to Ignacio Ortiz de Zúniga <ignacio@fivetech.com>)
- source/runner/stdalone/runner.prg
- Removed (now for sure)
19991004-16:25 GMT+1 Victor Szel <info@szelvesz.hu>
* source/runner/stdalone/runner.prg -> hbrun.prg
source/runner/stdalone/Makefile
runner.b32
makefile.vc
tests/working/hbrun.bat -> hbrunprg.bat
tests/working/run_all.bat
tests/working/test_all.prg
* runner.exe renamed to hbrun.exe to better fit into the final
executable naming style (harbour/hbpp/hbrun)
19991004-15:15 GMT+1 Victor Szel <info@szelvesz.hu>
* source/hbpp -> source/pp
source/Makefile
source/pp/Makefile
source/pp/stdalone/Makefile
source/compiler/Makefile
source/runner/stdalone/Makefile
tests/working/Makefile
makefile.*
*.b??
* source/hbpp changed to source/pp.
19991004-14:48 GMT+1 Victor Szel <info@szelvesz.hu>
* tests/working/*.bat
*.b??
makefile.vc
libs/*
lib/*
* libs directory name changed to lib, the win16 and win32
subdirs have been removed.
* win32 dir is no longer needed, since now the windows terminal.lib
is named termwin.lib.
source/rtl/tgetlist.prg
doc/funclist.txt
+ READINSERT() function added. (Thanks to Matteo Baccan)
* source/rtl/filesys.c
include/filesys.h
+ hb_fsTell() added to the header file
% hb_fsSetDev*() now calls hb_fsSetDevMode(), so some platform specific
code could be eliminated.
% Some simplification in FSETDEVMOD()
+ Added missing HB_ prefix to FSETDEVMOD()
19991005-12:30 GMT+2 Ryszard Glab <rglab@imid.med.pl>
*source/compiler/harbour.y
<<<<<<< ChangeLog
* changed some rules to correctly handle the following syntax:
LOCAL cbVar:={|| cbVar}
(the cbVar inside a codeblock is correctly considered a local
variable instead of memvar variable)
* corrected usage info to print LF at the end of message
=======
* changed some rules to correctly handle the following syntax:
LOCAL cbVar:={|| cbVar}
(the cbVar inside a codeblock is correctly considered a local
variable instead of memvar variable)
* corrected usage info to print LF at the end of message
>>>>>>> 1.1131
19991005-08:36 GMT+1 Victor Szel <info@szelvesz.hu>
* source/vm/main*.c

View File

@@ -38,14 +38,17 @@
#ifndef _HBOO_CH
#define _HBOO_CH
#define MET_METHOD 0
#define MET_DATA 1
#define MET_CLASSDATA 2
#define MET_INLINE 3
#define MET_VIRTUAL 4
#define MET_SUPER 5
#define MET_METHOD 0
#define MET_DATA 1
#define MET_CLASSDATA 2
#define MET_INLINE 3
#define MET_VIRTUAL 4
#define MET_SUPER 5
#define DATA_SYMBOL 1
#define DATA_VALUE 2
#define DATA_SYMBOL 1
#define DATA_VALUE 2
#define CLASSDATA_SYMBOL 1
#define CLASSDATA_VALUE 2
#endif /* _HBOO_CH */

View File

@@ -429,11 +429,20 @@ HARBOUR HB___CLSADDMSG( void )
if( pMessage->pSymbol->szName[ 0 ] == '_' )
pNewMeth->pFunction = hb___msgSetClsData;
else
{
PHB_ITEM pInit = hb_param( 5, IT_ANY );
pNewMeth->pFunction = hb___msgGetClsData;
if( pInit && !IS_NIL( pInit )) /* Initializer found */
{
pNewMeth->pInitValue = hb_itemNew( NULL );
hb_itemCopy( pNewMeth->pInitValue, pInit );
}
}
break;
case MET_INLINE:
pNewMeth->uiData = hb_arrayLen( pClass->pInlines ) + 1;
hb_arraySize( pClass->pInlines, pNewMeth->uiData );
hb_arraySet( pClass->pInlines, pNewMeth->uiData,
@@ -600,7 +609,12 @@ HARBOUR HB___CLSINST( void )
for( uiAt = 0; uiAt < uiLimit; uiAt++, pMeth++ )
if( pMeth->pInitValue )
hb_itemArrayPut( &stack.Return, pMeth->uiData, pMeth->pInitValue );
{
if( pMeth->pFunction != hb___msgGetClsData ) /* is a DATA */
hb_itemArrayPut( &stack.Return, pMeth->uiData, pMeth->pInitValue );
else /* it is a ClassData */
hb_arraySet( pClass->pClassDatas, pMeth->uiData, pMeth->pInitValue );
}
}
}

View File

@@ -23,7 +23,7 @@
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* MERCHANTABILITY or FITNESS for A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
@@ -54,9 +54,9 @@
FUNCTION TClass()
STATIC s_hClass := NIL
STATIC s_hClass := nil
IF s_hClass == NIL
if s_hClass == nil
s_hClass := __clsNew( "TCLASS", 10 )
__clsAddMsg( s_hClass, "New", @New(), MET_METHOD )
@@ -90,15 +90,15 @@ FUNCTION TClass()
__clsAddMsg( s_hClass, "_uInit", 9, MET_DATA )
__clsAddMsg( s_hClass, "cType", 10, MET_DATA )
__clsAddMsg( s_hClass, "_cType", 10, MET_DATA )
ENDIF
endif
RETURN __clsInst( s_hClass )
return __clsInst( s_hClass )
//----------------------------------------------------------------------------//
STATIC FUNCTION New( cClassName, cSuper )
static function New( cClassName, cSuper )
LOCAL Self := QSelf()
local Self := QSelf()
::cName := Upper( cClassName )
::aDatas := {}
@@ -106,30 +106,30 @@ STATIC FUNCTION New( cClassName, cSuper )
::aClsDatas := {}
::aInlines := {}
::aVirtuals := {}
IF ISCHARACTER( cSuper )
if ISCHARACTER( cSuper )
::cSuper := cSuper
ENDIF
endif
RETURN Self
return Self
//----------------------------------------------------------------------------//
STATIC FUNCTION Create()
static function Create()
LOCAL Self := QSelf()
LOCAL n
LOCAL nLen
LOCAL nLenDatas := Len( ::aDatas )
LOCAL nDataBegin := 0
LOCAL nClassBegin := 0
LOCAL hClass
LOCAL hSuper
LOCAL ahSuper := {}
local Self := QSelf()
local n
local nLen
local nLenDatas := Len( ::aDatas )
local nDataBegin := 0
local nClassBegin := 0
local hClass
local hSuper
local ahSuper := {}
IF ::cSuper == NIL
if ::cSuper == nil
hClass := __clsNew( ::cName, nLenDatas )
ELSE // Single inheritance
else // Single inheritance
hSuper := __clsInstSuper( Upper( ::cSuper ) )
hClass := __clsNew( ::cName, nLenDatas, hSuper )
// Add class casts
@@ -138,121 +138,128 @@ STATIC FUNCTION Create()
nDataBegin := __cls_CntData( hSuper ) // Get offset for new DATAs
nClassBegin := __cls_CntClsData( hSuper ) // Get offset for new ClassData
ENDIF
endif
::hClass := hClass
FOR n := 1 TO nLenDatas
for n := 1 to nLenDatas
__clsAddMsg( hClass, ::aDatas[ n ][ DATA_SYMBOL ], n + nDataBegin, MET_DATA, ;
::aDatas[ n ][ DATA_VALUE ] )
__clsAddMsg( hClass, "_" + ::aDatas[ n ][ DATA_SYMBOL ], n + nDataBegin, MET_DATA )
NEXT
__clsAddMsg( hClass, "_" + ::aDatas[ n ][ DATA_SYMBOL ], n + nDataBegin,;
MET_DATA )
next
nLen := Len( ::aMethods )
FOR n := 1 TO nLen
for n := 1 to nLen
__clsAddMsg( hClass, ::aMethods[ n ][ 1 ], ::aMethods[ n ][ 2 ], MET_METHOD )
NEXT
next
nLen := Len( ::aClsDatas )
FOR n := 1 TO nLen
__clsAddMsg( hClass, ::aClsDatas[ n ], n + nClassBegin, MET_CLASSDATA )
__clsAddMsg( hClass, "_" + ::aClsDatas[ n ], n + nClassBegin, MET_CLASSDATA )
NEXT
for n := 1 to nLen
__clsAddMsg( hClass, ::aClsDatas[ n ][ CLASSDATA_SYMBOL ], n + nClassBegin,;
MET_CLASSDATA, ::aClsDatas[ n ][ CLASSDATA_VALUE ] )
__clsAddMsg( hClass, "_" + ::aClsDatas[ n ][ CLASSDATA_SYMBOL ],;
n + nClassBegin, MET_CLASSDATA )
next
nLen := Len( ::aInlines )
FOR n := 1 TO nLen
for n := 1 to nLen
__clsAddMsg( hClass, ::aInlines[ n ][ 1 ], ::aInlines[ n ][ 2 ],;
MET_INLINE )
NEXT
next
// __clsAddMsg( hClass, Upper( ::cName ), {|self|self}, MET_INLINE ) // Useful?
nLen := Len( ::aVirtuals )
FOR n := 1 TO nLen
for n := 1 to nLen
__clsAddMsg( hClass, ::aVirtuals[ n ], n, MET_VIRTUAL )
NEXT
next
RETURN NIL
return nil
//----------------------------------------------------------------------------//
STATIC FUNCTION Instance()
static function Instance()
LOCAL Self := QSelf()
local Self := QSelf()
RETURN __clsInst( ::hClass )
return __clsInst( ::hClass )
//----------------------------------------------------------------------------//
STATIC FUNCTION AddData( cData, xInit ) /* xInit is initializer */
static function AddData( cData, xInit ) /* xInit is initializer */
LOCAL Self := QSelf()
local Self := QSelf()
IF ::uInit != NIL
if ::uInit != nil
xInit := ::uInit
ENDIF
endif
aAdd( ::aDatas, { cData, xInit } )
AAdd( ::aDatas, { cData, xInit } )
RETURN NIL
return nil
//----------------------------------------------------------------------------//
STATIC FUNCTION AddClassData( cData )
static function AddClassData( cData, xInit )
LOCAL Self := QSelf()
local Self := QSelf()
aAdd( ::aClsDatas, cData )
if ::uInit != nil
xInit := ::uInit
endif
RETURN NIL
AAdd( ::aClsDatas, { cData, xInit } )
return nil
//----------------------------------------------------------------------------//
STATIC FUNCTION AddInline( cMethod, bCode )
static function AddInline( cMethod, bCode )
LOCAL Self := QSelf()
local Self := QSelf()
aAdd( ::aInlines, { cMethod, bCode } )
AAdd( ::aInlines, { cMethod, bCode } )
RETURN NIL
return nil
//----------------------------------------------------------------------------//
STATIC FUNCTION AddMethod( cMethod, nFuncPtr )
static function AddMethod( cMethod, nFuncPtr )
LOCAL Self := QSelf()
local Self := QSelf()
aAdd( ::aMethods, { cMethod, nFuncPtr } )
AAdd( ::aMethods, { cMethod, nFuncPtr } )
RETURN NIL
return nil
//----------------------------------------------------------------------------//
STATIC FUNCTION AddVirtual( cMethod )
static function AddVirtual( cMethod )
LOCAL Self := QSelf()
local Self := QSelf()
aAdd( ::aVirtuals, cMethod )
AAdd( ::aVirtuals, cMethod )
RETURN NIL
return nil
//----------------------------------------------------------------------------//
STATIC FUNCTION SetInit( uValue )
static function SetInit( uValue )
LOCAL Self := QSelf()
local Self := QSelf()
::uInit := uValue
RETURN NIL
return nil
//----------------------------------------------------------------------------//
STATIC FUNCTION SetType( cType )
static function SetType( cType )
LOCAL Self := QSelf()
local Self := QSelf()
::cType := cType
RETURN NIL
return nil
//----------------------------------------------------------------------------//