See ChangeLog entry 19991109-17:20 EDT David G. Holm <dholm@jsd-llc.com>
This commit is contained in:
@@ -1,3 +1,15 @@
|
||||
19991109-17:20 EDT David G. Holm <dholm@jsd-llc.com>
|
||||
|
||||
* source/rtl/filesys.c
|
||||
% Replaced several #if tests of three or more manifest constants with
|
||||
tests for new single manifest constants that are defined using just
|
||||
one instance of the multiple tests. The new manifest constants are:
|
||||
HB_FS_FILE_IO, HB_FS_SOPEN, and HB_FS_DRIVE_LETTER. This will lessen
|
||||
the chances of missing one instance when other compilers are added.
|
||||
% Replaced the use of PATH_MAX with _POSIX_PATH_MAX, which is always
|
||||
defined, even for non-Posix compliant compilers, and eliminated the
|
||||
PATH_MAX definition.
|
||||
|
||||
Tue Nov 09 11:56:05 1999 Gonzalo A. Diethelm <Gonzalo.Diethelm@jda.cl>
|
||||
|
||||
* include/hbsetup.h:
|
||||
|
||||
@@ -203,9 +203,20 @@
|
||||
|
||||
static USHORT s_uiErrorLast = 0;
|
||||
|
||||
#if !defined(PATH_MAX)
|
||||
/* if PATH_MAX isn't defined, 256 bytes is a good number :) */
|
||||
#define PATH_MAX 256
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
/* Only compilers with Posix or Posix-like I/O support are supported */
|
||||
#define HB_FS_FILE_IO
|
||||
#endif
|
||||
|
||||
#if defined( _MSC_VER ) || defined(__MINGW32__) || defined(__IBMCPP__)
|
||||
/* These compilers use sopen() rather than open(), because their
|
||||
versions of open() do not support combined O_ and SH_ flags */
|
||||
#define HB_FS_SOPEN
|
||||
#endif
|
||||
|
||||
#if ( defined(HAVE_POSIX_IO) && ( defined(OS2) || defined(DOS) || defined(_Windows) ) && ! defined(__CYGWIN__) ) || defined(__MINGW32__)
|
||||
/* These platforms and/or compilers have common drive letter support */
|
||||
#define HB_FS_DRIVE_LETTER
|
||||
#endif
|
||||
|
||||
#if UINT_MAX == ULONG_MAX
|
||||
@@ -218,7 +229,7 @@ extern int rename( const char *, const char * );
|
||||
|
||||
/* Convert HARBOUR flags to IO subsystem flags */
|
||||
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_FILE_IO)
|
||||
|
||||
static int convert_open_flags( USHORT uiFlags )
|
||||
{
|
||||
@@ -230,7 +241,7 @@ static int convert_open_flags( USHORT uiFlags )
|
||||
result_flags |= O_BINARY;
|
||||
HB_TRACE(HB_TR_INFO, ("convert_open_flags: added O_BINARY\n"));
|
||||
|
||||
#if defined( _MSC_VER ) || defined(__MINGW32__) || defined(__IBMCPP__)
|
||||
#if defined(HB_FS_SOPEN)
|
||||
if( ( uiFlags & ( FO_WRITE | FO_READWRITE ) ) == FO_READ )
|
||||
{
|
||||
result_flags |= O_RDONLY;
|
||||
@@ -258,7 +269,7 @@ static int convert_open_flags( USHORT uiFlags )
|
||||
HB_TRACE(HB_TR_INFO, ("convert_open_flags: added O_RDWR\n"));
|
||||
}
|
||||
|
||||
#if ! defined(_MSC_VER) && ! defined(__MINGW32__) && ! defined(__IBMCPP__)
|
||||
#if ! defined(HB_FS_SOPEN)
|
||||
/* shared flags */
|
||||
if( ( uiFlags & FO_DENYREAD ) == FO_DENYREAD )
|
||||
{
|
||||
@@ -419,7 +430,7 @@ FHANDLE hb_fsCreate( BYTE * pFilename, USHORT uiFlags )
|
||||
|
||||
s_uiErrorLast = 0;
|
||||
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_FILE_IO)
|
||||
|
||||
errno = 0;
|
||||
convert_create_flags( uiFlags, &oflag, &pmode );
|
||||
@@ -446,7 +457,7 @@ void hb_fsClose( FHANDLE hFileHandle )
|
||||
{
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsClose(%p)", hFileHandle));
|
||||
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_FILE_IO)
|
||||
|
||||
errno = 0;
|
||||
close( hFileHandle );
|
||||
@@ -521,7 +532,7 @@ USHORT hb_fsRead( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsRead(%p, %p, %hu)", hFileHandle, pBuff, uiCount));
|
||||
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_FILE_IO)
|
||||
|
||||
errno = 0;
|
||||
uiRead = read( hFileHandle, pBuff, uiCount );
|
||||
@@ -545,7 +556,7 @@ USHORT hb_fsWrite( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsWrite(%p, %p, %hu)", hFileHandle, pBuff, uiCount));
|
||||
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_FILE_IO)
|
||||
|
||||
errno = 0;
|
||||
if( uiCount )
|
||||
@@ -577,7 +588,7 @@ ULONG hb_fsReadLarge( FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount )
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsReadLarge(%p, %p, %lu)", hFileHandle, pBuff, ulCount));
|
||||
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_FILE_IO)
|
||||
|
||||
errno = 0;
|
||||
#if defined(HB_FS_LARGE_OPTIMIZED)
|
||||
@@ -634,7 +645,7 @@ ULONG hb_fsWriteLarge( FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount )
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsWriteLarge(%p, %p, %lu)", hFileHandle, pBuff, ulCount));
|
||||
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_FILE_IO)
|
||||
|
||||
errno = 0;
|
||||
if( ulCount )
|
||||
@@ -703,7 +714,7 @@ ULONG hb_fsSeek( FHANDLE hFileHandle, LONG lOffset, USHORT uiFlags )
|
||||
if( lOffset < 0 && Flags == SEEK_SET )
|
||||
{
|
||||
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_FILE_IO)
|
||||
|
||||
/* get current offset */
|
||||
errno = 0;
|
||||
@@ -727,7 +738,7 @@ ULONG hb_fsSeek( FHANDLE hFileHandle, LONG lOffset, USHORT uiFlags )
|
||||
else
|
||||
{
|
||||
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_FILE_IO)
|
||||
|
||||
errno = 0;
|
||||
ulPos = lseek( hFileHandle, lOffset, Flags );
|
||||
@@ -756,7 +767,7 @@ ULONG hb_fsTell( FHANDLE hFileHandle )
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsTell(%p)", hFileHandle));
|
||||
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_FILE_IO)
|
||||
|
||||
errno = 0;
|
||||
ulPos = lseek( hFileHandle, 0L, SEEK_CUR );
|
||||
@@ -820,7 +831,7 @@ int hb_fsRename( BYTE * pOldName, BYTE * pNewName )
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsRename(%s, %s)", (char*) pOldName, (char*) pNewName));
|
||||
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_FILE_IO)
|
||||
|
||||
errno = 0;
|
||||
iResult = rename( ( char * ) pOldName, ( char * ) pNewName );
|
||||
@@ -923,7 +934,7 @@ void hb_fsCommit( FHANDLE hFileHandle )
|
||||
{
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsCommit(%p)", hFileHandle));
|
||||
|
||||
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_FILE_IO)
|
||||
|
||||
{
|
||||
int dup_handle;
|
||||
@@ -1021,11 +1032,11 @@ BOOL hb_fsRmDir( BYTE * pDirname )
|
||||
|
||||
BYTE * hb_fsCurDir( USHORT uiDrive )
|
||||
{
|
||||
static BYTE s_byDirBuffer[ PATH_MAX + 1 ];
|
||||
static BYTE s_byDirBuffer[ _POSIX_PATH_MAX + 1 ];
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsCurDir(%hu)", uiDrive));
|
||||
|
||||
hb_fsCurDirBuff( uiDrive, s_byDirBuffer, PATH_MAX + 1 );
|
||||
hb_fsCurDirBuff( uiDrive, s_byDirBuffer, _POSIX_PATH_MAX + 1 );
|
||||
|
||||
return ( BYTE * ) s_byDirBuffer;
|
||||
}
|
||||
@@ -1086,7 +1097,7 @@ USHORT hb_fsChDrv( BYTE nDrive )
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsChDrv(%d)", (int) nDrive));
|
||||
|
||||
#if ( defined(HAVE_POSIX_IO) && ( defined(OS2) || defined(DOS) || defined(_Windows) ) && ! defined(__CYGWIN__) ) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_DRIVE_LETTER)
|
||||
|
||||
{
|
||||
USHORT uiSave = _getdrive();
|
||||
@@ -1155,7 +1166,7 @@ USHORT hb_fsIsDrv( BYTE nDrive )
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsIsDrv(%d)", (int) nDrive));
|
||||
|
||||
#if ( defined(HAVE_POSIX_IO) && ( defined(OS2) || defined(DOS) || defined(_Windows) ) && ! defined(__CYGWIN__) ) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_DRIVE_LETTER)
|
||||
|
||||
{
|
||||
USHORT uiSave = _getdrive();
|
||||
@@ -1215,7 +1226,7 @@ BOOL hb_fsIsDevice( FHANDLE hFileHandle )
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsIsDevice(%p)", hFileHandle));
|
||||
|
||||
#if ( defined(HAVE_POSIX_IO) && ( defined(OS2) || defined(DOS) || defined(_Windows) ) && ! defined(__CYGWIN__) ) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_DRIVE_LETTER)
|
||||
|
||||
errno = 0;
|
||||
bResult = ( isatty( hFileHandle ) == 0 );
|
||||
@@ -1240,7 +1251,7 @@ BYTE hb_fsCurDrv( void )
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_fsCurDrv()"));
|
||||
|
||||
#if ( defined(HAVE_POSIX_IO) && ( defined(OS2) || defined(DOS) || defined(_Windows) ) && ! defined(__CYGWIN__) ) || defined(__MINGW32__)
|
||||
#if defined(HB_FS_DRIVE_LETTER)
|
||||
|
||||
{
|
||||
errno = 0;
|
||||
@@ -1476,10 +1487,10 @@ HARBOUR HB_FREADSTR( void )
|
||||
HARBOUR HB_CURDIR( void )
|
||||
{
|
||||
USHORT uiErrorOld = s_uiErrorLast;
|
||||
BYTE * pbyBuffer = ( BYTE * ) hb_xgrab( PATH_MAX + 1 );
|
||||
BYTE * pbyBuffer = ( BYTE * ) hb_xgrab( _POSIX_PATH_MAX + 1 );
|
||||
|
||||
hb_fsCurDirBuff( ( ISCHAR( 1 ) && hb_parclen( 1 ) > 0 ) ?
|
||||
( USHORT )( toupper( *hb_parc( 1 ) ) - 'A' + 1 ) : 0, pbyBuffer, PATH_MAX + 1 );
|
||||
( USHORT )( toupper( *hb_parc( 1 ) ) - 'A' + 1 ) : 0, pbyBuffer, _POSIX_PATH_MAX + 1 );
|
||||
|
||||
hb_retc( ( char * ) pbyBuffer );
|
||||
hb_xfree( pbyBuffer );
|
||||
|
||||
Reference in New Issue
Block a user