diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 136c8d22f9..ca73551ff8 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,18 @@ The license applies to all entries newer than 2009-04-28. */ +2011-02-21 13:59 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * src/rtl/filesys.c + + fs_win_set_drive(): Setting SEM_FAILCRITICALERRORS before + SetCurrentDirectory() call to avoid screen msg in some error + scenarios. Thanks to vbdasc (final patch has two modifications, + so pls retest it). + + hb_fsChDir(): Applied similar logic as above. + * Using FALSE instead of 0 in both function above. + + * contrib/hbssl/evppkey.c + * Comment. + 2011-02-20 22:53 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + contrib/hbct/tests/numline.prg * contrib/hbct/numline.c diff --git a/harbour/contrib/hbssl/evppkey.c b/harbour/contrib/hbssl/evppkey.c index 4ce34bb3d0..30aeb19d09 100644 --- a/harbour/contrib/hbssl/evppkey.c +++ b/harbour/contrib/hbssl/evppkey.c @@ -217,4 +217,30 @@ EC_KEY * EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); int EVP_PKEY_decrypt( unsigned char * dec_key, const unsigned char * enc_key, int enc_key_len, EVP_PKEY * private_key ); int EVP_PKEY_encrypt( unsigned char * enc_key, const unsigned char * key , int key_len , EVP_PKEY * pub_key ); +/* 1.0.0 */ +int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, + unsigned char *sig, size_t *siglen, + const unsigned char *tbs, size_t tbslen); + +int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, + const unsigned char *sig, size_t siglen, + const unsigned char *tbs, size_t tbslen); + +int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, + unsigned char *rout, size_t *routlen, + const unsigned char *sig, size_t siglen); + +int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen); + +int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen); + #endif diff --git a/harbour/src/rtl/filesys.c b/harbour/src/rtl/filesys.c index 77d9ae3019..18c7a60f5e 100644 --- a/harbour/src/rtl/filesys.c +++ b/harbour/src/rtl/filesys.c @@ -348,12 +348,18 @@ static void fs_win_set_drive( int iDrive ) if( iDrive >= 0 && iDrive <= 25 ) { TCHAR szBuffer[ 3 ]; + HB_BOOL fResult; + UINT uiErrMode; szBuffer[ 0 ] = ( TCHAR ) ( iDrive + 'A' ); szBuffer[ 1 ] = TEXT( ':' ); szBuffer[ 2 ] = TEXT( '\0' ); - hb_fsSetIOError( SetCurrentDirectory( szBuffer ) != 0, 0 ); + uiErrMode = SetErrorMode( SEM_FAILCRITICALERRORS ); + fResult = SetCurrentDirectory( szBuffer ) != FALSE; + SetErrorMode( uiErrMode ); + + hb_fsSetIOError( fResult, 0 ); } } @@ -2681,8 +2687,11 @@ HB_BOOL hb_fsChDir( const char * pDirname ) #if defined( HB_OS_WIN ) { LPTSTR lpDirname = HB_TCHAR_CONVTO( pDirname ); + UINT uiErrMode; - fResult = SetCurrentDirectory( lpDirname ) != 0; + uiErrMode = SetErrorMode( SEM_FAILCRITICALERRORS ); + fResult = SetCurrentDirectory( lpDirname ) != FALSE; + SetErrorMode( uiErrMode ); hb_fsSetIOError( fResult, 0 ); HB_TCHAR_FREE( lpDirname );