*** empty log message ***

This commit is contained in:
Paul Tucker
1999-08-29 20:12:50 +00:00
parent 655663b36a
commit 5467096d41
3 changed files with 79 additions and 105 deletions

View File

@@ -1,3 +1,12 @@
19990829-15:47 EDT Paul Tucker <ptucker@sympatico.ca>
* include/filesys.h
* hb_fsDelete and hb_fsRename now return int
* source/rtl/filesys.c
hb_fsDelete(), hb_fsRename
now Clipper compatible (so far, only tested with msvc)
combined _some_ #if posix and msc_ver statements since posix version
works with msvc
19990829-13:30 EDT Paul Tucker <ptucker@sympatico.ca>
* source/include/set.h
rearrange set struct to be in correct order

View File

@@ -68,7 +68,7 @@ extern void hb_fsCommit ( FHANDLE hFileHandle );
extern FHANDLE hb_fsCreate ( BYTE * pFilename, USHORT uiAttribute );
extern BYTE * hb_fsCurDir ( USHORT uiDrive );
extern BYTE hb_fsCurDrv ( void );
extern void hb_fsDelete ( BYTE * pFilename );
extern int hb_fsDelete ( BYTE * pFilename );
extern USHORT hb_fsError ( void );
extern FHANDLE hb_fsExtOpen ( BYTE * pFilename, BYTE * pDefExt,
USHORT uiFlags, BYTE * pPaths, PHB_ITEM pError );
@@ -79,7 +79,7 @@ extern BOOL hb_fsMkDir ( BYTE * pDirName );
extern FHANDLE hb_fsOpen ( BYTE * pFilename, USHORT uiFlags );
extern USHORT hb_fsRead ( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount );
extern BOOL hb_fsRmDir ( BYTE * pDirName );
extern void hb_fsRename ( BYTE * pOldName, BYTE * pNewName );
extern int hb_fsRename ( BYTE * pOldName, BYTE * pNewName );
extern ULONG hb_fsSeek ( FHANDLE hFileHandle, LONG lOffset, USHORT uiMode );
extern USHORT hb_fsWrite ( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount );

View File

