2009-05-27 02:06 UTC+0200 Viktor Szakats (harbour.01 syenar hu)

* contrib/hbct/print.c
    + added PRINTSEND() support for Windows platform.
      (Borrowed from xhb, work of Pavel Tsarenko, with few minor changes)

  * contrib/gtwvg/wvgwin.c
  * contrib/gtwvg/wvgsink.c
    ! Fixed two new warnings after my recent commits.

  * contrib/hbwin/hbwapi.h
    * Tweaked previous commit. COLORREF and HRESULT now using
      hb_retnint() again to fix 32-bit numbers appearing as signed ones
      at .prg level.

  * source/rdd/usrrdd/rdds/arrayrdd.prg
    ; Added some patches recently committed to xhb:
    ! few fixes provided by Quique
    + Added AR_LOCK() function, but commented.
    ; NOTE: Francesco, would you mind reviewing these changes?

  * utils/hbmk2/hbmk2.prg
    * Minor formatting, comment added.
This commit is contained in:
Viktor Szakats
2009-05-27 00:07:09 +00:00
parent dcb8b9783b
commit da3ba03b46
7 changed files with 140 additions and 33 deletions

View File

@@ -17,6 +17,29 @@
past entries belonging to these authors: Viktor Szakats.
*/
2009-05-27 02:06 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbct/print.c
+ added PRINTSEND() support for Windows platform.
(Borrowed from xhb, work of Pavel Tsarenko, with few minor changes)
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgsink.c
! Fixed two new warnings after my recent commits.
* contrib/hbwin/hbwapi.h
* Tweaked previous commit. COLORREF and HRESULT now using
hb_retnint() again to fix 32-bit numbers appearing as signed ones
at .prg level.
* source/rdd/usrrdd/rdds/arrayrdd.prg
; Added some patches recently committed to xhb:
! few fixes provided by Quique
+ Added AR_LOCK() function, but commented.
; NOTE: Francesco, would you mind reviewing these changes?
* utils/hbmk2/hbmk2.prg
* Minor formatting, comment added.
2009-05-26 21:41 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbwin/hbwapi.h
* contrib/hbwin/wapi_commctrl.c

View File

@@ -383,7 +383,7 @@ hb_ToOutDebug( "event = %i",(int)dispid );
iArg = params->cArgs;
if( iArg > HB_SIZEOFARRAY( pItemArray ) )
if( iArg > ( int ) HB_SIZEOFARRAY( pItemArray ) )
iArg = HB_SIZEOFARRAY( pItemArray );
for( i = 1; i <= iArg; i++ )

View File

@@ -677,7 +677,7 @@ HB_FUNC( WIN_CHOOSECOLOR )
COLORREF crCustClr[ 16 ];
int i;
for( i = 0; i < HB_SIZEOFARRAY( crCustClr ); i++ )
for( i = 0; i < ( int ) HB_SIZEOFARRAY( crCustClr ); i++ )
crCustClr[ i ] = ( ISARRAY( 2 ) ? ( COLORREF ) hb_parnl( 2, i+1 ) : GetSysColor( COLOR_BTNFACE ) );
cc.lStructSize = sizeof( CHOOSECOLOR );

View File

@@ -162,7 +162,7 @@ HB_FUNC( PRINTREADY )
HB_SYMBOL_UNUSED( uiPort );
#endif
hb_retl( ( Status == 0x90 ) );
hb_retl( Status == 0x90 );
}
@@ -198,5 +198,39 @@ HB_FUNC( PRINTSEND )
else
hb_retni( 0 );
}
#elif defined( HB_OS_WIN_32 )
char * szPort = "lpt1";
char * szChr = " ";
char * szStr = NULL;
USHORT usLen = 0, usRet = 0;
if( ISNUM( 1 ) )
{
szChr[ 0 ] = ( char ) hb_parni( 1 );
szStr = szChr;
usLen = 1;
}
else if( ISCHAR( 1 ) )
{
szStr = hb_parc( 1 );
usLen = ( USHORT ) hb_parclen( 1 );
}
if( ISNUM( 2 ) )
szPort[ 3 ] = ( char ) hb_parni( 2 ) + '0';
if( usLen )
{
HB_FHANDLE hFile = hb_fsOpen( ( BYTE * ) szPort, FO_WRITE );
if( hFile != FS_ERROR )
{
usRet = hb_fsWrite( hFile, ( BYTE * ) szStr, usLen );
hb_fsClose( hFile );
}
}
hb_retni( usRet );
#endif
}

View File

