diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 2ae82b1bea..693f8b4b67 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,20 @@ +20000131-10:00 GMT+1 Antonio Linares + * source/debug/debugger.prg + + added _AltD(). Waiting for a Harbour fix to accept it as AltD() + + * source/rtl/tgetlist.prg + + added functions: GetPreValidate(), GetPostValidate(), GetActive() + + added functions: ReadFormat(), ReadKill(), ReadUpdated(), Updated() + + added functions: GetDoSetKey() + + * source/rtl/dummy.prg + - removed functions: GetPreValidate(), GetPostValidate(), GetActive() + - removed functions: ReadFormat(), ReadKill(), ReadUpdated(), Updated() + - removed functions: GetDoSetKey() + + * doc/funclist.txt + * Updated + 20000131-01:29 GMT+1 Victor Szel * source/rtl/harbinit.prg ! CLIPPER530 is declared only when HB_COMPAT_53 is defined. @@ -43,7 +60,7 @@ *source/compiler/harbour.l * fixed support for macro variables used in FOR statement - + *source/vm/hvm.c * private variables created during a macro evaluation are not released after a macro evaluation. They have the function/procedure @@ -62,7 +79,7 @@ 20000129-14:30 GMT+3 Luiz Rafael Culik *source/rtl/oemansi.c - *Added documentation to HB_oemtoansi() and Hb_ansitooem() + *Added documentation to HB_oemtoansi() and Hb_ansitooem() *source/rtl/strings.c *Added documentation to AT(),RAT(),ISDIGIT(),ISALPHA(),ISLOWER(),ISUPPER() @@ -87,9 +104,9 @@ *source/macro/macro.l *source/compiler/harbour.l - * any nonstandard characters (ASCII < 32 and ASCII > 127) are + * any nonstandard characters (ASCII < 32 and ASCII > 127) are passed to grammar analyser instead of printing on stdout - + *include/hbexpr.c *source/macro/macro.c *source/compiler/expropt.c diff --git a/harbour/doc/funclist.txt b/harbour/doc/funclist.txt index edfede4842..2db3efdc1b 100644 --- a/harbour/doc/funclist.txt +++ b/harbour/doc/funclist.txt @@ -319,15 +319,16 @@ __Wait ;R; __XRestScreen ;R; __XSaveScreen ;R; ; GET SYSTEM -GETACTIVE ;N; +GETACTIVE ;R; GETAPPLYKEY ;N; -GETDOSETKEY ;N; -GETPOSTVALIDATE ;N; -GETPREVALIDATE ;N; +GETDOSETKEY ;R; +GETPOSTVALIDATE ;R; +GETPREVALIDATE ;R; GETREADER ;N; -READFORMAT ;N; -READKILL ;N; -READUPDATED ;N; +READFORMAT ;R; +READKILL ;R; +READUPDATED ;R; +UPDATED ;R; ; ERROR OBJECT ErrorNew ;R; :Args ;R; diff --git a/harbour/source/debug/debugger.prg b/harbour/source/debug/debugger.prg index c05f849e1e..ad78a9f6ab 100644 --- a/harbour/source/debug/debugger.prg +++ b/harbour/source/debug/debugger.prg @@ -49,8 +49,29 @@ #xcommand SEPARATOR => TDbMenu():AddItem( TDbMenuItem():New( "-" ) ) #xcommand ENDMENU => ATail( TDbMenu():aMenus ):Build() +#define ALTD_DISABLE 0 +#define ALTD_ENABLE 1 + static s_oDebugger static s_lExit := .F. +static s_lEnabled := .t. + +function _AltD( nAction ) // it should be AltD(), but Harbour refuses to compile it + + do case + case nAction == nil + if s_lEnabled + ___dbgEntry( ProcLine( 2 ) ) + endif + + case nAction == ALTD_DISABLE + s_lEnabled = .f. + + case nAction == ALTD_ENABLE + s_lEnabled = .t. + endcase + +return nil function __dbgEntry( uParam1, uParam2 ) // debugger entry point diff --git a/harbour/source/rtl/dummy.prg b/harbour/source/rtl/dummy.prg index f2378cd842..c49a9a7cb1 100644 --- a/harbour/source/rtl/dummy.prg +++ b/harbour/source/rtl/dummy.prg @@ -82,14 +82,6 @@ FUNCTION __TypeFile() ; RETURN NIL FUNCTION __LabelForm() ; RETURN NIL FUNCTION __ReportForm() ; RETURN NIL -FUNCTION GetActive() ; RETURN NIL FUNCTION GetApplyKey() ; RETURN NIL -FUNCTION GetDoSetKey() ; RETURN NIL -FUNCTION GetPostValidate() ; RETURN .T. -FUNCTION GetPreValidate() ; RETURN .T. FUNCTION GetReader() ; RETURN NIL -FUNCTION ReadFormat() ; RETURN .F. -FUNCTION ReadKill() ; RETURN .F. -FUNCTION ReadUpdated() ; RETURN .T. -FUNCTION Updated() ; RETURN .T. -FUNCTION __SetFormat() ; RETURN NIL +FUNCTION __SetFormat() ; RETURN NIL \ No newline at end of file diff --git a/harbour/source/rtl/tgetlist.prg b/harbour/source/rtl/tgetlist.prg index f829e3165b..7d69c93bf4 100644 --- a/harbour/source/rtl/tgetlist.prg +++ b/harbour/source/rtl/tgetlist.prg @@ -45,6 +45,8 @@ #define K_UNDO K_CTRL_U +static oGetListActive + function ReadModal( GetList, nPos ) local oGetList @@ -102,13 +104,18 @@ CLASS TGetList METHOD PostActiveGet() METHOD GetReadVar() METHOD SetFormat( bFormat ) - METHOD KillRead() + METHOD KillRead( lKill ) METHOD GetActive( oGet ) METHOD DateMsg() METHOD ShowScoreBoard() + METHOD ReadUpdated( lUpdated ) METHOD ReadVar( cNewVarName ) METHOD ReadExit( lNew ) INLINE Set( _SET_EXIT, lNew ) - METHOD SetFocus() INLINE ::aGetList[ ::nPos ]:SetFocus() + + METHOD SetFocus() INLINE oGetListActive := ::oGetList,; + ::aGetList[ ::nPos ]:SetFocus() + + METHOD Updated() INLINE ::lUpdated ENDCLASS @@ -294,6 +301,14 @@ METHOD GetPreValidate() CLASS TGetList return lWhen +function GetPreValidate( oGet ) + + if oGet != nil + oGetListActive:oGet = oGet + endif + +return oGetListActive:GetPreValidate() + METHOD GetPostValidate() CLASS TGetList local oGet := ::oGet @@ -335,6 +350,14 @@ METHOD GetPostValidate() CLASS TGetList return lValid +function GetPostValidate( oGet ) + + if oGet != nil + oGetListActive:oGet = oGet + endif + +return oGetListActive:GetPostValidate() + METHOD GetDoSetKey( bKeyBlock ) CLASS TGetList local oGet := ::oGet, lUpdated @@ -359,6 +382,18 @@ METHOD GetDoSetKey( bKeyBlock ) CLASS TGetList return nil +PROCEDURE GetDoSetKey( keyBlock, oGet ) + + if oGet != nil .and. oGetListActive != nil + oGetListActive:oGet = oGet + endif + + if oGetListActive != nil + oGetListActive:GetDoSetKey( keyBlock ) + endif + +return + METHOD Settle( nPos ) CLASS TGetList local nExitState @@ -453,15 +488,43 @@ METHOD GetReadVar() CLASS TGetList return cName -METHOD SetFormat( bFormat ) CLASS TGetList +function ReadFormat( bFormat ) - ::bFormat = If( ISBLOCK( bFormat ), bFormat, nil ) + if PCount() > 0 + return oGetListActive:SetFormat( bFormat ) + else + return oGetListActive:SetFormat() + endif return nil -METHOD KillRead() CLASS TGetList +METHOD SetFormat( bFormat ) CLASS TGetList - ::lKillRead := .t. + local bSavFormat := ::bFormat + + if PCount() > 0 + ::bFormat = bFormat + endif + +return bSavFormat + +METHOD KillRead( lKill ) CLASS TGetList + + local lSavKill := ::lKillRead + + if PCount() > 0 + ::lKillRead = lKill + endif + +return lSavKill + +function ReadKill( lKill ) + + if PCount() > 0 + return oGetListActive:KillRead( lKill ) + else + return oGetListActive:KillRead() + endif return nil @@ -475,6 +538,18 @@ METHOD GetActive( oGet ) CLASS TGetList return oOldGet +function GetActive( oGet ) + + if oGetListActive != nil + if PCount() > 0 + return oGetListActive:GetActive( oGet ) + else + return oGetListActive:GetActive() + endif + endif + +return nil + METHOD ShowScoreboard() CLASS TGetList local nRow, nCol, nOldCursor @@ -527,4 +602,32 @@ FUNCTION ReadExit( lExit ) RETURN Set( _SET_EXIT, lExit ) FUNCTION ReadInsert( lInsert ) - RETURN Set( _SET_INSERT, lInsert ) \ No newline at end of file + RETURN Set( _SET_INSERT, lInsert ) + +METHOD ReadUpdated( lUpdated ) CLASS TGetList + + local lSavUpdated := ::lUpdated + + if PCount() > 0 + ::lUpdated = lUpdated + endif + +return lSavUpdated + +function ReadUpdated( lUpdated ) + + if PCount() > 0 + return oGetListActive:ReadUpdated( lUpdated ) + else + return oGetListActive:ReadUpdate() + endif + +return nil + +function Updated() + + if oGetListActive != nil + return oGetListActive:lUpdated + endif + +return .f.