@@ -264,7 +264,7 @@ FHANDLE hb_fsCreate ( BYTE * pFilename, USHORT uiFlags )
s_uiErrorLast = 0;
#if defined(HAVE_POSIX_IO)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
errno = 0;
convert_create_flags( uiFlags, &oflag, &pmode );
@@ -279,25 +279,8 @@ FHANDLE hb_fsCreate ( BYTE * pFilename, USHORT uiFlags )
#else
#if defined(_MSC_VER)
errno = 0;
convert_create_flags( uiFlags, &oflag, &pmode );
hFileHandle = _open( ( char * ) pFilename, oflag, pmode );
if( hFileHandle == -1 )
{
/* This if block is required, because errno will be set
if the file did not exist and had to be created, even
when the create is successful! */
s_uiErrorLast = errno;
}
#else
hFileHandle = FS_ERROR;
s_uiErrorLast = FS_ERROR;
#endif
hFileHandle = FS_ERROR;
s_uiErrorLast = FS_ERROR;
#endif
@@ -306,7 +289,7 @@ FHANDLE hb_fsCreate ( BYTE * pFilename, USHORT uiFlags )
void hb_fsClose ( FHANDLE hFileHandle )
{
#if defined(HAVE_POSIX_IO)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
errno = 0;
close( hFileHandle );
@@ -314,27 +297,21 @@ void hb_fsClose ( FHANDLE hFileHandle )
#else
#if defined(_MSC_VER)
errno = 0;
_close( hFileHandle );
s_uiErrorLast = errno;
#else
s_uiErrorLast = FS_ERROR;
#endif
s_uiErrorLast = FS_ERROR;
#endif
/* Convert 'Invalid Memory Block' to 'Invalid Handle' */
if( s_uiErrorLast == 9 )
s_uiErrorLast = 6;
}
USHORT hb_fsRead ( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
{
USHORT uiRead;
#if defined(HAVE_POSIX_IO)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
errno = 0;
uiRead = read( hFileHandle, pBuff, uiCount );
@@ -344,20 +321,8 @@ USHORT hb_fsRead ( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
#else
#if defined(_MSC_VER)
errno = 0;
uiRead = _read( hFileHandle, pBuff, uiCount );
s_uiErrorLast = errno;
if( uiRead == ( USHORT )-1 )
uiRead = 0;
#else
uiRead = 0;
s_uiErrorLast = FS_ERROR;
#endif
uiRead = 0;
s_uiErrorLast = FS_ERROR;
#endif
@@ -368,7 +333,7 @@ USHORT hb_fsWrite ( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
{
USHORT uiWritten;
#if defined(HAVE_POSIX_IO)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
errno = 0;
uiWritten = write( hFileHandle, pBuff, uiCount );
@@ -378,20 +343,8 @@ USHORT hb_fsWrite ( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
#else
#if defined(_MSC_VER)
errno = 0;
uiWritten = _write( hFileHandle, pBuff, uiCount );
s_uiErrorLast = errno;
if( uiWritten == ( USHORT )-1 )
uiWritten = 0;
#else
uiWritten = 0;
s_uiErrorLast = FS_ERROR;
#endif
uiWritten = 0;
s_uiErrorLast = FS_ERROR;
#endif
@@ -400,30 +353,45 @@ USHORT hb_fsWrite ( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
ULONG hb_fsSeek ( FHANDLE hFileHandle, LONG lOffset, USHORT uiFlags )
{
ULONG ulPos;
ULONG ulPos = -1;
USHORT Flags = convert_seek_flags( uiFlags );
#if defined(HAVE_POSIX_IO)
if( lOffset < 0 && Flags == SEEK_SET )
{
/* 'Seek Error' */
s_uiErrorLast = 25;
errno = 0;
ulPos = lseek( hFileHandle, lOffset, convert_seek_flags( uiFlags ) );
s_uiErrorLast = errno;
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
/* get current offset */
errno = 0;
ulPos = lseek( hFileHandle, 0, SEEK_CUR );
if( errno != 0 )
s_uiErrorLast = errno;
#endif
#else
}
else
{
#if defined(_MSC_VER)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
errno = 0;
ulPos = _lseek( hFileHandle, lOffset, convert_seek_flags( uiFlags ) );
ulPos = lseek( hFileHandle, lOffset, Flags );
s_uiErrorLast = errno;
#else
#else
ulPos = 0;
s_uiErrorLast = FS_ERROR;
#endif
#endif
#endif
/* Convert 'Unknown Command' to 'Seek Error' */
if( s_uiErrorLast == 22 )
s_uiErrorLast = 25;
}
return ulPos;
}
@@ -433,12 +401,14 @@ USHORT hb_fsError ( void )
return s_uiErrorLast;
}
void hb_fsDelete ( BYTE * pFilename )
int hb_fsDelete ( BYTE * pFilename )
{
int retval;
#if defined(HAVE_POSIX_IO)
errno = 0;
unlink( ( char * ) pFilename );
retval = unlink( ( char * ) pFilename );
s_uiErrorLast = errno;
#else
@@ -446,7 +416,7 @@ void hb_fsDelete ( BYTE * pFilename )
#if defined(_MSC_VER)
errno = 0;
remove( ( char *) pFilename );
retval = remove( ( char *) pFilename );
s_uiErrorLast = errno;
#else
@@ -456,14 +426,17 @@ void hb_fsDelete ( BYTE * pFilename )
#endif
#endif
return retval;
}
void hb_fsRename ( BYTE * pOldName, BYTE * pNewName )
int hb_fsRename ( BYTE * pOldName, BYTE * pNewName )
{
int retval = -1;
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
errno = 0;
rename( ( char * ) pOldName, ( char * ) pNewName );
retval = rename( ( char * ) pOldName, ( char * ) pNewName );
s_uiErrorLast = errno;
#else
@@ -471,6 +444,8 @@ void hb_fsRename ( BYTE * pOldName, BYTE * pNewName )
s_uiErrorLast = FS_ERROR;
#endif
return retval;
}
BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart,
@@ -528,7 +503,7 @@ BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart,
void hb_fsCommit ( FHANDLE hFileHandle )
{
#if defined(HAVE_POSIX_IO)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
int dup_handle;
@@ -543,25 +518,8 @@ void hb_fsCommit ( FHANDLE hFileHandle )
}
#else
#if defined(_MSC_VER)
int dup_handle;
errno = 0;
dup_handle = _dup( hFileHandle );
s_uiErrorLast = errno;
if( dup_handle != -1 )
{
_close( dup_handle );
s_uiErrorLast = errno;
}
#else
s_uiErrorLast = FS_ERROR;
#endif
s_uiErrorLast = FS_ERROR;
#endif
}
@@ -821,23 +779,30 @@ HARBOUR HB_FCLOSE( void )
HARBOUR HB_FERASE( void )
{
int retval = -1;
s_uiErrorLast = 3;
if( ISCHAR( 1 ) )
{
hb_fsDelete( ( BYTE * ) hb_parc( 1 ) );
retval = hb_fsDelete( ( BYTE * ) hb_parc( 1 ) );
}
hb_retni( s_uiErrorLast );
hb_retni( retval );
}
HARBOUR HB_FRENAME( void )
{
int retval = -1;
s_uiErrorLast = 2;
if( ISCHAR( 1 ) && ISCHAR( 2 ) )
{
hb_fsRename( ( BYTE * ) hb_parc( 1 ),
( BYTE * ) hb_parc( 2 ) );
retval = hb_fsRename( ( BYTE * ) hb_parc( 1 ),
( BYTE * ) hb_parc( 2 ) );
}
hb_retni( s_uiErrorLast );
hb_retni( retval );
}
HARBOUR HB_FSEEK( void )