static HB_FHANDLE s_fileHandle( PHB_FILE pFile ) { HB_SYMBOL_UNUSED( pFile ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return ( HB_FHANDLE ) FS_ERROR; }
static HB_FOFFSET s_fileSize( PHB_FILE pFile ) { HB_SYMBOL_UNUSED( pFile ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return 0; }
static HB_BOOL s_fileDelete( const char * pszFileName ) { HB_SYMBOL_UNUSED( pszFileName ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static char * s_fileLinkRead( const char * pszFileName ) { HB_SYMBOL_UNUSED( pszFileName ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return NULL; }
static HB_BOOL s_fileEof( PHB_FILE pFile ) { HB_SYMBOL_UNUSED( pFile ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_TRUE; }
static HB_BOOL s_fileLock( PHB_FILE pFile, HB_FOFFSET nStart, HB_FOFFSET nLen, int iType ) { HB_BOOL fResult, fLockFS = HB_FALSE; if( ( iType & FL_MASK ) == FL_UNLOCK ) { hb_threadEnterCriticalSection( &s_fileMtx ); fResult = hb_fileUnlock( pFile, &fLockFS, nStart, nLen ); hb_threadLeaveCriticalSection( &s_fileMtx ); if( fLockFS ) { hb_fsLockLarge( pFile->hFile, nStart, nLen, ( HB_USHORT ) iType ); hb_threadEnterCriticalSection( &s_fileMtx ); hb_fileUnlock( pFile, NULL, nStart, nLen ); hb_threadLeaveCriticalSection( &s_fileMtx ); } else hb_fsSetError( fResult ? 0 : 33 ); } else { hb_threadEnterCriticalSection( &s_fileMtx ); fResult = hb_fileSetLock( pFile, &fLockFS, nStart, nLen ); hb_threadLeaveCriticalSection( &s_fileMtx ); if( fLockFS ) { #if defined( HB_OS_UNIX ) if( pFile->readonly ) iType |= FLX_SHARED; #endif fResult = hb_fsLockLarge( pFile->hFile, nStart, nLen, ( HB_USHORT ) iType ); if( ! fResult ) { hb_threadEnterCriticalSection( &s_fileMtx ); hb_fileUnlock( pFile, NULL, nStart, nLen ); hb_threadLeaveCriticalSection( &s_fileMtx ); } } else hb_fsSetError( fResult ? 0 : 33 ); } return fResult; }
static HB_BOOL s_fileLinkSym( const char * pszTarget, const char * pszNewName ) { HB_SYMBOL_UNUSED( pszTarget ); HB_SYMBOL_UNUSED( pszNewName ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static HB_BOOL s_fileLink( const char * pszExisting, const char * pszNewName ) { HB_SYMBOL_UNUSED( pszExisting ); HB_SYMBOL_UNUSED( pszNewName ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static HB_BOOL s_fileAttrSet( const char * pszFileName, HB_FATTR nAttr ) { HB_SYMBOL_UNUSED( pszFileName ); HB_SYMBOL_UNUSED( nAttr ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static HB_BOOL s_fileRename( const char * pszName, const char * pszNewName ) { HB_SYMBOL_UNUSED( pszName ); HB_SYMBOL_UNUSED( pszNewName ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static PHB_ITEM s_fileDirectory( const char * pszDirSpec, const char * pszAttr ) { HB_SYMBOL_UNUSED( pszDirSpec ); HB_SYMBOL_UNUSED( pszAttr ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return NULL; }
static HB_BOOL s_fileDirRemove( PHB_FILE_FUNCS pFuncs, const char * pszDirName ) { HB_SYMBOL_UNUSED( pFuncs ); HB_SYMBOL_UNUSED( pszDirName ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static HB_BOOL s_fileCopy( const char * pSrcFile, const char * pszDstFile ) { HB_SYMBOL_UNUSED( pSrcFile ); HB_SYMBOL_UNUSED( pszDstFile ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static HB_BOOL s_fileTruncAt( PHB_FILE pFile, HB_FOFFSET nOffset ) { HB_SYMBOL_UNUSED( pFile ); HB_SYMBOL_UNUSED( nOffset ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static HB_BOOL s_fileExists( const char * pszFileName, char * pRetPath ) { HB_SYMBOL_UNUSED( pszFileName ); HB_SYMBOL_UNUSED( pRetPath ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static double s_fileDirSpace( const char * pszDirName, HB_USHORT uiType ) { HB_SYMBOL_UNUSED( pszDirName ); HB_SYMBOL_UNUSED( uiType ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return 0.0; }
static HB_BOOL s_fileTimeSet( const char * pszFileName, long lJulian, long lMillisec ) { HB_SYMBOL_UNUSED( pszFileName ); HB_SYMBOL_UNUSED( lJulian ); HB_SYMBOL_UNUSED( lMillisec ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static HB_BOOL s_fileAttrGet( PHB_FILE_FUNCS pFuncs, const char * pszFileName, HB_FATTR * pnAttr ) { HB_SYMBOL_UNUSED( pFuncs ); HB_SYMBOL_UNUSED( pszFileName ); HB_SYMBOL_UNUSED( pnAttr ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static HB_BOOL s_fileConfigure( PHB_FILE pFile, int iIndex, PHB_ITEM pValue ) { HB_SYMBOL_UNUSED( pFile ); HB_SYMBOL_UNUSED( iIndex ); HB_SYMBOL_UNUSED( pValue ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static HB_FOFFSET s_fileposSeek( PHB_FILE pFilePos, HB_FOFFSET nOffset, HB_USHORT uiFlags ) { if( uiFlags & FS_END ) nOffset += pFilePos->pFuncs->Size( pFilePos ); else if( uiFlags & FS_RELATIVE ) nOffset += _PHB_FILEPOS->seek_pos; /* else FS_SET */ if( nOffset >= 0 ) { _PHB_FILEPOS->seek_pos = nOffset; hb_fsSetError( 0 ); } else hb_fsSetError( 25 ); /* 'Seek Error' */ return _PHB_FILEPOS->seek_pos; }
HB_BOOL hb_fsCopy( const char * pszSource, const char * pszDest ) { HB_BOOL fResult = HB_FALSE; PHB_FILE pSrcFile; if( ( pSrcFile = hb_fileExtOpen( pszSource, NULL, FO_READ | FO_SHARED | FXO_SHARELOCK, NULL, NULL ) ) != NULL ) { PHB_FILE pDstFile; HB_ERRCODE errCode; if( ( pDstFile = hb_fileExtOpen( pszDest, NULL, FXO_TRUNCATE | FO_READWRITE | FO_EXCLUSIVE | FXO_SHARELOCK, NULL, NULL ) ) != NULL ) { void * pbyBuffer = hb_xgrab( HB_FSCOPY_BUFFERSIZE ); for( ;; ) { HB_SIZE nBytesRead; if( ( nBytesRead = hb_fileRead( pSrcFile, pbyBuffer, HB_FSCOPY_BUFFERSIZE, -1 ) ) > 0 && nBytesRead != ( HB_SIZE ) FS_ERROR ) { if( nBytesRead != hb_fileWrite( pDstFile, pbyBuffer, nBytesRead, -1 ) ) { errCode = hb_fsError(); break; } } else { errCode = hb_fsError(); fResult = errCode == 0; break; } } hb_xfree( pbyBuffer ); hb_fileClose( pDstFile ); } else errCode = hb_fsError(); hb_fileClose( pSrcFile ); if( fResult ) { HB_FATTR ulAttr; if( hb_fileAttrGet( pszSource, &ulAttr ) ) hb_fileAttrSet( pszDest, ulAttr ); } hb_fsSetError( errCode ); } return fResult; }
static HB_FOFFSET s_fileSeek( PHB_FILE pFile, HB_FOFFSET nOffset, HB_USHORT uiFlags ) { HB_SYMBOL_UNUSED( pFile ); HB_SYMBOL_UNUSED( nOffset ); HB_SYMBOL_UNUSED( uiFlags ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return 0; }
static HB_BOOL s_fileTimeGet( PHB_FILE_FUNCS pFuncs, const char * pszFileName, long * plJulian, long * plMillisec ) { HB_SYMBOL_UNUSED( pFuncs ); HB_SYMBOL_UNUSED( pszFileName ); HB_SYMBOL_UNUSED( plJulian ); HB_SYMBOL_UNUSED( plMillisec ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static HB_SIZE s_fileWriteAt( PHB_FILE pFile, const void * buffer, HB_SIZE nSize, HB_FOFFSET nOffset ) { HB_SYMBOL_UNUSED( pFile ); HB_SYMBOL_UNUSED( buffer ); HB_SYMBOL_UNUSED( nSize ); HB_SYMBOL_UNUSED( nOffset ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return 0; }
static HB_SIZE s_fileWrite( PHB_FILE pFile, const void * data, HB_SIZE nSize, HB_MAXINT timeout ) { HB_SYMBOL_UNUSED( pFile ); HB_SYMBOL_UNUSED( data ); HB_SYMBOL_UNUSED( nSize ); HB_SYMBOL_UNUSED( timeout ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return 0; }
static int s_fileLockTest( PHB_FILE pFile, HB_FOFFSET nStart, HB_FOFFSET nLen, int iType ) { HB_SYMBOL_UNUSED( pFile ); HB_SYMBOL_UNUSED( nStart ); HB_SYMBOL_UNUSED( nLen ); HB_SYMBOL_UNUSED( iType ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return -1; }
static HB_BOOL s_fileLock( PHB_FILE pFile, HB_FOFFSET nStart, HB_FOFFSET nLen, int iType ) { HB_SYMBOL_UNUSED( pFile ); HB_SYMBOL_UNUSED( nStart ); HB_SYMBOL_UNUSED( nLen ); HB_SYMBOL_UNUSED( iType ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return HB_FALSE; }
static PHB_FILE s_fileOpen( PHB_FILE_FUNCS pFuncs, const char * pszName, const char * pszDefExt, HB_FATTR nExFlags, const char * pPaths, PHB_ITEM pError ) { PHB_FILE pFile = NULL; HB_ERRCODE errcode = 0; int iPort, iTimeout, iBaud, iParity, iSize, iStop, iFlow; HB_BOOL fRead, fWrite; HB_SYMBOL_UNUSED( pFuncs ); HB_SYMBOL_UNUSED( pszDefExt ); HB_SYMBOL_UNUSED( pPaths ); fRead = fWrite = HB_TRUE; iPort = s_filePortParams( pszName, &iTimeout, &iBaud, &iParity, &iSize, &iStop, &iFlow ); if( iPort > 0 ) { if( hb_comOpen( iPort ) == 0 && hb_comInit( iPort, iBaud, iParity, iSize, iStop ) == 0 && hb_comFlowControl( iPort, NULL, iFlow ) == 0 ) { switch( nExFlags & ( FO_READ | FO_WRITE | FO_READWRITE ) ) { case FO_READ: fWrite = HB_FALSE; break; case FO_WRITE: fRead = HB_FALSE; break; } pFile = s_fileNew( iPort, iTimeout, fRead, fWrite ); } else errcode = hb_comGetError( iPort ); } else errcode = HB_COM_ERR_WRONGPORT; hb_fsSetError( errcode ); if( pError ) { hb_errPutFileName( pError, pszName ); if( pFile == NULL ) { hb_errPutOsCode( pError, errcode ); hb_errPutGenCode( pError, ( HB_ERRCODE ) EG_OPEN ); } } return pFile; }
HB_ULONG hb_fsOS2DosSetFileSizeL( HB_FHANDLE hFile, HB_FOFFSET nSize ) { APIRET ret; if( hb_isWSeB() ) ret = s_DosSetFileSizeL( ( HFILE ) hFile, ( LONGLONG ) nSize ); else ret = DosSetFileSize( ( HFILE ) hFile, ( ULONG ) nSize ); hb_fsSetError( ( HB_ERRCODE ) ret ); return ret; }
static PHB_FILE s_fileOpen( const char * pszName, const char * pszDefExt, HB_USHORT uiExFlags, const char * pPaths, PHB_ITEM pError ) { HB_SYMBOL_UNUSED( pszName ); HB_SYMBOL_UNUSED( pszDefExt ); HB_SYMBOL_UNUSED( uiExFlags ); HB_SYMBOL_UNUSED( pszDefExt ); HB_SYMBOL_UNUSED( pPaths ); HB_SYMBOL_UNUSED( pError ); hb_fsSetError( HB_FILE_ERR_UNSUPPORTED ); return NULL; }