@@ -66,7 +66,7 @@
#define wapi_par_HIMAGELIST( n ) ( ( HIMAGELIST ) hb_parptr( n ) )
#define wapi_par_HFONT( n ) ( ( HFONT ) hb_parptr( n ) )
#define wapi_par_HINSTANCE( n ) ( ( HINSTANCE ) hb_parptr( n ) )
#define wapi_par_COLORREF( n ) ( ( COLORREF ) hb_parnl( n ) )
#define wapi_par_COLORREF( n ) ( ( COLORREF ) hb_parnint( n ) )
#define wapi_par_STRUCT( n ) ( hb_parc( n ) )
@@ -82,7 +82,7 @@
#define wapi_ret_L( b ) ( hb_retl( b ) )
#define wapi_ret_HANDLE( h ) ( hb_retptr( h ) )
#define wapi_ret_HRESULT( hr ) ( hb_retnl( hr ) )
#define wapi_ret_COLORREF( cr ) ( hb_retnl( cr ) )
#define wapi_ret_HRESULT( hr ) ( hb_retnint( hr ) )
#define wapi_ret_COLORREF( cr ) ( hb_retnint( cr ) )
#endif /* __HBWAPI_H */

View File

@@ -645,7 +645,7 @@ STATIC FUNCTION AR_SKIPRAW( nWA, nRecords )
nResult := AR_GOTO( nWA, 1 )
aWAData[ WADATA_BOF ] := .T.
// Hack for dbf1.c hack GOTOP
aWAData[ WADATA_FORCEBOF ] := .T.
// aWAData[ WADATA_FORCEBOF ] := .T.
ELSE
@@ -706,20 +706,22 @@ STATIC FUNCTION AR_DELETE( nWA )
ENDIF
IF aOpenInfo[ UR_OI_SHARED ] .AND. !( aScan( aWAData[ WADATA_LOCKS ], aWAData[ WADATA_RECNO ] ) > 0 )
IF ! aWAData[ WADATA_EOF ]
IF aOpenInfo[ UR_OI_SHARED ] .AND. !( aScan( aWAData[ WADATA_LOCKS ], aWAData[ WADATA_RECNO ] ) > 0 )
oError := ErrorNew()
oError:GenCode := EG_UNLOCKED
oError:SubCode := 1022 // EDBF_UNLOCKED
oError:Description := HB_LANGERRMSG( EG_UNLOCKED )
oError:FileName := aOpenInfo[ UR_OI_NAME ]
UR_SUPER_ERROR( nWA, oError )
RETURN HB_FAILURE
oError := ErrorNew()
oError:GenCode := EG_UNLOCKED
oError:SubCode := 1022 // EDBF_UNLOCKED
oError:Description := HB_LANGERRMSG( EG_UNLOCKED )
oError:FileName := aOpenInfo[ UR_OI_NAME ]
UR_SUPER_ERROR( nWA, oError )
RETURN HB_FAILURE
ENDIF
ENDIF
IF Len( aRecInfo ) > 0 .AND. aWAData[ WADATA_RECNO ] <= Len( aRecInfo )
aRecInfo[ aWAData[ WADATA_RECNO ] ][ RECDATA_DELETED ] := .T.
IF Len( aRecInfo ) > 0 .AND. aWAData[ WADATA_RECNO ] <= Len( aRecInfo )
aRecInfo[ aWAData[ WADATA_RECNO ] ][ RECDATA_DELETED ] := .T.
ENDIF
ENDIF
RETURN HB_SUCCESS
@@ -733,7 +735,7 @@ STATIC FUNCTION AR_DELETED( nWA, lDeleted )
hb_ToOutDebug( "AR_DELETED(): nWA = %i, lDeleted = %s\n\r", nWA, lDeleted )
#endif
//lDeleted := .F.
// lDeleted := .F.
IF Len( aRecInfo ) > 0 .AND. aWAData[ WADATA_RECNO ] <= Len( aRecInfo )
lDeleted := aRecInfo[ aWAData[ WADATA_RECNO ] ][ RECDATA_DELETED ]
ELSE
@@ -773,14 +775,42 @@ STATIC FUNCTION AR_APPEND( nWA, nRecords )
ENDIF
aRecord := BlankRecord( aStruct )
aAdd( aRecords, aRecord )
aAdd( aRecInfo, AR_RECDATAINIT() )
AAdd( aRecords, aRecord )
AAdd( aRecInfo, AR_RECDATAINIT() )
AR_GOBOTTOM( nWA )
/* TODO: SHARED ACCESS */
RETURN HB_SUCCESS
STATIC FUNCTION AR_LOCK( nWA, aLock )
HB_SYMBOL_UNUSED( nWA )
HB_SYMBOL_UNUSED( aLock )
/*
LOCAL aWAData := USRRDD_AREADATA( nWA )
LOCAL nReg := iif( aLock[ UR_LI_RECORD ] == NIL, aWAData[ WADATA_RECNO ], aLock[ UR_LI_RECORD ] )
LOCAL aRecInfo
IF aWAData[ WADATA_EOF ]
aLock[ UR_LI_RESULT ] := .t.
ELSE
aRecInfo := aWAData[ WADATA_DATABASE, DATABASE_RECINFO, nReg ]
IF aWAData[ WADATA_OPENINFO, UR_OI_SHARED ]
IF aRecInfo[ RECDATA_LOCKED ] == nWA
aLock[ UR_LI_RESULT ] := .T.
ELSEIF aRecInfo[ RECDATA_LOCKED ] != 0
aLock[ UR_LI_RESULT ] := .F.
ELSE
aRecInfo[ RECDATA_LOCKED ] := nWA
aLock[ UR_LI_RESULT ] := .T.
ENDIF
ELSE
aLock[ UR_LI_RESULT ] := .T.
ENDIF
ENDIF
*/
RETURN SUCCESS
STATIC FUNCTION AR_RECID( nWA, nRecNo )
LOCAL aWAData := USRRDD_AREADATA( nWA )
LOCAL aDBFData := aWAData[ WADATA_DATABASE ]
@@ -903,6 +933,9 @@ STATIC FUNCTION AR_ORDINFO( nWA, xMsg, xValue )
RETURN HB_SUCCESS
STATIC FUNCTION AR_DUMMY()
RETURN HB_SUCCESS
/*
* This function have to exist in all RDD and then name have to be in
* format: <RDDNAME>_GETFUNCTABLE
@@ -913,6 +946,7 @@ FUNCTION ARRAYRDD_GETFUNCTABLE( pFuncCount, pFuncTable, pSuperTable, nRddID )
aMyFunc[ UR_INIT ] := ( @AR_INIT() )
aMyFunc[ UR_NEW ] := ( @AR_NEW() )
aMyFunc[ UR_FLUSH ] := ( @AR_DUMMY() )
aMyFunc[ UR_CREATE ] := ( @AR_CREATE() )
aMyFunc[ UR_CREATEFIELDS ] := ( @AR_CREATEFIELDS() )
aMyFunc[ UR_OPEN ] := ( @AR_OPEN() )
@@ -929,6 +963,7 @@ FUNCTION ARRAYRDD_GETFUNCTABLE( pFuncCount, pFuncTable, pSuperTable, nRddID )
aMyFunc[ UR_GOTOP ] := ( @AR_GOTOP() )
aMyFunc[ UR_GOBOTTOM ] := ( @AR_GOBOTTOM() )
aMyFunc[ UR_RECID ] := ( @AR_RECID() )
aMyFunc[ UR_LOCK ] := ( @AR_LOCK() )
aMyFunc[ UR_RECCOUNT ] := ( @AR_RECCOUNT() )
aMyFunc[ UR_GETVALUE ] := ( @AR_GETVALUE() )
aMyFunc[ UR_PUTVALUE ] := ( @AR_PUTVALUE() )
@@ -1104,6 +1139,18 @@ FUNCTION hb_FileArrayRdd( cFullName )
ENDIF
RETURN ( nReturn == HB_SUCCESS )
FUNCTION hb_setArryRdd( aArray )
LOCAL aRecInfo
LOCAL nWA := Select()
LOCAL aDBFData := USRRDD_AREADATA( nWA )[ WADATA_DATABASE ]
aDBFData[ DATABASE_RECORDS ] := aArray
aDBFData[ DATABASE_RECINFO ] := Array( Len( aArray ) )
FOR EACH aRecInfo IN aDBFData[ DATABASE_RECINFO ]
aRecInfo := AR_RECDATAINIT()
NEXT
AR_GOTOP( nWA )
RETURN NIL
STATIC FUNCTION BlankRecord( aStruct )
LOCAL nLenStruct := Len( aStruct )
LOCAL aRecord := Array( nLenStruct )
@@ -1306,32 +1353,32 @@ STATIC FUNCTION DecEmptyValue( xVal )
LOCAL cType := ValType( xVal )
SWITCH cType
CASE 'C' // Char
CASE 'M' // Memo
CASE "C" // Char
CASE "M" // Memo
xRet := ""
EXIT
CASE 'D' // Date
xRet := CTOD('')
CASE "D" // Date
xRet := hb_STOD()
EXIT
CASE 'L' // Logical
CASE "L" // Logical
xRet := .F.
EXIT
CASE 'N' // Number
CASE "N" // Number
xRet := 0
EXIT
CASE 'B' // code block
CASE "B" // code block
xRet := {|| NIL }
EXIT
CASE 'A' // array
CASE "A" // array
xRet := {}
EXIT
CASE 'H' // hash
CASE "H" // hash
xRet := {=>}
EXIT
CASE 'U' // undefined
CASE "U" // undefined
xRet := NIL
EXIT
CASE 'O' // Object
CASE "O" // Object
xRet := NIL // Or better another value ?
EXIT
OTHERWISE

View File

@@ -349,7 +349,7 @@ STATIC FUNCTION hbmk_run( cCmd )
LOCAL h := hb_ProcessOpen( cCmd )
LOCAL result
IF h != F_ERROR
result := hb_processValue( h )
result := hb_ProcessValue( h )
hb_ProcessClose( h, .T. )
ELSE
result := -1
@@ -5939,6 +5939,9 @@ STATIC PROCEDURE hbmk_OutErr( hbmk, cText )
RETURN
/* NOTE: Hacks to implement UTF-8 output.
It's not yet natively supported by core. [vszakats] */
#undef OutStd
#undef OutErr