2009-05-08 01:36 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/xhb/stream.prg
! disabled call to HB_IsByRef(). Such function does not exist in Harbour
and in current xHarbour it does not work.
* harbour/contrib/xhb/hbserv.c
! removed some peaces of not working old code which used pHVMFuncService.
With some calling convention this code can cause application crash on
exit in xHarbour so it should be fixed there too.
* harbour/contrib/xhb/regexrpl.prg
! use HB_ISREGEX() instead of xHarbour only HB_ISREGEXSTRING()
* harbour/contrib/xhb/xhbfunc.c
+ added xHarbour compatible HB_CREATELEN8() and HB_GETLEN8() functions.
They save/restore 64bit signed integers in/from 8 bytes strings.
In Clipper terminology they can be called: LL2BIN()/BIN2LL().
Original xHarbour version of HB_CREATELEN8() and HB_GETLEN8() were
implemented by Giancarlo Niccolai.
This commit is contained in:
@@ -17,6 +17,26 @@
|
||||
past entries belonging to these authors: Viktor Szakats.
|
||||
*/
|
||||
|
||||
2009-05-08 01:36 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/contrib/xhb/stream.prg
|
||||
! disabled call to HB_IsByRef(). Such function does not exist in Harbour
|
||||
and in current xHarbour it does not work.
|
||||
|
||||
* harbour/contrib/xhb/hbserv.c
|
||||
! removed some peaces of not working old code which used pHVMFuncService.
|
||||
With some calling convention this code can cause application crash on
|
||||
exit in xHarbour so it should be fixed there too.
|
||||
|
||||
* harbour/contrib/xhb/regexrpl.prg
|
||||
! use HB_ISREGEX() instead of xHarbour only HB_ISREGEXSTRING()
|
||||
|
||||
* harbour/contrib/xhb/xhbfunc.c
|
||||
+ added xHarbour compatible HB_CREATELEN8() and HB_GETLEN8() functions.
|
||||
They save/restore 64bit signed integers in/from 8 bytes strings.
|
||||
In Clipper terminology they can be called: LL2BIN()/BIN2LL().
|
||||
Original xHarbour version of HB_CREATELEN8() and HB_GETLEN8() were
|
||||
implemented by Giancarlo Niccolai.
|
||||
|
||||
2009-05-07 19:59 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
|
||||
* source/rtl/tget.prg
|
||||
! Fixed to check for ::cType != NIL before
|
||||
|
||||
@@ -86,12 +86,16 @@
|
||||
#define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION
|
||||
#endif
|
||||
|
||||
extern PHB_FUNC pHVMFuncService;
|
||||
|
||||
/**************************************************
|
||||
* Global definition, valid for all systems
|
||||
***************************************************/
|
||||
|
||||
HB_EXTERN_BEGIN
|
||||
BOOL hb_isService( void );
|
||||
void hb_serviceExit( void );
|
||||
HB_EXTERN_END
|
||||
|
||||
|
||||
static void s_serviceSetHBSig( void );
|
||||
static void s_serviceSetDflSig( void );
|
||||
static void s_signalHandlersInit( void );
|
||||
@@ -261,7 +265,7 @@ static void s_signalHandler( int sig, siginfo_t * info, void * v )
|
||||
to fix as soon as thread support is ready on OS/2
|
||||
*/
|
||||
#if defined(HB_THREAD_SUPPORT) && ! defined(HB_OS_OS2)
|
||||
void * s_signalListener( void * my_stack )
|
||||
static void * s_signalListener( void * my_stack )
|
||||
{
|
||||
static BOOL bFirst = TRUE;
|
||||
sigset_t passall;
|
||||
@@ -698,6 +702,13 @@ static int s_translateSignal( UINT sig, UINT subsig )
|
||||
return HB_SIGNAL_UNKNOWN;
|
||||
}
|
||||
|
||||
static void hb_service_exit( void* cargo )
|
||||
{
|
||||
HB_SYMBOL_UNUSED( cargo );
|
||||
|
||||
hb_serviceExit();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes signal handler system
|
||||
*/
|
||||
@@ -718,6 +729,7 @@ static void s_signalHandlersInit()
|
||||
|
||||
sp_hooks = hb_itemNew( NULL );
|
||||
hb_arrayNew( sp_hooks, 0 );
|
||||
hb_vmAtQuit( hb_service_exit, NULL );
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
@@ -771,7 +783,6 @@ HB_FUNC( HB_STARTSERVICE )
|
||||
|
||||
/* let's begin */
|
||||
sb_isService = TRUE;
|
||||
pHVMFuncService = ( PHB_FUNC ) hb_isService;
|
||||
|
||||
/* in windows, we just detach from console */
|
||||
#ifdef HB_OS_WIN
|
||||
@@ -793,7 +804,7 @@ HB_FUNC( HB_STARTSERVICE )
|
||||
* Been called. C version useful for internal api
|
||||
*/
|
||||
|
||||
BOOL hb_isService()
|
||||
BOOL hb_isService( void )
|
||||
{
|
||||
return sb_isService;
|
||||
}
|
||||
@@ -803,13 +814,14 @@ BOOL hb_isService()
|
||||
* Called from hb_vmQuit()
|
||||
*/
|
||||
|
||||
void hb_serviceExit()
|
||||
void hb_serviceExit( void )
|
||||
{
|
||||
if( sp_hooks != NULL )
|
||||
{
|
||||
/* reset default signal handling */
|
||||
s_serviceSetDflSig();
|
||||
hb_itemRelease( sp_hooks );
|
||||
sp_hooks = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ FUNCTION hb_RegexReplace( cRegex, cString, cReplace, lCaseSensitive, lNewLine, n
|
||||
LOCAL cSearch, nStart, nLenSearch, nLenReplace
|
||||
//LOCAL nEnd
|
||||
|
||||
IF !HB_ISREGEXSTRING( cRegex )
|
||||
IF !HB_ISREGEX( cRegex )
|
||||
pRegex := HB_RegExComp( cRegEx )
|
||||
ELSE
|
||||
pRegex := cRegEx
|
||||
|
||||
@@ -172,9 +172,11 @@ METHOD Read( sBuffer, nOffset, nCount ) CLASS TStreamFileReader
|
||||
|
||||
LOCAL nRead
|
||||
|
||||
/*
|
||||
IF ! HB_IsByRef( @sBuffer )
|
||||
Throw( ErrorNew( "Stream", 0, 1002, ProcName(), "Buffer not BYREF.", HB_aParams() ) )
|
||||
ENDIF
|
||||
*/
|
||||
|
||||
nRead := FRead( ::Handle, @sBuffer, nCount, nOffset )
|
||||
|
||||
|
||||
@@ -140,6 +140,34 @@ HB_FUNC( XHB__KEYBOARD )
|
||||
}
|
||||
}
|
||||
|
||||
HB_FUNC( HB_CREATELEN8 )
|
||||
{
|
||||
char buffer[ 8 ];
|
||||
HB_LONG llValue;
|
||||
|
||||
if( ISNUM( 1 ) )
|
||||
{
|
||||
llValue = hb_parnint( 1 );
|
||||
HB_PUT_LE_UINT64( buffer, llValue );
|
||||
hb_retclen( buffer, 8 );
|
||||
}
|
||||
else if( ISBYREF( 1 ) && ISNUM( 2 ) )
|
||||
{
|
||||
llValue = hb_parnint( 2 );
|
||||
HB_PUT_LE_UINT64( buffer, llValue );
|
||||
hb_storclen( buffer, 8, 1 );
|
||||
}
|
||||
}
|
||||
|
||||
HB_FUNC( HB_GETLEN8 )
|
||||
{
|
||||
char * buffer = hb_parc( 1 );
|
||||
if( buffer && hb_parclen( 1 ) >= 8 )
|
||||
hb_retnint( HB_GET_LE_UINT64( buffer ) );
|
||||
else
|
||||
hb_retni( -1 );
|
||||
}
|
||||
|
||||
HB_FUNC_EXTERN( HB_DESERIALIZE );
|
||||
|
||||
HB_FUNC( HB_DESERIALBEGIN )
|
||||
|
||||
Reference in New Issue
Block a user