From f64ac0bc42928ad81bccacb3eaf8d56585f30dbf Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sun, 20 Feb 2000 13:29:08 +0000 Subject: [PATCH] 20000220-14:30 GMT+1 Victor Szakats --- harbour/ChangeLog | 17 +++ harbour/bin/bld_b32.bat | 2 +- harbour/bin/bld_b32w.bat | 2 +- harbour/makefile.bc | 2 +- harbour/source/rtl/objfunc.prg | 246 ++++++++++++++------------------- 5 files changed, 121 insertions(+), 148 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 45de44afda..8882904341 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,19 @@ +20000220-14:30 GMT+1 Victor Szakats + * ../FT_HELPC.PRG + ../HA.LNK + ../bldfthe.bat + ! Trying to remove trash from the root of the repository. + * source/rtl/objfunc.prg + - Removed the runtime errors if the method/data to be deleted doesn't + exist, or the method/data to be added already exist. Reasons: These + error cases are better handled manually by the developer if needed. + ! PLEASE UPDATE THE DOCS ! + * makefile.bc + bin/bld_b32.bat + bin/bld_b32w.bat + ! Removed -5 option since this breaks Harbour on 386/486. Add + this to your local BCC_OPT setting if needed. + 20000220-12:22 GMT+2 Chen Kedem * doc/cvs_ssh.txt + Add CVS ID @@ -63,6 +79,7 @@ Small formating by Brian Hays *source/rtl/typefile.prg *Fixed to use the Habour RTL + 20000218-00:04 GMT+1 Victor Szakats - source/runner/stdalone/external.prg * makefile.bc diff --git a/harbour/bin/bld_b32.bat b/harbour/bin/bld_b32.bat index 5390faa72a..e5d8b49e4a 100644 --- a/harbour/bin/bld_b32.bat +++ b/harbour/bin/bld_b32.bat @@ -4,5 +4,5 @@ rem $Id$ rem ..\bin\harbour %1 %2 %3 /n /i..\include -bcc32 %1.c -e%1.exe -5 -O2 -I..\include -L..\lib\b32 common.lib dbfcdx.lib dbfntx.lib debug.lib harbour.lib pp.lib macro.lib runner.lib terminal.lib tools.lib +bcc32 %1.c -e%1.exe -O2 -I..\include -L..\lib\b32 common.lib dbfcdx.lib dbfntx.lib debug.lib harbour.lib pp.lib macro.lib runner.lib terminal.lib tools.lib rem del %1.c diff --git a/harbour/bin/bld_b32w.bat b/harbour/bin/bld_b32w.bat index 77093c5674..2768344e47 100644 --- a/harbour/bin/bld_b32w.bat +++ b/harbour/bin/bld_b32w.bat @@ -4,5 +4,5 @@ rem $Id$ rem ..\bin\harbour %1 %2 %3 /n /i..\include -bcc32 %1.c -e%1.exe -O2 -I..\include -L..\lib\b32 -5 -tW common.lib dbfcdx.lib dbfntx.lib debug.lib harbour.lib pp.lib macro.lib runner.lib terminal.lib tools.lib +bcc32 %1.c -e%1.exe -O2 -I..\include -L..\lib\b32 -tW common.lib dbfcdx.lib dbfntx.lib debug.lib harbour.lib pp.lib macro.lib runner.lib terminal.lib tools.lib rem del %1.c diff --git a/harbour/makefile.bc b/harbour/makefile.bc index 7892f90c48..8733fd0283 100644 --- a/harbour/makefile.bc +++ b/harbour/makefile.bc @@ -23,7 +23,7 @@ BCC_OPT = $(BCC_OPT) -O2 # Borland C/C++ (Windows 32 bits) BCC_EXE = bcc32 -BCC_OPT = $(BCC_OPT) -DHARBOUR_USE_WIN_GTAPI -5 +BCC_OPT = $(BCC_OPT) -DHARBOUR_USE_WIN_GTAPI TASM_EXE = tasm32 OBJ_DIR = obj\b32 LIB_DIR = lib\b32 diff --git a/harbour/source/rtl/objfunc.prg b/harbour/source/rtl/objfunc.prg index 4bb62815ce..e4d5459c1f 100644 --- a/harbour/source/rtl/objfunc.prg +++ b/harbour/source/rtl/objfunc.prg @@ -86,15 +86,14 @@ * $END$ */ -function __objHasData( oObject, cSymbol ) +FUNCTION __objHasData( oObject, cSymbol ) - if !ISOBJECT( oObject ) .or. ; - !ISCHARACTER( cSymbol ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif + IF !ISOBJECT( oObject ) .OR. !ISCHARACTER( cSymbol ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ENDIF -return __objHasMsg( oObject, cSymbol ) .and. ; - __objHasMsg( oObject, "_" + cSymbol ) + RETURN __objHasMsg( oObject, cSymbol ) .AND. ; + __objHasMsg( oObject, "_" + cSymbol ) /* $DOC$ * $FUNCNAME$ @@ -131,15 +130,14 @@ return __objHasMsg( oObject, cSymbol ) .and. ; * $END$ */ -function __objHasMethod( oObject, cSymbol ) +FUNCTION __objHasMethod( oObject, cSymbol ) - if !ISOBJECT( oObject ) .or. ; - !ISCHARACTER( cSymbol ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif + IF !ISOBJECT( oObject ) .OR. !ISCHARACTER( cSymbol ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ENDIF -return __objHasMsg( oObject, cSymbol ) .and. ; - !__objHasMsg( oObject, "_" + cSymbol ) + RETURN __objHasMsg( oObject, cSymbol ) .AND. ; + !__objHasMsg( oObject, "_" + cSymbol ) /* $DOC$ * $FUNCNAME$ @@ -188,17 +186,16 @@ return __objHasMsg( oObject, cSymbol ) .and. ; * $END$ */ -function __objGetMsgList( oObject, lDataMethod ) +FUNCTION __objGetMsgList( oObject, lDataMethod ) + LOCAL aInfo + LOCAL aData + LOCAL n + LOCAL nLen + LOCAL lFoundDM // Found DATA ? - local aInfo - local aData - local n - local nLen - local lFoundDM // Found DATA ? - - if !ISOBJECT( oObject ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif + IF !ISOBJECT( oObject ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ENDIF IF !ISLOGICAL( lDataMethod ) lDataMethod := .T. @@ -209,23 +206,23 @@ function __objGetMsgList( oObject, lDataMethod ) n := 1 nLen := Len( aInfo ) - do while n <= nLen .and. Substr( aInfo[ n ], 1, 1 ) != "_" + DO WHILE n <= nLen .AND. Substr( aInfo[ n ], 1, 1 ) != "_" /* If in range and no set function found yet ( set functions */ /* begin with a leading underscore ). */ - lFoundDM := !Empty( aScan( aInfo, "_" + aInfo[ n ], n + 1 ) ) + lFoundDM := !Empty( AScan( aInfo, "_" + aInfo[ n ], n + 1 ) ) /* Find position of matching set function in array with all symbols */ - if lFoundDM == lDataMethod // If found -> DATA + IF lFoundDM == lDataMethod // If found -> DATA // else METHOD - aAdd( aData, aInfo[ n ] ) - endif + AAdd( aData, aInfo[ n ] ) + ENDIF n++ - enddo + ENDDO -return aData + RETURN aData /* $DOC$ * $FUNCNAME$ @@ -264,13 +261,13 @@ return aData * $END$ */ -function __objGetMethodList( oObject ) +FUNCTION __objGetMethodList( oObject ) - if !ISOBJECT( oObject ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif + IF !ISOBJECT( oObject ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ENDIF -return __objGetMsgList( oObject, .F. ) + RETURN __objGetMsgList( oObject, .F. ) /* $DOC$ * $FUNCNAME$ @@ -312,21 +309,20 @@ return __objGetMsgList( oObject, .F. ) * $FILES$ * Header file is hboo.ch * $SEEALSO$ - * __ObjGetMethodList(),__objGetMsgList(),__objHasData(),__objHasMethod(),__ObjSetValueList() + * __objGetMethodList(),__objGetMsgList(),__objHasData(),__objHasMethod(),__ObjSetValueList() * $END$ */ -function __objGetValueList( oObject, aExcept ) +FUNCTION __objGetValueList( oObject, aExcept ) + LOCAL aDataSymbol + LOCAL nLen + LOCAL aData + LOCAL cSymbol + LOCAL n - local aDataSymbol - local nLen - local aData - local cSymbol - local n - - if !ISOBJECT( oObject ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif + IF !ISOBJECT( oObject ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ENDIF IF !ISARRAY( aExcept ) aExcept := {} @@ -336,14 +332,14 @@ function __objGetValueList( oObject, aExcept ) nLen := Len( aDataSymbol ) aData := {} - for n := 1 to nLen + FOR n := 1 to nLen cSymbol := aDataSymbol[ n ] - if Empty( aScan( aExcept, cSymbol ) ) - aAdd( aData, { cSymbol, __objSendMsg( oObject, cSymbol ) } ) - endif - next n + IF Empty( AScan( aExcept, cSymbol ) ) + AAdd( aData, { cSymbol, __objSendMsg( oObject, cSymbol ) } ) + ENDIF + NEXT -return aData + RETURN aData /* $DOC$ * $FUNCNAME$ @@ -396,16 +392,15 @@ return aData * $END$ */ -function __ObjSetValueList( oObject, aData ) +FUNCTION __ObjSetValueList( oObject, aData ) - if !ISOBJECT( oObject ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif + IF !ISOBJECT( oObject ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ELSE + AEval( aData, {| aItem | __objSendMsg( oObject, "_" + aItem[ HB_OO_DATA_SYMBOL ], aItem[ HB_OO_DATA_VALUE ] ) } ) + ENDIF - aEval( aData,; - {| aItem | __objSendMsg( oObject, "_" + aItem[ HB_OO_DATA_SYMBOL ], aItem[ HB_OO_DATA_VALUE ] ) } ) - -return oObject + RETURN oObject /* $DOC$ * $FUNCNAME$ @@ -461,21 +456,15 @@ return oObject * $END$ */ -function __objAddMethod( oObject, cSymbol, nFuncPtr ) +FUNCTION __objAddMethod( oObject, cSymbol, nFuncPtr ) - if !ISOBJECT( oObject ) .or. ; - !ISCHARACTER( cSymbol ) .or. ; - !ISNUMBER( nFuncPtr ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif - - if !__objHasMsg( oObject, cSymbol ) + IF !ISOBJECT( oObject ) .OR. !ISCHARACTER( cSymbol ) .OR. !ISNUMBER( nFuncPtr ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ELSEIF !__objHasMsg( oObject, cSymbol ) __clsAddMsg( oObject:ClassH, cSymbol, nFuncPtr, HB_OO_MSG_METHOD ) - else - __errRT_BASE(EG_ARG, 3103, "Already existing symbol in class", ProcName( 0 ) ) - endif + ENDIF -return oObject + RETURN oObject /* $DOC$ * $FUNCNAME$ @@ -518,20 +507,15 @@ return oObject * $END$ */ -function __objAddInline( oObject, cSymbol, bInline ) +FUNCTION __objAddInline( oObject, cSymbol, bInline ) - if !ISOBJECT( oObject ) .or. ; - !ISCHARACTER( cSymbol ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif - - if !__objHasMsg( oObject, cSymbol ) + IF !ISOBJECT( oObject ) .OR. !ISCHARACTER( cSymbol ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ELSEIF !__objHasMsg( oObject, cSymbol ) __clsAddMsg( oObject:ClassH, cSymbol, bInline, HB_OO_MSG_INLINE ) - else - __errRT_BASE(EG_ARG, 3103, "Already existing symbol in class", ProcName( 0 ) ) - endif + ENDIF -return oObject + RETURN oObject /* $DOC$ * $FUNCNAME$ @@ -573,26 +557,20 @@ return oObject * $END$ */ -function __objAddData( oObject, cSymbol ) +FUNCTION __objAddData( oObject, cSymbol ) + LOCAL nSeq - local nSeq - - if !ISOBJECT( oObject ) .or. ; - !ISCHARACTER( cSymbol ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif - - if !__objHasMsg( oObject, cSymbol ) .and. ; + IF !ISOBJECT( oObject ) .OR. !ISCHARACTER( cSymbol ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ELSEIF !__objHasMsg( oObject, cSymbol ) .AND. ; !__objHasMsg( oObject, "_" + cSymbol ) nSeq := __cls_IncData( oObject:ClassH ) // Allocate new Seq# __clsAddMsg( oObject:ClassH, cSymbol, nSeq, HB_OO_MSG_DATA ) __clsAddMsg( oObject:ClassH, "_" + cSymbol, nSeq, HB_OO_MSG_DATA ) - else - __errRT_BASE(EG_ARG, 3103, "Already existing symbol in class", ProcName( 0 ) ) - endif + ENDIF -return oObject + RETURN oObject /* $DOC$ * $FUNCNAME$ @@ -662,21 +640,15 @@ return oObject * $END$ */ -function __objModMethod( oObject, cSymbol, nFuncPtr ) +FUNCTION __objModMethod( oObject, cSymbol, nFuncPtr ) - if !ISOBJECT( oObject ) .or. ; - !ISCHARACTER( cSymbol ) .or. ; - !ISNUMBER( nFuncPtr ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif - - if __objHasMethod( oObject, cSymbol ) + IF !ISOBJECT( oObject ) .OR. !ISCHARACTER( cSymbol ) .OR. !ISNUMBER( nFuncPtr ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ELSEIF __objHasMethod( oObject, cSymbol ) __clsModMsg( oObject:ClassH, cSymbol, nFuncPtr ) - else - __errRT_BASE(EG_ARG, 3102, "Not existing symbol in class", ProcName( 0 ) ) - endif + ENDIF -return oObject + RETURN oObject /* $DOC$ * $FUNCNAME$ @@ -724,21 +696,15 @@ return oObject * $END$ */ -function __objModInline( oObject, cSymbol, bInline ) +FUNCTION __objModInline( oObject, cSymbol, bInline ) - if !ISOBJECT( oObject ) .or. ; - !ISCHARACTER( cSymbol ) .or. ; - !ISBLOCK( bInline ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif - - if __objHasMethod( oObject, cSymbol ) + IF !ISOBJECT( oObject ) .OR. !ISCHARACTER( cSymbol ) .OR. !ISBLOCK( bInline ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ELSEIF __objHasMethod( oObject, cSymbol ) __clsModMsg( oObject:ClassH, cSymbol, bInline ) - else - __errRT_BASE(EG_ARG, 3102, "Not existing symbol in class", ProcName( 0 ) ) - endif + ENDIF -return oObject + RETURN oObject /* $DOC$ * $FUNCNAME$ @@ -793,20 +759,15 @@ return oObject * $END$ */ -function __objDelMethod( oObject, cSymbol ) +FUNCTION __objDelMethod( oObject, cSymbol ) - if !ISOBJECT( oObject ) .or. ; - !ISCHARACTER( cSymbol ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif - - if __objHasMethod( oObject, cSymbol ) + IF !ISOBJECT( oObject ) .OR. !ISCHARACTER( cSymbol ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ELSEIF __objHasMethod( oObject, cSymbol ) __clsDelMsg( oObject:ClassH, cSymbol ) - else - __errRT_BASE(EG_ARG, 3102, "Not existing symbol in class", ProcName( 0 ) ) - endif + ENDIF -return oObject + RETURN oObject /* $DOC$ * $FUNCNAME$ @@ -859,8 +820,8 @@ return oObject * $END$ */ -function __objDelInline( oObject, cSymbol ) -return __objDelMethod( oObject, cSymbol ) // Same story +FUNCTION __objDelInline( oObject, cSymbol ) + RETURN __objDelMethod( oObject, cSymbol ) // Same story /* $DOC$ * $FUNCNAME$ @@ -901,20 +862,15 @@ return __objDelMethod( oObject, cSymbol ) // Same story * $END$ */ -function __objDelData( oObject, cSymbol ) +FUNCTION __objDelData( oObject, cSymbol ) - if !ISOBJECT( oObject ) .or. ; - !ISCHARACTER( cSymbol ) - __errRT_BASE(EG_ARG, 3101, NIL, ProcName( 0 ) ) - endif - - if __objHasData( oObject, cSymbol ) + IF !ISOBJECT( oObject ) .OR. !ISCHARACTER( cSymbol ) + __errRT_BASE( EG_ARG, 3101, NIL, ProcName( 0 ) ) + ELSEIF __objHasData( oObject, cSymbol ) __clsDelMsg( oObject:ClassH, cSymbol ) __clsDelMsg( oObject:ClassH, "_" + cSymbol ) __cls_DecData( oObject:ClassH ) // Decrease wData - else - __errRT_BASE(EG_ARG, 3102, "Not existing symbol in class", ProcName( 0 ) ) - endif + ENDIF -return oObject + RETURN oObject