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:
@@ -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
|
||||
|
||||
@@ -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++ )
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user