2014-02-26 00:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
* src/rtl/filebuf.c
+ added new C function hb_filePOpen()
* include/hbset.h
* src/vm/set.c
* src/rtl/console.c
* changed hb_fs*() API to hb_file*() API in HVM SETs
* src/vm/memvars.c
* changed hb_fs*() API to hb_file*() API in .mem files
* src/vm/runner.c
* changed hb_fs*() API to hb_file*() API in .hrb files
* include/hbapifs.h
* src/rtl/filesys.c
* renamed hb_fsPOpen() param
This commit is contained in:
@@ -10,6 +10,26 @@
|
||||
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
|
||||
*/
|
||||
|
||||
2014-02-26 00:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
|
||||
* include/hbapifs.h
|
||||
* src/rtl/filebuf.c
|
||||
+ added new C function hb_filePOpen()
|
||||
|
||||
* include/hbset.h
|
||||
* src/vm/set.c
|
||||
* src/rtl/console.c
|
||||
* changed hb_fs*() API to hb_file*() API in HVM SETs
|
||||
|
||||
* src/vm/memvars.c
|
||||
* changed hb_fs*() API to hb_file*() API in .mem files
|
||||
|
||||
* src/vm/runner.c
|
||||
* changed hb_fs*() API to hb_file*() API in .hrb files
|
||||
|
||||
* include/hbapifs.h
|
||||
* src/rtl/filesys.c
|
||||
* renamed hb_fsPOpen() param
|
||||
|
||||
2014-02-25 19:34 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
|
||||
* contrib/hbhpdf/3rd/libhpdf/hpdffdfj.c
|
||||
! removed executable attribute
|
||||
|
||||
@@ -174,7 +174,7 @@ extern HB_EXPORT HB_BOOL hb_fsTruncAt ( HB_FHANDLE hFileHandle, HB_FOFFSE
|
||||
extern HB_EXPORT HB_USHORT hb_fsWrite ( HB_FHANDLE hFileHandle, const void * pBuff, HB_USHORT uiCount ); /* write to an open file from a buffer (<=64K) */
|
||||
extern HB_EXPORT HB_SIZE hb_fsWriteLarge ( HB_FHANDLE hFileHandle, const void * pBuff, HB_SIZE nCount ); /* write to an open file from a buffer (>64K) */
|
||||
extern HB_EXPORT HB_SIZE hb_fsWriteAt ( HB_FHANDLE hFileHandle, const void * pBuff, HB_SIZE nCount, HB_FOFFSET nOffset ); /* write to an open file at given offset from a buffer (>64K) */
|
||||
extern HB_EXPORT HB_FHANDLE hb_fsPOpen ( const char * pszFileName, const char * pMode );
|
||||
extern HB_EXPORT HB_FHANDLE hb_fsPOpen ( const char * pszFileName, const char * pszMode );
|
||||
extern HB_EXPORT HB_BOOL hb_fsPipeCreate ( HB_FHANDLE hPipe[ 2 ] );
|
||||
extern HB_EXPORT HB_BOOL hb_fsPipeUnblock ( HB_FHANDLE hPipeHandle );
|
||||
extern HB_EXPORT HB_SIZE hb_fsPipeIsData ( HB_FHANDLE hPipeHandle, HB_SIZE nBufferSize, HB_MAXINT nTimeOut );
|
||||
@@ -404,6 +404,8 @@ extern HB_EXPORT PHB_FILE hb_fileCreateTempEx( char * pszName,
|
||||
const char * pszExt,
|
||||
HB_FATTR ulAttr );
|
||||
|
||||
extern HB_EXPORT PHB_FILE hb_filePOpen( const char * pszFileName, const char * pszMode );
|
||||
|
||||
/* wrapper to fopen() which calls hb_fsNameConv() */
|
||||
extern HB_EXPORT FILE * hb_fopen( const char *path, const char *mode );
|
||||
|
||||
|
||||
@@ -144,9 +144,9 @@ typedef struct
|
||||
/* Lower case members are indirectly related to a SET */
|
||||
HB_BOOL hb_set_century;
|
||||
HB_BOOL hb_set_prndevice;
|
||||
HB_FHANDLE hb_set_althan;
|
||||
HB_FHANDLE hb_set_extrahan;
|
||||
HB_FHANDLE hb_set_printhan;
|
||||
PHB_FILE hb_set_althan;
|
||||
PHB_FILE hb_set_extrahan;
|
||||
PHB_FILE hb_set_printhan;
|
||||
HB_PATHNAMES * hb_set_path;
|
||||
void * hb_set_oscp;
|
||||
void * hb_set_dbcp;
|
||||
@@ -263,10 +263,10 @@ extern HB_EXPORT HB_PATHNAMES * hb_setGetFirstSetPath( void );
|
||||
extern HB_EXPORT HB_BOOL hb_setGetCentury( void );
|
||||
extern HB_EXPORT HB_BOOL hb_setSetCentury( HB_BOOL );
|
||||
|
||||
extern HB_EXPORT HB_FHANDLE hb_setGetAltHan( void );
|
||||
extern HB_EXPORT HB_FHANDLE hb_setGetExtraHan( void );
|
||||
extern HB_EXPORT HB_FHANDLE hb_setGetPrintHan( void );
|
||||
extern HB_EXPORT HB_FHANDLE hb_setGetPrinterHandle( int );
|
||||
extern HB_EXPORT PHB_FILE hb_setGetAltHan( void );
|
||||
extern HB_EXPORT PHB_FILE hb_setGetExtraHan( void );
|
||||
extern HB_EXPORT PHB_FILE hb_setGetPrintHan( void );
|
||||
extern HB_EXPORT PHB_FILE hb_setGetPrinterHandle( int );
|
||||
extern HB_EXPORT HB_BOOL hb_setGetAlternate( void );
|
||||
extern HB_EXPORT const char * hb_setGetAltFile( void );
|
||||
extern HB_EXPORT HB_BOOL hb_setGetAutOpen( void );
|
||||
|
||||
@@ -241,29 +241,29 @@ void hb_conOutErr( const char * szStr, HB_SIZE nLen )
|
||||
/* Output an item to the screen and/or printer and/or alternate */
|
||||
void hb_conOutAlt( const char * szStr, HB_SIZE nLen )
|
||||
{
|
||||
HB_FHANDLE hFile;
|
||||
PHB_FILE pFile;
|
||||
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_conOutAlt(%s, %" HB_PFS "u)", szStr, nLen ) );
|
||||
|
||||
if( hb_setGetConsole() )
|
||||
hb_gtWriteCon( szStr, nLen );
|
||||
|
||||
if( hb_setGetAlternate() && ( hFile = hb_setGetAltHan() ) != FS_ERROR )
|
||||
if( hb_setGetAlternate() && ( pFile = hb_setGetAltHan() ) != NULL )
|
||||
{
|
||||
/* Print to alternate file if SET ALTERNATE ON and valid alternate file */
|
||||
hb_fsWriteLarge( hFile, szStr, nLen );
|
||||
hb_fileWrite( pFile, szStr, nLen, -1 );
|
||||
}
|
||||
|
||||
if( ( hFile = hb_setGetExtraHan() ) != FS_ERROR )
|
||||
if( ( pFile = hb_setGetExtraHan() ) != NULL )
|
||||
{
|
||||
/* Print to extra file if valid alternate file */
|
||||
hb_fsWriteLarge( hFile, szStr, nLen );
|
||||
hb_fileWrite( pFile, szStr, nLen, -1 );
|
||||
}
|
||||
|
||||
if( ( hFile = hb_setGetPrinterHandle( HB_SET_PRN_CON ) ) != FS_ERROR )
|
||||
if( ( pFile = hb_setGetPrinterHandle( HB_SET_PRN_CON ) ) != NULL )
|
||||
{
|
||||
/* Print to printer if SET PRINTER ON and valid printer file */
|
||||
hb_fsWriteLarge( hFile, szStr, nLen );
|
||||
hb_fileWrite( pFile, szStr, nLen, -1 );
|
||||
hb_prnPos()->col += ( int ) nLen;
|
||||
}
|
||||
}
|
||||
@@ -271,14 +271,14 @@ void hb_conOutAlt( const char * szStr, HB_SIZE nLen )
|
||||
/* Output an item to the screen and/or printer */
|
||||
static void hb_conOutDev( const char * szStr, HB_SIZE nLen )
|
||||
{
|
||||
HB_FHANDLE hFile;
|
||||
PHB_FILE pFile;
|
||||
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_conOutDev(%s, %" HB_PFS "u)", szStr, nLen ) );
|
||||
|
||||
if( ( hFile = hb_setGetPrinterHandle( HB_SET_PRN_DEV ) ) != FS_ERROR )
|
||||
if( ( pFile = hb_setGetPrinterHandle( HB_SET_PRN_DEV ) ) != NULL )
|
||||
{
|
||||
/* Display to printer if SET DEVICE TO PRINTER and valid printer file */
|
||||
hb_fsWriteLarge( hFile, szStr, nLen );
|
||||
hb_fileWrite( pFile, szStr, nLen, -1 );
|
||||
hb_prnPos()->col += ( int ) nLen;
|
||||
}
|
||||
else
|
||||
@@ -361,11 +361,11 @@ HB_FUNC( QQOUT ) /* writes a list of values to the current device (screen or pri
|
||||
|
||||
HB_FUNC( QOUT )
|
||||
{
|
||||
HB_FHANDLE hFile;
|
||||
PHB_FILE pFile;
|
||||
|
||||
hb_conOutAlt( s_szCrLf, s_iCrLfLen );
|
||||
|
||||
if( ( hFile = hb_setGetPrinterHandle( HB_SET_PRN_CON ) ) != FS_ERROR )
|
||||
if( ( pFile = hb_setGetPrinterHandle( HB_SET_PRN_CON ) ) != NULL )
|
||||
{
|
||||
char buf[ 256 ];
|
||||
PHB_PRNPOS pPrnPos = hb_prnPos();
|
||||
@@ -379,13 +379,13 @@ HB_FUNC( QOUT )
|
||||
{
|
||||
char * pBuf = ( char * ) hb_xgrab( pPrnPos->col );
|
||||
memset( pBuf, ' ', pPrnPos->col );
|
||||
hb_fsWrite( hFile, pBuf, ( HB_USHORT ) pPrnPos->col );
|
||||
hb_fileWrite( pFile, pBuf, ( HB_USHORT ) pPrnPos->col, -1 );
|
||||
hb_xfree( pBuf );
|
||||
}
|
||||
else
|
||||
{
|
||||
memset( buf, ' ', pPrnPos->col );
|
||||
hb_fsWrite( hFile, buf, ( HB_USHORT ) pPrnPos->col );
|
||||
hb_fileWrite( pFile, buf, ( HB_USHORT ) pPrnPos->col, -1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -396,12 +396,12 @@ HB_FUNC( QOUT )
|
||||
HB_FUNC( __EJECT ) /* Ejects the current page from the printer */
|
||||
{
|
||||
PHB_PRNPOS pPrnPos;
|
||||
HB_FHANDLE hFile;
|
||||
PHB_FILE pFile;
|
||||
|
||||
if( ( hFile = hb_setGetPrinterHandle( HB_SET_PRN_ANY ) ) != FS_ERROR )
|
||||
if( ( pFile = hb_setGetPrinterHandle( HB_SET_PRN_ANY ) ) != NULL )
|
||||
{
|
||||
static const char s_szEop[ 4 ] = { 0x0C, 0x0D, 0x00, 0x00 }; /* Buffer is 4 bytes to make CodeGuard happy */
|
||||
hb_fsWrite( hFile, s_szEop, 2 );
|
||||
hb_fileWrite( pFile, s_szEop, 2, -1 );
|
||||
}
|
||||
|
||||
pPrnPos = hb_prnPos();
|
||||
@@ -420,14 +420,14 @@ HB_FUNC( PCOL ) /* Returns the current printer row position */
|
||||
|
||||
static void hb_conDevPos( int iRow, int iCol )
|
||||
{
|
||||
HB_FHANDLE hFile;
|
||||
PHB_FILE pFile;
|
||||
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_conDevPos(%d, %d)", iRow, iCol ) );
|
||||
|
||||
/* Position printer if SET DEVICE TO PRINTER and valid printer file
|
||||
otherwise position console */
|
||||
|
||||
if( ( hFile = hb_setGetPrinterHandle( HB_SET_PRN_DEV ) ) != FS_ERROR )
|
||||
if( ( pFile = hb_setGetPrinterHandle( HB_SET_PRN_DEV ) ) != NULL )
|
||||
{
|
||||
int iPRow = iRow;
|
||||
int iPCol = iCol + hb_setGetMargin();
|
||||
@@ -456,7 +456,7 @@ static void hb_conDevPos( int iRow, int iCol )
|
||||
{
|
||||
if( iPtr + s_iCrLfLen > ( int ) sizeof( buf ) )
|
||||
{
|
||||
hb_fsWrite( hFile, buf, ( HB_USHORT ) iPtr );
|
||||
hb_fileWrite( pFile, buf, ( HB_USHORT ) iPtr, -1 );
|
||||
iPtr = 0;
|
||||
}
|
||||
memcpy( &buf[ iPtr ], s_szCrLf, s_iCrLfLen );
|
||||
@@ -475,7 +475,7 @@ static void hb_conDevPos( int iRow, int iCol )
|
||||
{
|
||||
if( iPtr == ( int ) sizeof( buf ) )
|
||||
{
|
||||
hb_fsWrite( hFile, buf, ( HB_USHORT ) iPtr );
|
||||
hb_fileWrite( pFile, buf, ( HB_USHORT ) iPtr, -1 );
|
||||
iPtr = 0;
|
||||
}
|
||||
buf[ iPtr++ ] = ' ';
|
||||
@@ -483,7 +483,7 @@ static void hb_conDevPos( int iRow, int iCol )
|
||||
}
|
||||
|
||||
if( iPtr )
|
||||
hb_fsWrite( hFile, buf, ( HB_USHORT ) iPtr );
|
||||
hb_fileWrite( pFile, buf, ( HB_USHORT ) iPtr, -1 );
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1222,3 +1222,15 @@ PHB_FILE hb_fileCreateTempEx( char * pszName,
|
||||
|
||||
return pFile;
|
||||
}
|
||||
|
||||
PHB_FILE hb_filePOpen( const char * pszFileName, const char * pszMode )
|
||||
{
|
||||
PHB_FILE pFile = NULL;
|
||||
HB_FHANDLE hFile;
|
||||
|
||||
hFile = hb_fsPOpen( pszFileName, pszMode );
|
||||
if( hFile != FS_ERROR )
|
||||
pFile = hb_fileNew( hFile, HB_FALSE, HB_FALSE, 0, 0, HB_FALSE );
|
||||
|
||||
return pFile;
|
||||
}
|
||||
|
||||
@@ -632,11 +632,11 @@ HB_FHANDLE hb_fsGetOsHandle( HB_FHANDLE hFileHandle )
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FHANDLE hb_fsPOpen( const char * pszFileName, const char * pMode )
|
||||
HB_FHANDLE hb_fsPOpen( const char * pszFileName, const char * pszMode )
|
||||
{
|
||||
HB_FHANDLE hFileHandle = FS_ERROR;
|
||||
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_fsPOpen(%p, %s)", pszFileName, pMode ) );
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_fsPOpen(%p, %s)", pszFileName, pszMode ) );
|
||||
|
||||
#if defined( HB_OS_UNIX ) && ! defined( HB_OS_VXWORKS ) && ! defined( HB_OS_SYMBIAN )
|
||||
{
|
||||
@@ -648,8 +648,8 @@ HB_FHANDLE hb_fsPOpen( const char * pszFileName, const char * pMode )
|
||||
int iMaxFD, iResult;
|
||||
|
||||
nLen = strlen( pszFileName );
|
||||
if( pMode && ( *pMode == 'r' || *pMode == 'w' ) )
|
||||
fRead = ( *pMode == 'r' );
|
||||
if( pszMode && ( *pszMode == 'r' || *pszMode == 'w' ) )
|
||||
fRead = ( *pszMode == 'r' );
|
||||
else
|
||||
{
|
||||
if( pszFileName[ 0 ] == '|' )
|
||||
@@ -744,7 +744,7 @@ HB_FHANDLE hb_fsPOpen( const char * pszFileName, const char * pMode )
|
||||
#else
|
||||
|
||||
HB_SYMBOL_UNUSED( pszFileName );
|
||||
HB_SYMBOL_UNUSED( pMode );
|
||||
HB_SYMBOL_UNUSED( pszMode );
|
||||
|
||||
hb_fsSetError( ( HB_ERRCODE ) FS_ERROR );
|
||||
|
||||
|
||||
108
src/vm/memvars.c
108
src/vm/memvars.c
@@ -1341,7 +1341,7 @@ typedef struct
|
||||
const char * pszMask;
|
||||
HB_BOOL bIncludeMask;
|
||||
HB_BYTE * buffer;
|
||||
HB_FHANDLE fhnd;
|
||||
PHB_FILE fhnd;
|
||||
} MEMVARSAVE_CARGO;
|
||||
|
||||
/* saves a variable to a mem file already open */
|
||||
@@ -1350,8 +1350,8 @@ static HB_DYNS_FUNC( hb_memvarSave )
|
||||
{
|
||||
const char * pszMask = ( ( MEMVARSAVE_CARGO * ) Cargo )->pszMask;
|
||||
HB_BOOL bIncludeMask = ( ( MEMVARSAVE_CARGO * ) Cargo )->bIncludeMask;
|
||||
HB_BYTE * buffer = ( ( MEMVARSAVE_CARGO * ) Cargo )->buffer;
|
||||
HB_FHANDLE fhnd = ( ( MEMVARSAVE_CARGO * ) Cargo )->fhnd;
|
||||
HB_BYTE * buffer = ( ( MEMVARSAVE_CARGO * ) Cargo )->buffer;
|
||||
PHB_FILE fhnd = ( ( MEMVARSAVE_CARGO * ) Cargo )->fhnd;
|
||||
PHB_ITEM pMemvar;
|
||||
|
||||
/* NOTE: Harbour name lengths are not limited, but the .mem file
|
||||
@@ -1387,10 +1387,10 @@ static HB_DYNS_FUNC( hb_memvarSave )
|
||||
}
|
||||
buffer[ 11 ] = 'C' + 128;
|
||||
HB_PUT_LE_UINT16( &buffer[ 16 ], nLen );
|
||||
hb_fsWrite( fhnd, buffer, HB_MEM_REC_LEN );
|
||||
hb_fsWriteLarge( fhnd, hb_itemGetCPtr( pMemvar ), nLen - iOverFlow );
|
||||
hb_fileWrite( fhnd, buffer, HB_MEM_REC_LEN, -1 );
|
||||
hb_fileWrite( fhnd, hb_itemGetCPtr( pMemvar ), nLen - iOverFlow, -1 );
|
||||
if( iOverFlow )
|
||||
hb_fsWrite( fhnd, "\0", 1 );
|
||||
hb_fileWrite( fhnd, "\0", 1, -1 );
|
||||
}
|
||||
else if( HB_IS_NUMERIC( pMemvar ) )
|
||||
{
|
||||
@@ -1410,7 +1410,7 @@ static HB_DYNS_FUNC( hb_memvarSave )
|
||||
#endif
|
||||
buffer[ 17 ] = ( HB_BYTE ) iDec;
|
||||
HB_PUT_LE_DOUBLE( &buffer[ HB_MEM_REC_LEN ], dNumber );
|
||||
hb_fsWrite( fhnd, buffer, HB_MEM_REC_LEN + HB_MEM_NUM_LEN );
|
||||
hb_fileWrite( fhnd, buffer, HB_MEM_REC_LEN + HB_MEM_NUM_LEN, -1 );
|
||||
}
|
||||
else if( HB_IS_DATE( pMemvar ) )
|
||||
{
|
||||
@@ -1420,7 +1420,7 @@ static HB_DYNS_FUNC( hb_memvarSave )
|
||||
buffer[ 16 ] = 1;
|
||||
buffer[ 17 ] = 0;
|
||||
HB_PUT_LE_DOUBLE( &buffer[ HB_MEM_REC_LEN ], dNumber );
|
||||
hb_fsWrite( fhnd, buffer, HB_MEM_REC_LEN + HB_MEM_NUM_LEN );
|
||||
hb_fileWrite( fhnd, buffer, HB_MEM_REC_LEN + HB_MEM_NUM_LEN, -1 );
|
||||
}
|
||||
else if( HB_IS_TIMESTAMP( pMemvar ) )
|
||||
{
|
||||
@@ -1430,7 +1430,7 @@ static HB_DYNS_FUNC( hb_memvarSave )
|
||||
buffer[ 16 ] = 1;
|
||||
buffer[ 17 ] = 0;
|
||||
HB_PUT_LE_DOUBLE( &buffer[ HB_MEM_REC_LEN ], dNumber );
|
||||
hb_fsWrite( fhnd, buffer, HB_MEM_REC_LEN + HB_MEM_NUM_LEN );
|
||||
hb_fileWrite( fhnd, buffer, HB_MEM_REC_LEN + HB_MEM_NUM_LEN, -1 );
|
||||
}
|
||||
else if( HB_IS_LOGICAL( pMemvar ) )
|
||||
{
|
||||
@@ -1438,7 +1438,7 @@ static HB_DYNS_FUNC( hb_memvarSave )
|
||||
buffer[ 16 ] = 1;
|
||||
buffer[ 17 ] = 0;
|
||||
buffer[ HB_MEM_REC_LEN ] = hb_itemGetL( pMemvar ) ? 1 : 0;
|
||||
hb_fsWrite( fhnd, buffer, HB_MEM_REC_LEN + 1 );
|
||||
hb_fileWrite( fhnd, buffer, HB_MEM_REC_LEN + 1, -1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1452,41 +1452,28 @@ HB_FUNC( __MVSAVE )
|
||||
/* Clipper also checks for the number of arguments here */
|
||||
if( hb_pcount() == 3 && HB_ISCHAR( 1 ) && HB_ISCHAR( 2 ) && HB_ISLOG( 3 ) )
|
||||
{
|
||||
const char * pszFileName = hb_parc( 1 );
|
||||
PHB_ITEM pError = NULL;
|
||||
PHB_FNAME pFileName;
|
||||
char szFileName[ HB_PATH_MAX ];
|
||||
HB_FHANDLE fhnd;
|
||||
|
||||
/* Generate filename */
|
||||
|
||||
pFileName = hb_fsFNameSplit( hb_parc( 1 ) );
|
||||
|
||||
if( pFileName->szExtension == NULL && hb_stackSetStruct()->HB_SET_DEFEXTENSIONS )
|
||||
pFileName->szExtension = ".mem";
|
||||
|
||||
if( ! pFileName->szPath )
|
||||
pFileName->szPath = hb_stackSetStruct()->HB_SET_DEFAULT;
|
||||
|
||||
hb_fsFNameMerge( szFileName, pFileName );
|
||||
hb_xfree( pFileName );
|
||||
PHB_FILE fhnd;
|
||||
|
||||
/* Create .mem file */
|
||||
do
|
||||
{
|
||||
fhnd = hb_fsExtOpen( szFileName, NULL,
|
||||
FXO_TRUNCATE | FO_READWRITE | FO_EXCLUSIVE |
|
||||
FXO_DEFAULTS | FXO_SHARELOCK,
|
||||
NULL, pError );
|
||||
if( fhnd == FS_ERROR )
|
||||
fhnd = hb_fileExtOpen( pszFileName,
|
||||
hb_stackSetStruct()->HB_SET_DEFEXTENSIONS ? ".mem" : NULL,
|
||||
FXO_TRUNCATE | FO_READWRITE | FO_EXCLUSIVE |
|
||||
FXO_DEFAULTS | FXO_SHARELOCK,
|
||||
NULL, pError );
|
||||
if( fhnd == NULL )
|
||||
{
|
||||
pError = hb_errRT_FileError( pError, NULL, EG_CREATE, 2006, szFileName );
|
||||
pError = hb_errRT_FileError( pError, NULL, EG_CREATE, 2006, pszFileName );
|
||||
if( hb_errLaunch( pError ) != E_RETRY )
|
||||
break;
|
||||
}
|
||||
}
|
||||
while( fhnd == FS_ERROR );
|
||||
while( fhnd == NULL );
|
||||
|
||||
if( fhnd != FS_ERROR )
|
||||
if( fhnd != NULL )
|
||||
{
|
||||
HB_BYTE buffer[ HB_MEM_REC_LEN + HB_MEM_NUM_LEN ];
|
||||
MEMVARSAVE_CARGO msc;
|
||||
@@ -1501,16 +1488,16 @@ HB_FUNC( __MVSAVE )
|
||||
hb_dynsymEval( hb_memvarSave, ( void * ) &msc );
|
||||
|
||||
buffer[ 0 ] = '\x1A';
|
||||
hb_fsWrite( fhnd, buffer, 1 );
|
||||
hb_fileWrite( fhnd, buffer, 1, -1 );
|
||||
|
||||
/* NOTE: Here, we're not CA-Cl*pper compatible by default settings.
|
||||
[vszakats] */
|
||||
#ifndef HB_CLP_STRICT
|
||||
if( hb_setGetHardCommit() )
|
||||
hb_fsCommit( fhnd );
|
||||
hb_fileCommit( fhnd );
|
||||
#endif
|
||||
|
||||
hb_fsClose( fhnd );
|
||||
hb_fileClose( fhnd );
|
||||
}
|
||||
|
||||
if( pError )
|
||||
@@ -1536,10 +1523,9 @@ HB_FUNC( __MVRESTORE )
|
||||
#endif
|
||||
{
|
||||
HB_STACK_TLS_PRELOAD
|
||||
const char * pszFileName = hb_parc( 1 );
|
||||
PHB_ITEM pError = NULL;
|
||||
PHB_FNAME pFileName;
|
||||
char szFileName[ HB_PATH_MAX ];
|
||||
HB_FHANDLE fhnd;
|
||||
PHB_FILE fhnd;
|
||||
|
||||
HB_BOOL bAdditive = hb_parl( 2 );
|
||||
|
||||
@@ -1548,35 +1534,23 @@ HB_FUNC( __MVRESTORE )
|
||||
if( ! bAdditive )
|
||||
hb_memvarsClear( HB_FALSE );
|
||||
|
||||
/* Generate filename */
|
||||
|
||||
pFileName = hb_fsFNameSplit( hb_parc( 1 ) );
|
||||
|
||||
if( pFileName->szExtension == NULL && hb_stackSetStruct()->HB_SET_DEFEXTENSIONS )
|
||||
pFileName->szExtension = ".mem";
|
||||
|
||||
if( ! pFileName->szPath )
|
||||
pFileName->szPath = hb_stackSetStruct()->HB_SET_DEFAULT;
|
||||
|
||||
hb_fsFNameMerge( szFileName, pFileName );
|
||||
hb_xfree( pFileName );
|
||||
|
||||
/* Open .mem file */
|
||||
do
|
||||
{
|
||||
fhnd = hb_fsExtOpen( szFileName, NULL,
|
||||
FO_READ | FXO_DEFAULTS | FXO_SHARELOCK,
|
||||
NULL, pError );
|
||||
if( fhnd == FS_ERROR )
|
||||
fhnd = hb_fileExtOpen( pszFileName,
|
||||
hb_stackSetStruct()->HB_SET_DEFEXTENSIONS ? ".mem" : NULL,
|
||||
FO_READ | FXO_DEFAULTS | FXO_SHARELOCK,
|
||||
NULL, pError );
|
||||
if( fhnd == NULL )
|
||||
{
|
||||
pError = hb_errRT_FileError( pError, NULL, EG_OPEN, 2005, szFileName );
|
||||
pError = hb_errRT_FileError( pError, NULL, EG_OPEN, 2005, pszFileName );
|
||||
if( hb_errLaunch( pError ) != E_RETRY )
|
||||
break;
|
||||
}
|
||||
}
|
||||
while( fhnd == FS_ERROR );
|
||||
while( fhnd == NULL );
|
||||
|
||||
if( fhnd != FS_ERROR )
|
||||
if( fhnd != NULL )
|
||||
{
|
||||
HB_BOOL bIncludeMask;
|
||||
HB_BYTE buffer[ HB_MEM_REC_LEN ];
|
||||
@@ -1592,7 +1566,7 @@ HB_FUNC( __MVRESTORE )
|
||||
bIncludeMask = hb_parldef( 4, 1 );
|
||||
#endif
|
||||
|
||||
while( hb_fsRead( fhnd, buffer, HB_MEM_REC_LEN ) == HB_MEM_REC_LEN )
|
||||
while( hb_fileRead( fhnd, buffer, HB_MEM_REC_LEN, -1 ) == HB_MEM_REC_LEN )
|
||||
{
|
||||
/* FoxPro does not add 128 to item type: 'N', 'C', 'D', 'L'
|
||||
* CA-Cl*pper respects it and read such files so we also should.
|
||||
@@ -1614,7 +1588,7 @@ HB_FUNC( __MVRESTORE )
|
||||
uiWidth += uiDec * 256;
|
||||
pbyString = ( HB_BYTE * ) hb_xgrab( uiWidth );
|
||||
|
||||
if( hb_fsRead( fhnd, pbyString, uiWidth ) == uiWidth )
|
||||
if( hb_fileRead( fhnd, pbyString, uiWidth, -1 ) == uiWidth )
|
||||
pItem = hb_itemPutCLPtr( pItem, ( char * ) pbyString, uiWidth - 1 );
|
||||
else
|
||||
{
|
||||
@@ -1629,7 +1603,7 @@ HB_FUNC( __MVRESTORE )
|
||||
{
|
||||
HB_BYTE pbyNumber[ HB_MEM_NUM_LEN ];
|
||||
|
||||
if( hb_fsRead( fhnd, pbyNumber, HB_MEM_NUM_LEN ) == HB_MEM_NUM_LEN )
|
||||
if( hb_fileRead( fhnd, pbyNumber, HB_MEM_NUM_LEN, -1 ) == HB_MEM_NUM_LEN )
|
||||
pItem = hb_itemPutNLen( pItem, HB_GET_LE_DOUBLE( pbyNumber ), uiWidth - ( uiDec ? ( uiDec + 1 ) : 0 ), uiDec );
|
||||
else
|
||||
szName = NULL;
|
||||
@@ -1641,7 +1615,7 @@ HB_FUNC( __MVRESTORE )
|
||||
{
|
||||
HB_BYTE pbyNumber[ HB_MEM_NUM_LEN ];
|
||||
|
||||
if( hb_fsRead( fhnd, pbyNumber, HB_MEM_NUM_LEN ) == HB_MEM_NUM_LEN )
|
||||
if( hb_fileRead( fhnd, pbyNumber, HB_MEM_NUM_LEN, -1 ) == HB_MEM_NUM_LEN )
|
||||
pItem = hb_itemPutDL( pItem, ( long ) HB_GET_LE_DOUBLE( pbyNumber ) );
|
||||
else
|
||||
szName = NULL;
|
||||
@@ -1653,7 +1627,7 @@ HB_FUNC( __MVRESTORE )
|
||||
{
|
||||
HB_BYTE pbyNumber[ HB_MEM_NUM_LEN ];
|
||||
|
||||
if( hb_fsRead( fhnd, pbyNumber, HB_MEM_NUM_LEN ) == HB_MEM_NUM_LEN )
|
||||
if( hb_fileRead( fhnd, pbyNumber, HB_MEM_NUM_LEN, -1 ) == HB_MEM_NUM_LEN )
|
||||
pItem = hb_itemPutTD( pItem, HB_GET_LE_DOUBLE( pbyNumber ) );
|
||||
else
|
||||
szName = NULL;
|
||||
@@ -1665,7 +1639,7 @@ HB_FUNC( __MVRESTORE )
|
||||
{
|
||||
HB_BYTE pbyLogical[ 1 ];
|
||||
|
||||
if( hb_fsRead( fhnd, pbyLogical, 1 ) == 1 )
|
||||
if( hb_fileRead( fhnd, pbyLogical, 1, -1 ) == 1 )
|
||||
pItem = hb_itemPutL( pItem, pbyLogical[ 0 ] != 0 );
|
||||
else
|
||||
szName = NULL;
|
||||
@@ -1697,7 +1671,7 @@ HB_FUNC( __MVRESTORE )
|
||||
}
|
||||
}
|
||||
|
||||
hb_fsClose( fhnd );
|
||||
hb_fileClose( fhnd );
|
||||
hb_memvarUpdatePrivatesBase();
|
||||
hb_itemReturnRelease( pItem );
|
||||
}
|
||||
|
||||
@@ -581,49 +581,44 @@ static PHRB_BODY hb_hrbLoad( const char * szHrbBody, HB_SIZE nBodySize, HB_USHOR
|
||||
|
||||
static PHRB_BODY hb_hrbLoadFromFile( const char * szHrb, HB_USHORT usMode )
|
||||
{
|
||||
char szFileName[ HB_PATH_MAX ];
|
||||
PHRB_BODY pHrbBody = NULL;
|
||||
PHB_FNAME pFileName;
|
||||
HB_FHANDLE hFile;
|
||||
|
||||
/* Create full filename */
|
||||
|
||||
pFileName = hb_fsFNameSplit( szHrb );
|
||||
if( pFileName->szExtension == NULL && hb_stackSetStruct()->HB_SET_DEFEXTENSIONS )
|
||||
{
|
||||
pFileName->szExtension = ".hrb";
|
||||
}
|
||||
hb_fsFNameMerge( szFileName, pFileName );
|
||||
hb_xfree( pFileName );
|
||||
PHB_ITEM pError = NULL;
|
||||
PHB_FILE pFile;
|
||||
|
||||
/* Open as binary */
|
||||
|
||||
do
|
||||
{
|
||||
hFile = hb_fsOpen( szFileName, FO_READ );
|
||||
pFile = hb_fileExtOpen( szHrb,
|
||||
hb_stackSetStruct()->HB_SET_DEFEXTENSIONS ? ".hrb" : NULL,
|
||||
FO_READ | FXO_SHARELOCK, NULL, pError );
|
||||
if( pFile == NULL )
|
||||
{
|
||||
pError = hb_errRT_FileError( pError, NULL, EG_OPEN, 6102, szHrb );
|
||||
if( hb_errLaunch( pError ) != E_RETRY )
|
||||
break;
|
||||
}
|
||||
}
|
||||
while( hFile == FS_ERROR &&
|
||||
hb_errRT_BASE_Ext1( EG_OPEN, 6102, NULL, szFileName, hb_fsError(),
|
||||
EF_CANDEFAULT | EF_CANRETRY,
|
||||
HB_ERR_ARGS_BASEPARAMS ) == E_RETRY );
|
||||
while( pFile == NULL );
|
||||
|
||||
if( hFile != FS_ERROR )
|
||||
if( pError )
|
||||
hb_itemRelease( pError );
|
||||
|
||||
if( pFile != NULL )
|
||||
{
|
||||
HB_SIZE nBodySize = hb_fsSeek( hFile, 0, FS_END );
|
||||
HB_SIZE nBodySize = hb_fileSize( pFile );
|
||||
|
||||
if( nBodySize )
|
||||
{
|
||||
char * pbyBuffer;
|
||||
|
||||
pbyBuffer = ( char * ) hb_xgrab( nBodySize + sizeof( char ) + 1 );
|
||||
hb_fsSeek( hFile, 0, FS_SET );
|
||||
hb_fsReadLarge( hFile, pbyBuffer, nBodySize );
|
||||
hb_fileReadAt( pFile, pbyBuffer, nBodySize, 0 );
|
||||
pbyBuffer[ nBodySize ] = '\0';
|
||||
|
||||
pHrbBody = hb_hrbLoad( ( const char * ) pbyBuffer, nBodySize, usMode, szFileName );
|
||||
pHrbBody = hb_hrbLoad( ( const char * ) pbyBuffer, nBodySize, usMode, szHrb );
|
||||
hb_xfree( pbyBuffer );
|
||||
}
|
||||
hb_fsClose( hFile );
|
||||
hb_fileClose( pFile );
|
||||
}
|
||||
|
||||
return pHrbBody;
|
||||
|
||||
186
src/vm/set.c
186
src/vm/set.c
@@ -167,7 +167,7 @@ static char * set_string( PHB_ITEM pItem, char * szOldString )
|
||||
|
||||
static void close_handle( PHB_SET_STRUCT pSet, HB_set_enum set_specifier )
|
||||
{
|
||||
HB_FHANDLE * handle_ptr;
|
||||
PHB_FILE * handle_ptr;
|
||||
|
||||
HB_TRACE( HB_TR_DEBUG, ( "close_handle(%p,%d)", pSet, ( int ) set_specifier ) );
|
||||
|
||||
@@ -186,57 +186,72 @@ static void close_handle( PHB_SET_STRUCT pSet, HB_set_enum set_specifier )
|
||||
return;
|
||||
}
|
||||
|
||||
if( *handle_ptr != FS_ERROR )
|
||||
if( *handle_ptr != NULL )
|
||||
{
|
||||
if( set_specifier != HB_SET_PRINTFILE && pSet->HB_SET_EOF )
|
||||
hb_fsWrite( *handle_ptr, "\x1A", 1 );
|
||||
hb_fsClose( *handle_ptr );
|
||||
*handle_ptr = FS_ERROR;
|
||||
hb_fileWrite( *handle_ptr, "\x1A", 1, -1 );
|
||||
hb_fileClose( *handle_ptr );
|
||||
*handle_ptr = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static HB_BOOL is_devicename( const char * szFileName )
|
||||
static const char * is_devicename( const char * szFileName )
|
||||
{
|
||||
if( szFileName && *szFileName )
|
||||
{
|
||||
#if defined( HB_OS_OS2 ) || defined( HB_OS_WIN ) || defined( HB_OS_DOS )
|
||||
int iLen = ( int ) strlen( szFileName );
|
||||
if( ( iLen == 3 &&
|
||||
( hb_stricmp( szFileName, "PRN" ) == 0 ||
|
||||
hb_stricmp( szFileName, "CON" ) == 0 ) ) ||
|
||||
( iLen == 4 &&
|
||||
( ( hb_strnicmp( szFileName, "LPT", 3 ) == 0 &&
|
||||
szFileName[ 3 ] >= '1' && szFileName[ 3 ] <= '3' ) ||
|
||||
( hb_strnicmp( szFileName, "COM", 3 ) == 0 &&
|
||||
szFileName[ 3 ] >= '1' && szFileName[ 3 ] <= '9' ) ) ) )
|
||||
const char * szDevices[] =
|
||||
{ "PRN", "CON", "LPT1", "LPT2", "LPT3",
|
||||
"COM1", "COM2", "COM3", "COM4", "COM5",
|
||||
"COM6", "COM7", "COM8", "COM9" };
|
||||
int iLen = ( int ) strlen( szFileName ), iFrom, iTo;
|
||||
|
||||
if( iLen >= 3 && iLen <= 4 )
|
||||
{
|
||||
return HB_TRUE;
|
||||
if( iLen == 3 )
|
||||
{
|
||||
iFrom = 0;
|
||||
iTo = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
iFrom = 2;
|
||||
iTo = HB_SIZEOFARRAY( szDevices );
|
||||
}
|
||||
for( ; iFrom < iTo; ++iFrom )
|
||||
{
|
||||
if( hb_stricmp( szFileName, szDevices[ iFrom ] ) == 0 )
|
||||
return szDevices[ iFrom ];
|
||||
}
|
||||
}
|
||||
#elif defined( HB_OS_UNIX )
|
||||
if( strncmp( szFileName, "/dev/", 5 ) == 0 )
|
||||
return HB_TRUE;
|
||||
return szFileName;
|
||||
else
|
||||
{
|
||||
HB_FATTR ulAttr = 0;
|
||||
if( hb_fsGetAttr( szFileName, &ulAttr ) )
|
||||
{
|
||||
if( ulAttr & ( HB_FA_CHRDEVICE | HB_FA_BLKDEVICE | HB_FA_FIFO | HB_FA_SOCKET ) )
|
||||
return HB_TRUE;
|
||||
return szFileName;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return HB_FALSE;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void open_handle( PHB_SET_STRUCT pSet, const char * file_name,
|
||||
HB_BOOL bAppend, HB_set_enum set_specifier )
|
||||
{
|
||||
HB_STACK_TLS_PRELOAD
|
||||
PHB_ITEM pError = NULL;
|
||||
HB_FHANDLE handle, * handle_ptr;
|
||||
PHB_FILE handle, * handle_ptr;
|
||||
HB_ERRCODE uiError;
|
||||
char * szFileName = NULL, ** set_value;
|
||||
const char * szDevice = NULL;
|
||||
const char * szFileName = NULL;
|
||||
const char * def_ext;
|
||||
char ** set_value;
|
||||
HB_BOOL bPipe = HB_FALSE;
|
||||
|
||||
HB_TRACE( HB_TR_DEBUG, ( "open_handle(%p, %s, %d, %d)", pSet, file_name, ( int ) bAppend, ( int ) set_specifier ) );
|
||||
@@ -269,37 +284,24 @@ static void open_handle( PHB_SET_STRUCT pSet, const char * file_name,
|
||||
|
||||
if( file_name && file_name[ 0 ] != '\0' )
|
||||
{
|
||||
/* Create full filename */
|
||||
#if defined( HB_OS_UNIX )
|
||||
bPipe = file_name[ 0 ] == '|';
|
||||
if( bPipe )
|
||||
{
|
||||
szFileName = hb_strdup( file_name );
|
||||
szFileName = file_name;
|
||||
bAppend = HB_FALSE;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if( ! bPipe )
|
||||
{
|
||||
char path[ HB_PATH_MAX ];
|
||||
PHB_FNAME pFilename = hb_fsFNameSplit( file_name );
|
||||
|
||||
if( is_devicename( file_name ) )
|
||||
szDevice = is_devicename( file_name );
|
||||
if( szDevice )
|
||||
{
|
||||
#if defined( HB_OS_OS2 ) || defined( HB_OS_WIN ) || defined( HB_OS_DOS )
|
||||
hb_strupr( ( char * ) pFilename->szName );
|
||||
#endif
|
||||
szFileName = szDevice;
|
||||
def_ext = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( pFilename->szExtension == NULL && def_ext && pSet->HB_SET_DEFEXTENSIONS )
|
||||
pFilename->szExtension = def_ext;
|
||||
|
||||
if( pFilename->szPath == NULL && pSet->HB_SET_DEFAULT )
|
||||
pFilename->szPath = pSet->HB_SET_DEFAULT;
|
||||
}
|
||||
hb_fsFNameMerge( path, pFilename );
|
||||
hb_xfree( pFilename );
|
||||
szFileName = hb_strdup( path );
|
||||
szFileName = file_name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -318,74 +320,58 @@ static void open_handle( PHB_SET_STRUCT pSet, const char * file_name,
|
||||
|
||||
/* QUESTION: What sharing mode does Clipper use ? [vszakats] */
|
||||
|
||||
handle = FS_ERROR;
|
||||
while( handle == FS_ERROR )
|
||||
handle = NULL;
|
||||
do
|
||||
{
|
||||
if( bPipe )
|
||||
handle = hb_fsPOpen( szFileName + 1, "w" );
|
||||
{
|
||||
handle = hb_filePOpen( szFileName + 1, "w" );
|
||||
}
|
||||
else
|
||||
{
|
||||
HB_BOOL bCreate = HB_FALSE;
|
||||
handle = hb_fileExtOpen( szFileName,
|
||||
hb_stackSetStruct()->HB_SET_DEFEXTENSIONS ? def_ext : NULL,
|
||||
FO_READWRITE | FO_READWRITE | FXO_SHARELOCK |
|
||||
( bAppend ? 0 : FXO_TRUNCATE ) |
|
||||
( szDevice ? 0 : FXO_DEFAULTS ),
|
||||
NULL, pError );
|
||||
|
||||
if( bAppend ) /* Append mode */
|
||||
if( handle != NULL && szDevice == NULL && bAppend )
|
||||
{
|
||||
if( hb_fsFileExists( szFileName ) )
|
||||
/* Position to EOF */
|
||||
/* Special binary vs. text file handling - even for UN*X, now
|
||||
that there's an HB_SET_EOF flag. */
|
||||
if( set_specifier == HB_SET_PRINTFILE )
|
||||
{
|
||||
/* If the file already exists, open it (in read-write mode, in
|
||||
case of non-Unix and text modes). */
|
||||
handle = hb_fsOpen( szFileName, FO_READWRITE | FO_DENYWRITE );
|
||||
if( handle != FS_ERROR )
|
||||
{
|
||||
/* Position to EOF */
|
||||
/* Special binary vs. text file handling - even for UN*X, now
|
||||
that there's an HB_SET_EOF flag. */
|
||||
if( set_specifier == HB_SET_PRINTFILE )
|
||||
{
|
||||
/* PRINTFILE is always binary and needs no special handling. */
|
||||
hb_fsSeek( handle, 0, FS_END );
|
||||
}
|
||||
else
|
||||
{
|
||||
/* All other files are text files and may have an EOF
|
||||
('\x1A') character at the end (both UN*X and non-UN*X,
|
||||
now that theres an HB_SET_EOF flag). */
|
||||
char cEOF = '\0';
|
||||
hb_fsSeek( handle, -1, FS_END ); /* Position to last char. */
|
||||
hb_fsRead( handle, &cEOF, 1 ); /* Read the last char. */
|
||||
if( cEOF == '\x1A' ) /* If it's an EOF, */
|
||||
{
|
||||
hb_fsSeek( handle, -1, FS_END ); /* Then write over it. */
|
||||
}
|
||||
}
|
||||
}
|
||||
/* PRINTFILE is always binary and needs no special handling. */
|
||||
hb_fileSeek( handle, 0, FS_END );
|
||||
}
|
||||
else
|
||||
bCreate = HB_TRUE; /* Otherwise create a new file. */
|
||||
{
|
||||
/* All other files are text files and may have an EOF
|
||||
('\x1A') character at the end (both UN*X and non-UN*X,
|
||||
now that theres an HB_SET_EOF flag). */
|
||||
char cEOF = '\0';
|
||||
hb_fileSeek( handle, -1, FS_END ); /* Position to last char. */
|
||||
hb_fileRead( handle, &cEOF, 1, -1 ); /* Read the last char. */
|
||||
if( cEOF == '\x1A' ) /* If it's an EOF, */
|
||||
hb_fileSeek( handle, -1, FS_END ); /* Then write over it. */
|
||||
}
|
||||
}
|
||||
else
|
||||
bCreate = HB_TRUE; /* Always create a new file for overwrite mode. */
|
||||
|
||||
if( bCreate )
|
||||
handle = hb_fsCreate( szFileName, FC_NORMAL );
|
||||
}
|
||||
|
||||
if( handle == FS_ERROR )
|
||||
if( handle == NULL )
|
||||
{
|
||||
pError = hb_errRT_FileError( pError, HB_ERR_SS_TERMINAL, EG_CREATE, uiError, szFileName );
|
||||
if( hb_errLaunch( pError ) != E_RETRY )
|
||||
break;
|
||||
}
|
||||
}
|
||||
while( handle == NULL );
|
||||
|
||||
if( pError )
|
||||
hb_itemRelease( pError );
|
||||
|
||||
if( handle == FS_ERROR )
|
||||
{
|
||||
hb_xfree( szFileName );
|
||||
szFileName = NULL;
|
||||
}
|
||||
|
||||
/* user RT error handler can open it too so we have to
|
||||
* close it again if necessary
|
||||
*/
|
||||
@@ -393,7 +379,7 @@ static void open_handle( PHB_SET_STRUCT pSet, const char * file_name,
|
||||
*handle_ptr = handle;
|
||||
if( *set_value )
|
||||
hb_xfree( *set_value );
|
||||
*set_value = szFileName;
|
||||
*set_value = handle != NULL ? hb_strdup( szFileName ) : NULL;
|
||||
}
|
||||
|
||||
HB_BOOL hb_setSetCentury( HB_BOOL new_century_setting )
|
||||
@@ -1058,7 +1044,7 @@ void hb_setInitialize( PHB_SET_STRUCT pSet )
|
||||
|
||||
pSet->HB_SET_ALTERNATE = HB_FALSE;
|
||||
pSet->HB_SET_ALTFILE = NULL;
|
||||
pSet->hb_set_althan = FS_ERROR;
|
||||
pSet->hb_set_althan = NULL;
|
||||
pSet->HB_SET_AUTOPEN = HB_TRUE;
|
||||
pSet->HB_SET_AUTORDER = 0;
|
||||
pSet->HB_SET_AUTOSHARE = 0;
|
||||
@@ -1103,7 +1089,7 @@ void hb_setInitialize( PHB_SET_STRUCT pSet )
|
||||
pSet->HB_SET_EXIT = HB_FALSE;
|
||||
pSet->HB_SET_EXTRA = HB_FALSE;
|
||||
pSet->HB_SET_EXTRAFILE = NULL;
|
||||
pSet->hb_set_extrahan = FS_ERROR;
|
||||
pSet->hb_set_extrahan = NULL;
|
||||
pSet->HB_SET_FIXED = HB_FALSE;
|
||||
pSet->HB_SET_FORCEOPT = HB_FALSE;
|
||||
pSet->HB_SET_HARDCOMMIT = HB_TRUE;
|
||||
@@ -1120,7 +1106,7 @@ void hb_setInitialize( PHB_SET_STRUCT pSet )
|
||||
pSet->hb_set_path = NULL;
|
||||
pSet->HB_SET_PRINTER = HB_FALSE;
|
||||
pSet->HB_SET_PRINTFILE = hb_set_PRINTFILE_default();
|
||||
pSet->hb_set_printhan = FS_ERROR;
|
||||
pSet->hb_set_printhan = NULL;
|
||||
pSet->HB_SET_SCOREBOARD = HB_TRUE;
|
||||
pSet->HB_SET_SCROLLBREAK = HB_TRUE;
|
||||
pSet->HB_SET_SOFTSEEK = HB_FALSE;
|
||||
@@ -1194,7 +1180,7 @@ PHB_SET_STRUCT hb_setClone( PHB_SET_STRUCT pSrc )
|
||||
|
||||
memcpy( pSet, pSrc, sizeof( HB_SET_STRUCT ) );
|
||||
|
||||
pSet->hb_set_althan = pSet->hb_set_extrahan = pSet->hb_set_printhan = FS_ERROR;
|
||||
pSet->hb_set_althan = pSet->hb_set_extrahan = pSet->hb_set_printhan = NULL;
|
||||
pSet->hb_set_path = NULL;
|
||||
pSet->hb_set_listener = NULL;
|
||||
|
||||
@@ -2283,7 +2269,7 @@ HB_PATHNAMES * hb_setGetFirstSetPath( void )
|
||||
return hb_stackSetStruct()->hb_set_path;
|
||||
}
|
||||
|
||||
HB_FHANDLE hb_setGetAltHan( void )
|
||||
PHB_FILE hb_setGetAltHan( void )
|
||||
{
|
||||
HB_STACK_TLS_PRELOAD
|
||||
return hb_stackSetStruct()->hb_set_althan;
|
||||
@@ -2295,13 +2281,13 @@ HB_BOOL hb_setGetCentury( void )
|
||||
return hb_stackSetStruct()->hb_set_century;
|
||||
}
|
||||
|
||||
HB_FHANDLE hb_setGetExtraHan( void )
|
||||
PHB_FILE hb_setGetExtraHan( void )
|
||||
{
|
||||
HB_STACK_TLS_PRELOAD
|
||||
return hb_stackSetStruct()->hb_set_extrahan;
|
||||
}
|
||||
|
||||
HB_FHANDLE hb_setGetPrintHan( void )
|
||||
PHB_FILE hb_setGetPrintHan( void )
|
||||
{
|
||||
HB_STACK_TLS_PRELOAD
|
||||
return hb_stackSetStruct()->hb_set_printhan;
|
||||
@@ -2932,7 +2918,7 @@ char * hb_osStrU16Decode2( const HB_WCHAR * pszNameW, char * pszBuffer, HB_SIZE
|
||||
}
|
||||
#endif
|
||||
|
||||
HB_FHANDLE hb_setGetPrinterHandle( int iType )
|
||||
PHB_FILE hb_setGetPrinterHandle( int iType )
|
||||
{
|
||||
HB_STACK_TLS_PRELOAD
|
||||
PHB_SET_STRUCT pSet = hb_stackSetStruct();
|
||||
@@ -2941,19 +2927,19 @@ HB_FHANDLE hb_setGetPrinterHandle( int iType )
|
||||
{
|
||||
case HB_SET_PRN_DEV:
|
||||
if( ! pSet->hb_set_prndevice )
|
||||
return FS_ERROR;
|
||||
return NULL;
|
||||
break;
|
||||
case HB_SET_PRN_CON:
|
||||
if( ! pSet->HB_SET_PRINTER )
|
||||
return FS_ERROR;
|
||||
return NULL;
|
||||
break;
|
||||
case HB_SET_PRN_ANY:
|
||||
break;
|
||||
default:
|
||||
return FS_ERROR;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if( pSet->hb_set_printhan == FS_ERROR && pSet->HB_SET_PRINTFILE )
|
||||
if( pSet->hb_set_printhan == NULL && pSet->HB_SET_PRINTFILE )
|
||||
open_handle( pSet, pSet->HB_SET_PRINTFILE, HB_FALSE, HB_SET_PRINTFILE );
|
||||
|
||||
return pSet->hb_set_printhan;
|
||||
|
||||
Reference in New Issue
Block a user