From 8946553dc8b453b4e5700f6cfc630c16cf6b2ae8 Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Fri, 5 Oct 2012 08:28:51 +0000 Subject: [PATCH] 2012-10-05 10:28 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * harbour/src/rtl/philes.c * modified HB_CWD() to return previous path if new one is set by optional parameter so current syntax is: HB_CWD( [ ] ) -> + set FError() in HB_CWD() function. Now programmer can check if HB_CWD() succeed checking result of FError() function, i.e. HB_CWD( cNewPath ) IF FError() != 0 ? "Cannot set working directory to:", cNewPath ELSE // stuff ENDIF + set FError() in the following functions: HB_FGETATTR(), HB_FSETATTR(), HB_FGETDATETIME(), HB_FSETDATETIME(), HB_FISDEVICE() --- harbour/ChangeLog | 18 ++++++++++++++++++ harbour/src/rtl/philes.c | 21 ++++++++++++++++----- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 0843739bd3..eae47cba87 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,24 @@ The license applies to all entries newer than 2009-04-28. */ +2012-10-05 10:28 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * harbour/src/rtl/philes.c + * modified HB_CWD() to return previous path if new one is set by + optional parameter so current syntax is: + HB_CWD( [ ] ) -> + + set FError() in HB_CWD() function. Now programmer can check if HB_CWD() + succeed checking result of FError() function, i.e. + HB_CWD( cNewPath ) + IF FError() != 0 + ? "Cannot set working directory to:", cNewPath + ELSE + // stuff + ENDIF + + set FError() in the following functions: + HB_FGETATTR(), HB_FSETATTR(), + HB_FGETDATETIME(), HB_FSETDATETIME(), + HB_FISDEVICE() + 2012-10-05 03:01 UTC+0200 Viktor Szakats (harbour syenar.net) * contrib/hbformat/hbfmtcls.prg + added TOFIX diff --git a/harbour/src/rtl/philes.c b/harbour/src/rtl/philes.c index a2e215fffb..6cf8fec93b 100644 --- a/harbour/src/rtl/philes.c +++ b/harbour/src/rtl/philes.c @@ -323,15 +323,18 @@ HB_FUNC( HB_CURDRIVE ) HB_FUNC( HB_CWD ) { char szBuffer[ HB_PATH_MAX ]; - const char * szNewWD = hb_parc( 1 ); - - if( szNewWD ) - hb_fsSetCWD( szNewWD ); + const char * szNewWD; if( hb_fsGetCWD( szBuffer, sizeof( szBuffer ) ) ) hb_retc( szBuffer ); else hb_retc_null(); + + szNewWD = hb_parc( 1 ); + if( szNewWD ) + hb_fsSetCWD( szNewWD ); + + hb_fsSetFError( hb_fsError() ); } HB_FUNC( HB_PROGNAME ) @@ -405,6 +408,7 @@ HB_FUNC( HB_FGETATTR ) HB_FATTR nAttr; hb_retl( hb_fsGetAttr( hb_parcx( 1 ), &nAttr ) ); + hb_fsSetFError( hb_fsError() ); hb_stornl( nAttr, 2 ); } @@ -412,6 +416,7 @@ HB_FUNC( HB_FGETATTR ) HB_FUNC( HB_FSETATTR ) { hb_retl( hb_fsSetAttr( hb_parcx( 1 ), hb_parnl( 2 ) ) ); + hb_fsSetFError( hb_fsError() ); } HB_FUNC( HB_FSETDATETIME ) @@ -433,13 +438,18 @@ HB_FUNC( HB_FSETDATETIME ) } hb_retl( hb_fsSetFileTime( hb_parcx( 1 ), lDate, lTime ) ); + hb_fsSetFError( hb_fsError() ); } HB_FUNC( HB_FGETDATETIME ) { long lJulian, lMillisec; + HB_BOOL fOK; - if( hb_fsGetFileTime( hb_parcx( 1 ), &lJulian, &lMillisec ) ) + fOK = hb_fsGetFileTime( hb_parcx( 1 ), &lJulian, &lMillisec ); + hb_fsSetFError( hb_fsError() ); + + if( fOK ) { if( HB_ISBYREF( 3 ) ) { @@ -477,6 +487,7 @@ HB_FUNC( HB_FSETDEVMODE ) HB_FUNC( HB_FISDEVICE ) { hb_retl( hb_fsIsDevice( hb_numToHandle( hb_parnint( 1 ) ) ) ); + hb_fsSetFError( hb_fsError() ); } /* HB_PREAD( , <@cBuffer>, [], [] )