diff --git a/harbour/ChangeLog b/harbour/ChangeLog index c0e25da41b..a904fdf1e8 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,13 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2006-08-14 10:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/source/rtl/fserror.c + + added translation error code for ENMFILE + + * harbour/source/rtl/hbffind.c + * set FERROR() code when FILE() faild - Clipper compatibility + 2006-08-11 10:15 UTC+0100 Ryszard Glab * utils/hbpptest/pretest.prg * fixed to use HB_OSNewLine(0 instead '\n' diff --git a/harbour/source/rtl/fserror.c b/harbour/source/rtl/fserror.c index c1466d19ac..1b8d2b97b6 100644 --- a/harbour/source/rtl/fserror.c +++ b/harbour/source/rtl/fserror.c @@ -76,6 +76,9 @@ static int hb_errnoToDosError( int ErrCode ) #else switch ( ErrCode ) { +#if defined( ENMFILE ) + case ENMFILE: +#endif case ENOENT: iResult = 2; /* File not found */ break; @@ -161,9 +164,6 @@ static int hb_WinToDosError( ULONG ulError ) case ERROR_INVALID_HANDLE: iResult = 6; break; - case 25: - iResult = 25; - break; default: iResult = ( int ) ulError ; diff --git a/harbour/source/rtl/hbffind.c b/harbour/source/rtl/hbffind.c index d1e13e588b..938f297759 100644 --- a/harbour/source/rtl/hbffind.c +++ b/harbour/source/rtl/hbffind.c @@ -163,40 +163,6 @@ HB_FILE_VER( "$Id$" ) #endif -/* Internal funtion , Convert Windows Error Values to Dos Error Values */ -#ifdef HB_OS_WIN_32 - -static int WinToDosError( unsigned long lError) -{ - int iReturn; - - switch( lError ) - { - case ERROR_ALREADY_EXISTS: - iReturn = 5; - break; - case ERROR_FILE_NOT_FOUND: - iReturn = 2; - break; - case ERROR_PATH_NOT_FOUND: - iReturn = 3; - break; - case ERROR_TOO_MANY_OPEN_FILES: - iReturn = 4; - break; - case ERROR_INVALID_HANDLE: - iReturn = 6; - break; - default: - iReturn = 0; - break; - } - - return iReturn; -} - -#endif - /* ------------------------------------------------------------- */ USHORT hb_fsAttrFromRaw( ULONG raw_attr ) @@ -500,17 +466,8 @@ static BOOL hb_fsFindNextLow( PHB_FFIND ffind ) nSec = ft->tm_sec; } } - else - { - #if defined(__DJGPP__) || defined(__RSX32__) - if( errno == 22 ) - errno = 2; - if( errno == 4 ) - errno = 5; - #endif - hb_fsSetError( errno ); - } + if( !bFound ) hb_fsSetIOError( bFound, 0 ); } #elif defined(HB_OS_OS2) @@ -572,6 +529,8 @@ static BOOL hb_fsFindNextLow( PHB_FFIND ffind ) nSec = ft->tm_sec; } } + + if( !bFound ) hb_fsSetIOError( bFound, 0 ); } #elif defined(HB_OS_WIN_32) @@ -649,12 +608,9 @@ static BOOL hb_fsFindNextLow( PHB_FFIND ffind ) } } } - else - { - errno = WinToDosError( GetLastError() ); - hb_fsSetError( errno ); - } } + + if( !bFound ) hb_fsSetIOError( bFound, 0 ); } #elif defined(HB_OS_UNIX) @@ -754,6 +710,8 @@ static BOOL hb_fsFindNextLow( PHB_FFIND ffind ) nSec = ft->tm_sec; } } + + if( !bFound ) hb_fsSetIOError( bFound, 0 ); } #else @@ -771,6 +729,8 @@ static BOOL hb_fsFindNextLow( PHB_FFIND ffind ) HB_SYMBOL_UNUSED( raw_attr ); bFound = FALSE; + + hb_fsSetError( (USHORT) FS_ERROR ); } #endif