diff options
author | Andreas Bregas <ab@openoffice.org> | 2000-09-26 08:02:02 +0000 |
---|---|---|
committer | Andreas Bregas <ab@openoffice.org> | 2000-09-26 08:02:02 +0000 |
commit | 8dd64d22c273f00d2f232846deccebe88707168e (patch) | |
tree | 9dd43bdcacfab9c2d63e5fd3a31438c421c1424b /basic | |
parent | 2d7f755bd9b0b0cbb99ee14763f07f58d90c278b (diff) |
File API -> OSL
Diffstat (limited to 'basic')
-rw-r--r-- | basic/source/inc/runtime.hxx | 26 | ||||
-rw-r--r-- | basic/source/runtime/iosys.cxx | 115 | ||||
-rw-r--r-- | basic/source/runtime/methods.cxx | 302 | ||||
-rw-r--r-- | basic/source/runtime/step0.cxx | 8 |
4 files changed, 423 insertions, 28 deletions
diff --git a/basic/source/inc/runtime.hxx b/basic/source/inc/runtime.hxx index 904224620b83..1d175da1ad37 100644 --- a/basic/source/inc/runtime.hxx +++ b/basic/source/inc/runtime.hxx @@ -2,9 +2,9 @@ * * $RCSfile: runtime.hxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 16:12:11 $ + * last change: $Author: ab $ $Date: 2000-09-26 09:02:02 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -68,13 +68,25 @@ #define _USE_UNO #ifdef _USE_UNO +#ifndef _RTL_USTRING_ #include <rtl/ustring> +#endif +#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_ #include <com/sun/star/uno/Sequence.hxx> +#endif +#ifndef _OSL_FILE_HXX_ +#include <osl/file.hxx> +#endif using namespace rtl; using namespace com::sun::star::uno; +// Define activates old file implementation +// (only in non UCB case) +#define _OLD_FILE_IMPL + + //#include <sal/types.h> //#include <rtl/byteseq.hxx> //#include <rtl/ustring> @@ -131,9 +143,15 @@ class Dir; class SbiRTLData { public: + +#ifdef _OLD_FILE_IMPL Dir* pDir; +#else + ::osl::Directory* pDir; +#endif INT16 nDirFlags; USHORT nCurDirPos; + #ifdef _USE_UNO Sequence< OUString > aDirSeq; #endif /* _USE_UNO */ @@ -470,4 +488,8 @@ String implGetCurDir( void ); // has not to be infected with UNO) void implStepRenameUCB( const String& aSource, const String& aDest ); +//*** OSL file access *** +String getFullPathUNC( const String& aRelPath ); +void implStepRenameOSL( const String& aSource, const String& aDest ); + #endif diff --git a/basic/source/runtime/iosys.cxx b/basic/source/runtime/iosys.cxx index 36de95175f20..d6e062cf95d1 100644 --- a/basic/source/runtime/iosys.cxx +++ b/basic/source/runtime/iosys.cxx @@ -2,9 +2,9 @@ * * $RCSfile: iosys.cxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: patrick.luby $ $Date: 2000-09-25 02:53:43 $ + * last change: $Author: ab $ $Date: 2000-09-26 09:01:36 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -75,6 +75,7 @@ #include <vcl/svapp.hxx> #endif #include <osl/security.h> +#include <osl/file.hxx> #include "runtime.hxx" @@ -119,6 +120,7 @@ #include <com/sun/star/bridge/XBridgeFactory.hpp> using namespace utl; +using namespace osl; using namespace rtl; using namespace com::sun::star::uno; using namespace com::sun::star::lang; @@ -683,6 +685,105 @@ BOOL hasUno( void ) } + +#ifndef _OLD_FILE_IMPL + +class OslStream : public SvStream +{ + File maFile; + short mnStrmMode; + +public: + OslStream( const String& rName, short nStrmMode ); + ~OslStream(); + virtual ULONG GetData( void* pData, ULONG nSize ); + virtual ULONG PutData( const void* pData, ULONG nSize ); + virtual ULONG SeekPos( ULONG nPos ); + virtual void FlushData(); + virtual void SetSize( ULONG nSize ); +}; + +OslStream::OslStream( const String& rName, short nStrmMode ) + : maFile( rName ) + , mnStrmMode( nStrmMode ) +{ + sal_uInt32 nFlags; + + if( (nStrmMode & (STREAM_READ | STREAM_WRITE)) == (STREAM_READ | STREAM_WRITE) ) + { + nFlags = OpenFlag_Read | OpenFlag_Write; + } + else if( nStrmMode & STREAM_WRITE ) + { + nFlags = OpenFlag_Write; + } + else //if( nStrmMode & STREAM_READ ) + { + nFlags = OpenFlag_Read; + } + + FileBase::RC nRet = maFile.open( nFlags ); + if( nRet == FileBase::RC::E_NOENT && nFlags != OpenFlag_Read ) + { + nFlags |= OpenFlag_Create; + nRet = maFile.open( nFlags ); + } + + if( nRet != FileBase::RC::E_None ) + { + SetError( ERRCODE_IO_GENERAL ); + } +} + + +OslStream::~OslStream() +{ + FileBase::RC nRet = maFile.close(); +} + +ULONG OslStream::GetData( void* pData, ULONG nSize ) +{ + + sal_uInt64 nBytesRead = nSize; + FileBase::RC nRet = maFile.read( pData, nBytesRead, nBytesRead ); + return (ULONG)nBytesRead; +} + +ULONG OslStream::PutData( const void* pData, ULONG nSize ) +{ + sal_uInt64 nBytesWritten; + FileBase::RC nRet = maFile.write( pData, (sal_uInt64)nSize, nBytesWritten ); + return (ULONG)nBytesWritten; +} + +ULONG OslStream::SeekPos( ULONG nPos ) +{ + FileBase::RC nRet; + if( nPos == STREAM_SEEK_TO_END ) + { + nRet = maFile.setPos( Pos_End, 0 ); + } + else + { + nRet = maFile.setPos( Pos_Absolut, (sal_uInt64)nPos ); + } + sal_uInt64 nRealPos; + nRet = maFile.getPos( nRealPos ); + return nRealPos; +} + +void OslStream::FlushData() +{ +} + +void OslStream::SetSize( ULONG nSize ) +{ + FileBase::RC nRet = maFile.setSize( (sal_uInt64)nSize ); +} + +#endif + + #ifdef _USE_UNO class UCBStream : public SvStream @@ -929,7 +1030,13 @@ SbError SbiStream::Open #endif if( !pStrm ) + { +#ifdef _OLD_FILE_IMPL pStrm = new SvFileStream( aNameStr, nStrmMode ); +#else + pStrm = new OslStream( getFullPathUNC( aNameStr ), nStrmMode ); +#endif + } if( IsAppend() ) pStrm->Seek( STREAM_SEEK_TO_END ); MapError(); @@ -943,7 +1050,11 @@ SbError SbiStream::Close() if( pStrm ) { if( !hasUno() ) + { +#ifdef _OLD_FILE_IMPL ((SvFileStream *)pStrm)->Close(); +#endif + } MapError(); delete pStrm; pStrm = NULL; diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx index e3a47cba275c..6b5639116200 100644 --- a/basic/source/runtime/methods.cxx +++ b/basic/source/runtime/methods.cxx @@ -2,9 +2,9 @@ * * $RCSfile: methods.cxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 16:12:11 $ + * last change: $Author: ab $ $Date: 2000-09-26 09:01:44 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -66,9 +66,6 @@ #ifndef _SBXVAR_HXX #include <svtools/sbxvar.hxx> #endif -#ifndef _FSYS_HXX //autogen -#include <tools/fsys.hxx> -#endif #ifndef _INTN_HXX //autogen #include <tools/intn.hxx> #endif @@ -97,7 +94,7 @@ #include <tools/solmath.hxx> #endif #include <tools/urlobj.hxx> -#include <osl/file.hxx> +#include <osl/time.h> #ifdef OS2 #define INCL_WINWINDOWMGR @@ -117,6 +114,11 @@ #pragma hdrstop #include "runtime.hxx" +#ifdef _OLD_FILE_IMPL +#ifndef _FSYS_HXX //autogen +#include <tools/fsys.hxx> +#endif +#endif #ifdef _USE_UNO #include <unotools/processfactory.hxx> @@ -140,6 +142,8 @@ using namespace com::sun::star::io; #endif /* _USE_UNO */ +//#define _ENABLE_CUR_DIR + #include "stdobj.hxx" #include "stdobj1.hxx" #include "rtlproto.hxx" @@ -227,16 +231,37 @@ static long GetDayDiff( const Date& rDate ) //*** UCB file access *** + // Converts possibly relative paths to absolute paths // according to the setting done by ChDir/ChDrive -// (Implemented in methods.cxx) String getFullPath( const String& aRelPath ) { + //return aRelPath; + + String aUNCStr = getFullPathUNC( aRelPath ); + + OUString aFileURL; + FileBase::RC nRet = File::getFileURLFromNormalizedPath( aUNCStr, aFileURL ); + return aFileURL; +} + +//*** OSL file access *** +// Converts possibly relative paths to absolute paths +// according to the setting done by ChDir/ChDrive +String getFullPathUNC( const String& aRelPath ) +{ // TODO: Use CurDir to build full path // First step: Return given path unchanged - return aRelPath; + + //static inline RC getAbsolutePath( const ::rtl::OUString& strDirBase, const ::rtl::OUString& strRelative, ::rtl::OUString& strAbsolute ) + + OUString aNormPath; + FileBase::RC nRet = File::normalizePath( aRelPath, aNormPath ); + return aNormPath; } + + // Sets (virtual) current path for UCB file access void implChDir( const String& aDir ) { @@ -555,6 +580,7 @@ RTLFUNC(ChDir) // JSM rPar.Get(0)->PutEmpty(); if (rPar.Count() == 2) { +#ifdef _ENABLE_CUR_DIR String aPath = rPar.Get(1)->GetString(); BOOL bError = FALSE; #ifdef WNT @@ -570,6 +596,7 @@ RTLFUNC(ChDir) // JSM #endif if( bError ) StarBASIC::Error( SbERR_PATH_NOT_FOUND ); +#endif } else StarBASIC::Error( SbERR_BAD_ARGUMENT ); @@ -580,6 +607,7 @@ RTLFUNC(ChDrive) // JSM rPar.Get(0)->PutEmpty(); if (rPar.Count() == 2) { +#ifdef _ENABLE_CUR_DIR // Keine Laufwerke in Unix #ifndef UNX String aPar1 = rPar.Get(1)->GetString(); @@ -619,6 +647,7 @@ RTLFUNC(ChDrive) // JSM #endif // #ifndef UNX +#endif } else StarBASIC::Error( SbERR_BAD_ARGUMENT ); @@ -642,6 +671,16 @@ void implStepRenameUCB( const String& aSource, const String& aDest ) } } +// Implementation of StepRENAME with OSL +void implStepRenameOSL( const String& aSource, const String& aDest ) +{ + FileBase::RC nRet = File::move( getFullPathUNC( aSource ), getFullPathUNC( aDest ) ); + if( nRet != FileBase::RC::E_None ) + { + StarBASIC::Error( SbERR_PATH_NOT_FOUND ); + } +} + RTLFUNC(FileCopy) // JSM { rPar.Get(0)->PutEmpty(); @@ -668,6 +707,7 @@ RTLFUNC(FileCopy) // JSM else // --> UCB { +#ifdef _OLD_FILE_IMPL DirEntry aSourceDirEntry(aSource); if (aSourceDirEntry.Exists()) { @@ -676,6 +716,13 @@ RTLFUNC(FileCopy) // JSM } else StarBASIC::Error( SbERR_PATH_NOT_FOUND ); +#else + FileBase::RC nRet = File::copy( getFullPathUNC( aSource ), getFullPathUNC( aDest ) ); + if( nRet != FileBase::RC::E_None ) + { + StarBASIC::Error( SbERR_PATH_NOT_FOUND ); + } +#endif } } else @@ -708,8 +755,12 @@ RTLFUNC(Kill) // JSM else // --> UCB { +#ifdef _OLD_FILE_IMPL if(DirEntry(aFileSpec).Kill() != FSYS_ERR_OK) StarBASIC::Error( SbERR_PATH_NOT_FOUND ); +#else + File::remove( getFullPathUNC( aFileSpec ) ); +#endif } } else @@ -742,14 +793,78 @@ RTLFUNC(MkDir) // JSM else // --> UCB { +#ifdef _OLD_FILE_IMPL if (!DirEntry(aPath).MakeDir()) StarBASIC::Error( SbERR_PATH_NOT_FOUND ); +#else + Directory::create( getFullPathUNC( aPath ) ); +#endif } } else StarBASIC::Error( SbERR_BAD_ARGUMENT ); } + +#ifndef _OLD_FILE_IMPL + +// In OSL only empty directories can be deleted +// so we have to delete all files recursively +void implRemoveDirRecursive( const String& aDirPath ) +{ + DirectoryItem aItem; + FileBase::RC nRet = DirectoryItem::get( aDirPath, aItem ); + sal_Bool bExists = (nRet == FileBase::RC::E_None); + + FileStatus aFileStatus( FileStatusMask_Type ); + nRet = aItem.getFileStatus( aFileStatus ); + FileStatus::Type aType = aFileStatus.getFileType(); + sal_Bool bFolder = (aType == FileStatus::Type::Directory); + + if( !bExists || !bFolder ) + { + StarBASIC::Error( SbERR_PATH_NOT_FOUND ); + return; + } + + Directory aDir( aDirPath ); + nRet = aDir.open(); + if( nRet != FileBase::RC::E_None ) + { + StarBASIC::Error( SbERR_PATH_NOT_FOUND ); + return; + } + + for( ;; ) + { + DirectoryItem aItem; + nRet = aDir.getNextItem( aItem ); + if( nRet != FileBase::RC::E_None ) + break; + + // Handle flags + FileStatus aFileStatus( FileStatusMask_Type | FileStatusMask_FilePath ); + nRet = aItem.getFileStatus( aFileStatus ); + OUString aPath = aFileStatus.getFilePath(); + + // Directory? + FileStatus::Type aType = aFileStatus.getFileType(); + sal_Bool bFolder = (aType == FileStatus::Type::Directory); + if( bFolder ) + { + implRemoveDirRecursive( aPath ); + } + else + { + File::remove( aPath ); + } + } + + nRet = Directory::remove( aDirPath ); +} +#endif + + RTLFUNC(RmDir) // JSM { rPar.Get(0)->PutEmpty(); @@ -775,9 +890,13 @@ RTLFUNC(RmDir) // JSM else // --> UCB { +#ifdef _OLD_FILE_IMPL DirEntry aDirEntry(aPath); if (aDirEntry.Kill() != FSYS_ERR_OK) StarBASIC::Error( SbERR_PATH_NOT_FOUND ); +#else + implRemoveDirRecursive( getFullPathUNC( aPath ) ); +#endif } } else @@ -831,8 +950,16 @@ RTLFUNC(FileLen) else // --> UCB { +#ifdef _OLD_FILE_IMPL FileStat aStat = DirEntry( aStr ); nLen = aStat.GetSize(); +#else + DirectoryItem aItem; + FileBase::RC nRet = DirectoryItem::get( getFullPathUNC( aStr ), aItem ); + FileStatus aFileStatus( FileStatusMask_FileSize ); + nRet = aItem.getFileStatus( aFileStatus ); + nLen = (INT32)aFileStatus.getFileSize(); +#endif } rPar.Get(0)->PutLong( (long)nLen ); } @@ -1815,11 +1942,7 @@ RTLFUNC(Dir) { if ( nParCount >= 2 ) { - String aStr = getFullPath( rPar.Get(1)->GetString() ); - OUString aUNCPath; - FileBase::normalizePath( aStr, aUNCPath ); - OUString aFileURLStr; - FileBase::getFileURLFromNormalizedPath( aUNCPath, aFileURLStr ); + String aFileURLStr = getFullPath( rPar.Get(1)->GetString() ); try { @@ -1827,10 +1950,6 @@ RTLFUNC(Dir) sal_Bool bFolder = sal_False; try { bFolder = xSFI->isFolder( aFileURLStr ); } catch( Exception & ) {} - //catch( ::ucb::ContentCreationException & e ) - //{ - //::ucb::ContentCreationException::Reason aReason = e.getReason(); - //} if( bFolder ) { @@ -1843,10 +1962,6 @@ RTLFUNC(Dir) // Not folder but exists? Return file! sal_Bool bExists = sal_False; try { bExists = xSFI->exists( aFileURLStr ); } - //catch( ::ucb::ContentCreationException & e ) - //{ - //::ucb::ContentCreationException::Reason aReason = e.getReason(); - //} catch( Exception & ) {} if( bExists ) { @@ -1914,6 +2029,7 @@ RTLFUNC(Dir) else // --> UCB { +#ifdef _OLD_FILE_IMPL if ( nParCount >= 2 ) { delete pRTLData->pDir; @@ -1994,6 +2110,107 @@ RTLFUNC(Dir) } } rPar.Get(0)->PutString( aPath ); +#else + // TODO: OSL + if ( nParCount >= 2 ) + { + String aUNCStr = getFullPathUNC( rPar.Get(1)->GetString() ); + String aDirUNCStr; + + // Does path exist at all? TODO: Wildcards + DirectoryItem aItem; + FileBase::RC nRet = DirectoryItem::get( aUNCStr, aItem ); + sal_Bool bExists = (nRet == FileBase::RC::E_None); + + FileStatus aFileStatus( FileStatusMask_Type ); + nRet = aItem.getFileStatus( aFileStatus ); + FileStatus::Type aType = aFileStatus.getFileType(); + sal_Bool bFolder = (aType == FileStatus::Type::Directory); + + if( bFolder ) + { + aDirUNCStr = aUNCStr; + } + else + { + // Search last '/' + sal_Int32 iLastSlash = aUNCStr.SearchBackward( '/' ); + + if( bExists ) + { + String aNameOnlyStr; + if( iLastSlash != STRING_NOTFOUND ) + { + aNameOnlyStr = aUNCStr.Copy( iLastSlash + 1 ); + } + rPar.Get(0)->PutString( aNameOnlyStr ); + return; + } + if( iLastSlash != STRING_NOTFOUND ) + { + aDirUNCStr = aUNCStr.Copy( 0, iLastSlash ); + } + else + { + rPar.Get(0)->PutString( String() ); + return; + } + } + + USHORT nFlags = 0; + if ( nParCount > 2 ) + pRTLData->nDirFlags = nFlags = rPar.Get(2)->GetInteger(); + else + pRTLData->nDirFlags = 0; + + // Read directory + //sal_Bool bIncludeFolders = ((nFlags & Sb_ATTR_DIRECTORY) != 0); + pRTLData->pDir = new Directory( aDirUNCStr ); + nRet = pRTLData->pDir->open(); + if( nRet != FileBase::RC::E_None ) + { + delete pRTLData->pDir; + pRTLData->pDir = NULL; + rPar.Get(0)->PutString( String() ); + return; + } + //pRTLData->nCurDirPos = 0; + } + + if( pRTLData->pDir ) + { + sal_Bool bOnlyFolders = ((pRTLData->nDirFlags & Sb_ATTR_DIRECTORY) != 0); + for( ;; ) + { + DirectoryItem aItem; + FileBase::RC nRet = pRTLData->pDir->getNextItem( aItem ); + if( nRet != FileBase::RC::E_None ) + { + delete pRTLData->pDir; + pRTLData->pDir = NULL; + aPath.Erase(); + break; + } + + // Handle flags + FileStatus aFileStatus( FileStatusMask_Type | FileStatusMask_FileName ); + nRet = aItem.getFileStatus( aFileStatus ); + + // Only directories? + if( bOnlyFolders ) + { + FileStatus::Type aType = aFileStatus.getFileType(); + sal_Bool bFolder = (aType == FileStatus::Type::Directory); + if( !bFolder ) + continue; + } + + aPath = aFileStatus.getFileName(); + break; + } + } + rPar.Get(0)->PutString( aPath ); +#endif } } } @@ -2039,6 +2256,7 @@ RTLFUNC(GetAttr) else // --> UCB { +#ifdef _OLD_FILE_IMPL DirEntry aEntry( rPar.Get(1)->GetString() ); aEntry.ToAbs(); BOOL bUseFileStat = FALSE; @@ -2082,6 +2300,22 @@ RTLFUNC(GetAttr) if( aEntry.GetFlag() & FSYS_FLAG_VOLUME ) nFlags |= 0x0008; // ATTR_VOLUME } +#else + DirectoryItem aItem; + FileBase::RC nRet = DirectoryItem::get( getFullPathUNC( rPar.Get(1)->GetString() ), aItem ); + FileStatus aFileStatus( FileStatusMask_Attributes | FileStatusMask_Type ); + nRet = aItem.getFileStatus( aFileStatus ); + sal_uInt64 nAttributes = aFileStatus.getAttributes(); + sal_Bool bReadOnly = (nAttributes & Attribute_ReadOnly) != 0; + + FileStatus::Type aType = aFileStatus.getFileType(); + sal_Bool bDirectory = (aType == FileStatus::Type::Directory); + if( bReadOnly ) + nFlags |= 0x0001; // ATTR_READONLY + if( bDirectory ) + nFlags |= 0x0010; // ATTR_DIRECTORY + +#endif } rPar.Get(0)->PutInteger( nFlags ); } @@ -2096,7 +2330,6 @@ RTLFUNC(FileDateTime) StarBASIC::Error( SbERR_BAD_ARGUMENT ); else { - // <-- UCB String aPath = rPar.Get(1)->GetString(); Time aTime; @@ -2121,10 +2354,23 @@ RTLFUNC(FileDateTime) else // --> UCB { +#ifdef _OLD_FILE_IMPL DirEntry aEntry( aPath ); FileStat aStat( aEntry ); aTime = Time( aStat.TimeModified() ); aDate = Date( aStat.DateModified() ); +#else + DirectoryItem aItem; + FileBase::RC nRet = DirectoryItem::get( getFullPathUNC( aPath ), aItem ); + FileStatus aFileStatus( FileStatusMask_ModifyTime ); + nRet = aItem.getFileStatus( aFileStatus ); + TimeValue aTimeVal = aFileStatus.getModifyTime(); + oslDateTime aDT; + sal_Bool bRet = osl_getDateTimeFromTimeValue( &aTimeVal, &aDT ); + + aTime = Time( aDT.Hours, aDT.Minutes, aDT.Seconds, 10000000*aDT.NanoSeconds ); + aDate = Date( aDT.Day, aDT.Month, aDT.Year ); +#endif } double fSerial = (double)GetDayDiff( aDate ); @@ -3120,6 +3366,7 @@ RTLFUNC(SetAttr) // JSM else // --> UCB { +#ifdef _OLD_FILE_IMPL // #57064 Bei virtuellen URLs den Real-Path extrahieren DirEntry aEntry( aStr ); String aFile = aEntry.GetFull(); @@ -3156,6 +3403,11 @@ RTLFUNC(SetAttr) // JSM else StarBASIC::Error( SbERR_FILE_NOT_FOUND ); #endif +#else + sal_Bool bReadOnly = (nFlags & 0x0001) != 0; // ATTR_READONLY + sal_uInt64 nAttrs = bReadOnly ? Attribute_ReadOnly : 0; + String aPath = getFullPathUNC( rPar.Get(1)->GetString() ); +#endif } } else @@ -3217,8 +3469,14 @@ RTLFUNC(FileExists) else // --> UCB { +#ifdef _OLD_FILE_IMPL DirEntry aEntry( aStr ); bExists = aEntry.Exists(); +#else + DirectoryItem aItem; + FileBase::RC nRet = DirectoryItem::get( getFullPathUNC( aStr ), aItem ); + bExists = (nRet == FileBase::RC::E_None); +#endif } rPar.Get(0)->PutBool( bExists ); } diff --git a/basic/source/runtime/step0.cxx b/basic/source/runtime/step0.cxx index 2b848e97a2d4..0a94b4aeb04a 100644 --- a/basic/source/runtime/step0.cxx +++ b/basic/source/runtime/step0.cxx @@ -2,9 +2,9 @@ * * $RCSfile: step0.cxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 16:12:11 $ + * last change: $Author: ab $ $Date: 2000-09-26 09:01:52 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -747,6 +747,7 @@ void SbiRuntime::StepRENAME() // Rename Tos+1 to Tos else // --> UCB { +#ifdef _OLD_FILE_IMPL DirEntry aSourceDirEntry( aSource ); if( aSourceDirEntry.Exists() ) { @@ -755,6 +756,9 @@ void SbiRuntime::StepRENAME() // Rename Tos+1 to Tos } else StarBASIC::Error( SbERR_PATH_NOT_FOUND ); +#else + implStepRenameOSL( aSource, aDest ); +#endif } } |