19990901-15:40 GMT+1

This commit is contained in:
Viktor Szakats
1999-09-01 13:57:59 +00:00
parent e4c46c49bc
commit d06958a9a0
31 changed files with 1583 additions and 1375 deletions

View File

@@ -1,3 +1,42 @@
19990901-15:40 GMT+1 Victor Szel <info@szelvesz.hu>
* source/compiler/harbour.y
+ It will now recognize and accept filenames specified via the
/o switch (not only paths), it also allows to override the extension.
Like CLIPPER.EXE.
* Indentation more or less fixed.
* Zeros changed to NULL and '\0'.
% Inc()/Dec() logic cleaned-up. Note that there are many more places where
such logic cleaning and variable scoping optim. could be done.
I'm also not sure if the debug_msg() calls should only be made when
warnings are turned on, IMHO they should always appear when DEBUG is on.
! Some formatting errors corrected.
* tests/working/fileio.prg
+ New test cycle added beginning with FOpen() (Temporary solution)
! nFlags is not NIL anymore.
* tests/working/rtl_test.prg
+ Some tough alias related tests added. They are commented out
for Harbour, since right now they will GPF for sure.
* source/rtl/langapi.c
source/rtl/natmsg/*.c
! Fixed eleven error messages to look exactly like in Clipper.
* source/rtl/filesys.c
include/filesys.h
* hb_fsRead(), hb_fsWrite() changed to use ULONG instead of USHORT.
( ! not tested ! )
! FOPEN() added FO_COMPAT to the default open flags. (cosmetic)
* source/rdd/dbf1.c
+ GetValue() now sets the width and decimals of the returned numeric
value properly using hb_itemSetNLen(). ( not tested )
* source/rtl/itemapi.c
include/itemapi.h
+ hb_itemGetNLen() added. The pair of the recently added hb_itemSetNLen().
* source/rtl/console.c
+ Some static renamed and prefixed with s_
* source/compiler/symbols.asm
+ CVS header added.
* source/compiler/harbour.c
! Formatting errors corrected.
19990901-14:40 GMT+2 Ryszard Glab <rglab@imid.med.pl>
*source/compiler/harbour.l
@@ -33,7 +72,7 @@
19990831-23:10 GMT+1 Victor Szel <info@szelvesz.hu>
* source/rtl/itemapi.c
include/itemapi.h
+ hb_itemSetNLen() added to set the numeric values length and number
+ hb_itemSetNLen() added to set the numeric values length and number
of decimal places. This way we have a standard way to set these without
fiddling with the internals. Cool.
@@ -364,7 +403,7 @@
! hb_fsFNameSplit() fixed handling of colon in filenames.
(reported by Bruno Cantero)
* source/compiler/harbour.y
! Fixed the name format of the generated symbol registration function,
! Fixed the name format of the generated symbol registration function,
since it was causing a compiler error where the .prg name begun with
a number ( for example: 1.prg ). The new format is: hb_vm_SymbolInit_*()
* include/ctoharb.h
@@ -645,12 +684,12 @@
19990825-13:30 GMT+2 Ryszard Glab <rglab@imid.med.pl>
*source/vm/hvm.c
* corrected alias handling in hb_vmAliasSwap() however we still need
to implement the function that will select an workarea using passed
string with an alias name
* if QUIT or BREAK is called in EXIT PROCEDURE then processing
of these procedures is stopped
* corrected alias handling in hb_vmAliasSwap() however we still need
to implement the function that will select an workarea using passed
string with an alias name
* if QUIT or BREAK is called in EXIT PROCEDURE then processing
of these procedures is stopped
19990825-12:50 GMT+1 Victor Szel <info@szelvesz.hu>
* source/rdd/dbcmd.c
@@ -659,7 +698,7 @@
! Modified so that it defines each function everytime, not just when
__DOS__ constant is defined. __DOS__ guard was moved around the function
bodies.
! Removed FILE() function from here, since it's already declared in
! Removed FILE() function from here, since it's already declared in
Harbour RTL/filesys.c
* include/external.ch
source/runner/stdalone/external.prg
@@ -924,13 +963,13 @@
19990824-14:55 GMT+2 Ryszard Glab <rglab@imid.med.pl>
*source/compiler/harbour.y
* corrected arguments type checking in Inc/Dec functions
* corrected arguments type checking in Inc/Dec functions
*source/hbppint.h
* memory.h is not defined in WATCOM C/C++
* memory.h is not defined in WATCOM C/C++
*include/rddapi.h
* added forward declaration for _AREA struct
* added forward declaration for _AREA struct
19990824-11:07 GMT+1 Bruno Cantero <bruno@issnet.net>
* funclist.txt
@@ -995,8 +1034,8 @@
* EXIT functions are called on exit when QUIT is requested
QUESTION: How to handle the call to QUIT function inside of
EXIT procedure? Should we continue execution of the rest of
procedures or immediatelly quit to OS?
EXIT procedure? Should we continue execution of the rest of
procedures or immediatelly quit to OS?
*include/pcode.h
+ added new opcodes
@@ -1015,7 +1054,7 @@ NOTE: You have to recompile all PRG code!
+ new file to test BEGIN/RECOVER/END sequence and BREAK statement
*tests/working/Makefile
* added begin.prg
* added begin.prg
19990823-10:45 GMT+1 Bruno Cantero <bruno@issnet.net>
* include/rddapi.h
@@ -1233,7 +1272,7 @@ NOTE: You have to recompile all PRG code!
source/vm/hvm.c
* Function DEBUGGER renamed to __DBGENTRY
* libs/icc/empty
* libs/icc/empty
- Removed since this directory is not used anymore.
* source/hbpp/makefile.b16 (moved to /hbpp.b16)
@@ -1244,7 +1283,7 @@ NOTE: You have to recompile all PRG code!
build32.bat
hbpp.b16 (added !! NOT tested !!)
hbpp.b32 (added !! NOT tested !!)
+ Moved to the root, renamed and incorporated to the mainstream
+ Moved to the root, renamed and incorporated to the mainstream
Borland make process, it's commented out.
( !! PLEASE UPDATE THE BORLAND MAKEFILES !! )
@@ -1257,7 +1296,7 @@ NOTE: You have to recompile all PRG code!
* minor improvements
* makefile.b32
* added tone.c
19990821-14:20 GMT+2 Ryszard Glab <rglab@imid.med.pl>
*source/rtl/inkey.c

View File

@@ -77,11 +77,11 @@ extern BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart,
ULONG ulLength, USHORT uiMode );
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 ULONG hb_fsRead ( FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount );
extern BOOL hb_fsRmDir ( BYTE * pDirName );
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 );
extern ULONG hb_fsWrite ( FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount );
extern PHB_FNAME hb_fsFNameSplit ( char * szFilename ); /* Split given filename into path, name and extension */
extern char * hb_fsFNameMerge ( char * szFileName, PHB_FNAME pFileName ); /* This function joins path, name and extension into a string with a filename */

View File

@@ -51,6 +51,7 @@ extern char * hb_itemGetDS ( PHB_ITEM pItem, char *szDate );
extern BOOL hb_itemGetL ( PHB_ITEM pItem );
extern double hb_itemGetND ( PHB_ITEM pItem );
extern long hb_itemGetNL ( PHB_ITEM pItem );
extern void hb_itemGetNLen ( PHB_ITEM pItem, WORD * pwWidth, WORD * pwDecimal );
extern void hb_itemSetNLen ( PHB_ITEM pItem, WORD wWidth, WORD wDecimal );
extern PHB_ITEM hb_itemNew ( PHB_ITEM pNull );
extern PHB_ITEM hb_itemParam ( WORD wParam );

View File

@@ -5,20 +5,20 @@
#include "hbsetup.h"
#if defined(DOS) && defined(__BORLANDC__)
#include <limits.h>
extern unsigned _stklen = UINT_MAX;
#include <limits.h>
extern unsigned _stklen = UINT_MAX;
#endif
extern int harbour_main( int argc, char * argv[] );
int main( int argc, char * argv[] )
{
return harbour_main(argc, argv);
return harbour_main( argc, argv );
}
#ifdef __IBMCPP__
int isatty (int handle)
int isatty ( int handle )
{
return (handle < 4) ? 1 : 0;
return ( handle < 4 ) ? 1 : 0;
}
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,7 @@
;
; $Id$
;
; Copyright(C) 1999 by Antonio Linares.
;
; This program is free software; you can redistribute it and/or modify

View File

@@ -120,7 +120,7 @@ static BOOL hb_nltoa( LONG lValue, char * szBuffer, USHORT uiLen )
}
uiLen--;
for( iCount= 0; iCount < uiLen; iCount++ )
for( iCount = 0; iCount < uiLen; iCount++ )
if( szBuffer[ iCount ] == '0' )
szBuffer[ iCount ] = ' ';
else
@@ -813,26 +813,27 @@ static ERRCODE GetValue( AREAP pArea, USHORT uiIndex, PHB_ITEM pItem )
case 'N':
szEndChar = * ( szText + pField->uiLen );
* ( szText + pField->uiLen ) = 0;
* ( szText + pField->uiLen ) = '\0';
if( pField->uiDec )
hb_itemPutND( pItem, atof( ( char * ) szText ) );
else
hb_itemPutNL( pItem, atol( ( char * ) szText ) );
hb_itemSetNLen( pItem, ( WORD ) pField->uiLen, ( WORD ) pField->uiDec );
* ( szText + pField->uiLen ) = szEndChar;
break;
case 'D':
szEndChar = * ( szText + pField->uiLen );
* ( szText + pField->uiLen ) = 0;
* ( szText + pField->uiLen ) = '\0';
hb_itemPutDS( pItem, ( char * ) szText );
* ( szText + pField->uiLen ) = szEndChar;
break;
case 'L':
if( * szText == 'T' )
hb_itemPutL( pItem, 1 );
hb_itemPutL( pItem, TRUE );
else
hb_itemPutL( pItem, 0 );
hb_itemPutL( pItem, FALSE );
break;
case 'M':

View File

@@ -78,8 +78,11 @@
#define CRLF_BUFFER_LEN 3 /*length of buffer for CR/LF characters */
#endif
static USHORT dev_row, dev_col, p_row, p_col;
static char s_szCrLf[ CRLF_BUFFER_LEN ];
static USHORT s_uiDevRow;
static USHORT s_uiDevCol;
static USHORT s_uiPRow;
static USHORT s_uiPCol;
static char s_szCrLf[ CRLF_BUFFER_LEN ];
void hb_consoleRelease( void )
{
@@ -99,7 +102,7 @@ void hb_consoleInitialize( void )
s_szCrLf[ 1 ] = '\0';
#endif
p_row = p_col = 0;
s_uiPRow = s_uiPCol = 0;
/* Some compilers open stdout and stderr in text mode, but
Harbour needs them to be open in binary mode. */
@@ -113,10 +116,10 @@ void hb_consoleInitialize( void )
#ifdef HARBOUR_USE_GTAPI
hb_gtInit();
hb_gtGetPos( &dev_row, &dev_col );
hb_gtGetPos( &s_uiDevRow, &s_uiDevCol );
#else
dev_row = 0;
dev_col = 0;
s_uiDevRow = 0;
s_uiDevCol = 0;
#endif
}
@@ -251,13 +254,13 @@ static void hb_outstd( char * pStr, ULONG len )
if( isatty( fileno( stdout ) ) )
#endif
{
dev_row = hb_gt_Row();
dev_col = hb_gt_Col();
hb_gtSetPos( dev_row, dev_col );
s_uiDevRow = hb_gt_Row();
s_uiDevCol = hb_gt_Col();
hb_gtSetPos( s_uiDevRow, s_uiDevCol );
}
hb_gtPostExt();
#else
adjust_pos( pStr, len, &dev_row, &dev_col, hb_max_row(), hb_max_col() );
adjust_pos( pStr, len, &s_uiDevRow, &s_uiDevCol, hb_max_row(), hb_max_col() );
#endif
}
@@ -281,13 +284,13 @@ static void hb_outerr( char * pStr, ULONG len )
if( isatty( fileno( stderr ) ) )
#endif
{
dev_row = hb_gt_Row();
dev_col = hb_gt_Col();
hb_gtSetPos( dev_row, dev_col );
s_uiDevRow = hb_gt_Row();
s_uiDevCol = hb_gt_Col();
hb_gtSetPos( s_uiDevRow, s_uiDevCol );
}
hb_gtPostExt();
#else
adjust_pos( pStr, len, &dev_row, &dev_col, hb_max_row(), hb_max_col() );
adjust_pos( pStr, len, &s_uiDevRow, &s_uiDevCol, hb_max_row(), hb_max_col() );
#endif
}
@@ -300,14 +303,14 @@ static void hb_altout( char * pStr, ULONG len )
{
#ifdef HARBOUR_USE_GTAPI
hb_gtWriteCon( pStr, len );
hb_gtGetPos( &dev_row, &dev_col );
hb_gtGetPos( &s_uiDevRow, &s_uiDevCol );
#else
ULONG count = len;
if( strlen( pStr ) != count )
while( count-- ) printf( "%c", *pPtr++ );
else
printf( "%s", pStr );
adjust_pos( pStr, len, &dev_row, &dev_col, hb_max_row(), hb_max_col() );
adjust_pos( pStr, len, &s_uiDevRow, &s_uiDevCol, hb_max_row(), hb_max_col() );
#endif
}
if( hb_set.HB_SET_ALTERNATE && hb_set_althan >= 0 )
@@ -375,8 +378,8 @@ static void hb_altout( char * pStr, ULONG len )
write( hb_set_printhan, pPtr, write_len );
pPtr += write_len;
}
if( len + p_col > USHRT_MAX ) p_col = USHRT_MAX;
else p_col += len;
if( len + s_uiPCol > USHRT_MAX ) s_uiPCol = USHRT_MAX;
else s_uiPCol += len;
}
}
@@ -404,15 +407,15 @@ static void hb_devout( char * pStr, ULONG len )
write( hb_set_printhan, pPtr, write_len );
pPtr += write_len;
}
if( len + p_col > USHRT_MAX ) p_col = USHRT_MAX;
else p_col += len;
if( len + s_uiPCol > USHRT_MAX ) s_uiPCol = USHRT_MAX;
else s_uiPCol += len;
}
else
{
#ifdef HARBOUR_USE_GTAPI
/* Otherwise, display to console */
hb_gtWrite( pStr, len );
hb_gtGetPos( &dev_row, &dev_col );
hb_gtGetPos( &s_uiDevRow, &s_uiDevCol );
#else
ULONG count = len;
char * pPtr = pStr;
@@ -420,7 +423,7 @@ static void hb_devout( char * pStr, ULONG len )
while( count-- ) printf( "%c", *pPtr++ );
else
printf( "%s", pStr );
adjust_pos( pStr, len, &dev_row, &dev_col, hb_max_row(), hb_max_col() );
adjust_pos( pStr, len, &s_uiDevRow, &s_uiDevCol, hb_max_row(), hb_max_col() );
#endif
}
}
@@ -431,7 +434,7 @@ static void hb_dispout( char * pStr, ULONG len )
#ifdef HARBOUR_USE_GTAPI
/* Display to console */
hb_gtWrite( pStr, len );
hb_gtGetPos( &dev_row, &dev_col );
hb_gtGetPos( &s_uiDevRow, &s_uiDevCol );
#else
ULONG count = len;
char * pPtr = pStr;
@@ -439,7 +442,7 @@ static void hb_dispout( char * pStr, ULONG len )
while( count-- ) printf( "%c", *pPtr++ );
else
printf( "%s", pStr );
adjust_pos( pStr, len, &dev_row, &dev_col, hb_max_row(), hb_max_col() );
adjust_pos( pStr, len, &s_uiDevRow, &s_uiDevCol, hb_max_row(), hb_max_col() );
#endif
}
@@ -450,19 +453,19 @@ void hb_setpos( WORD row, WORD col )
#else
WORD count;
if( row < dev_row || col < dev_col )
if( row < s_uiDevRow || col < s_uiDevCol )
{
printf( s_szCrLf );
dev_col = 0;
dev_row++;
s_uiDevCol = 0;
s_uiDevRow++;
}
else if( row > dev_row ) dev_col = 0;
for( count = dev_row; count < row; count++ ) printf( s_szCrLf );
for( count = dev_col; count < col; count++ ) printf( " " );
else if( row > s_uiDevRow ) s_uiDevCol = 0;
for( count = s_uiDevRow; count < row; count++ ) printf( s_szCrLf );
for( count = s_uiDevCol; count < col; count++ ) printf( " " );
#endif
dev_row = row;
dev_col = col;
s_uiDevRow = row;
s_uiDevCol = col;
}
void hb_devpos( WORD row, WORD col )
@@ -472,17 +475,17 @@ void hb_devpos( WORD row, WORD col )
otherwise position console */
if( hb_set_printhan >= 0 && hb_stricmp( hb_set.HB_SET_DEVICE, "PRINTER" ) == 0 )
{
if( row < p_row )
if( row < s_uiPRow )
{
write( hb_set_printhan, "\x0C", 1 );
p_row = p_col = 0;
s_uiPRow = s_uiPCol = 0;
}
for( count = p_row; count < row; count++ ) write( hb_set_printhan, s_szCrLf, CRLF_BUFFER_LEN-1 );
if( row > p_row ) p_col = 0;
for( count = s_uiPRow; count < row; count++ ) write( hb_set_printhan, s_szCrLf, CRLF_BUFFER_LEN-1 );
if( row > s_uiPRow ) s_uiPCol = 0;
col += hb_set.HB_SET_MARGIN;
for( count = p_col; count < col; count++ ) write( hb_set_printhan, " ", 1 );
p_row = row;
p_col = col;
for( count = s_uiPCol; count < col; count++ ) write( hb_set_printhan, " ", 1 );
s_uiPRow = row;
s_uiPCol = col;
}
else
{
@@ -531,9 +534,9 @@ HARBOUR HB_QOUT( void )
if( hb_set.HB_SET_PRINTER && hb_set_printhan >= 0 )
{
p_row++;
p_col = hb_set.HB_SET_MARGIN;
count = p_col;
s_uiPRow++;
s_uiPCol = hb_set.HB_SET_MARGIN;
count = s_uiPCol;
while( count-- > 0 ) write( hb_set_printhan, " ", 1 );
}
@@ -649,14 +652,14 @@ HARBOUR HB___EJECT( void ) /* Ejects the current page from the printer */
if( hb_stricmp( hb_set.HB_SET_DEVICE, "PRINTER" ) == 0 && hb_set_printhan >= 0 )
{
write( hb_set_printhan, "\x0C\x0D", 2 );
p_row = p_col = 0;
s_uiPRow = s_uiPCol = 0;
}
}
HARBOUR HB_PROW( void ) /* Returns the current printer row position */
{
if( hb_pcount() == 0 )
hb_retni( p_row );
hb_retni( s_uiPRow );
else
hb_errRT_BASE( EG_ARGCOUNT, 3000, NULL, "PROW" ); /* NOTE: Clipper catches this at compile time! */
}
@@ -664,7 +667,7 @@ HARBOUR HB_PROW( void ) /* Returns the current printer row position */
HARBOUR HB_PCOL( void ) /* Returns the current printer row position */
{
if( hb_pcount() == 0 )
hb_retni( p_col );
hb_retni( s_uiPCol );
else
hb_errRT_BASE( EG_ARGCOUNT, 3000, NULL, "PCOL" ); /* NOTE: Clipper catches this at compile time! */
}
@@ -678,13 +681,13 @@ HARBOUR HB_SETPRC( void ) /* Sets the current printer row and column positions *
/* Limit the new position to the range (0,0) to (65535,65535) */
if( l_row < 0 ) p_row = 0;
else if( l_row > USHRT_MAX ) p_row = USHRT_MAX;
else p_row = l_row;
if( l_row < 0 ) s_uiPRow = 0;
else if( l_row > USHRT_MAX ) s_uiPRow = USHRT_MAX;
else s_uiPRow = l_row;
if( l_col < 0 ) p_col = 0;
else if( l_col > USHRT_MAX ) p_col = USHRT_MAX;
else p_col = l_col;
if( l_col < 0 ) s_uiPCol = 0;
else if( l_col > USHRT_MAX ) s_uiPCol = USHRT_MAX;
else s_uiPCol = l_col;
}
}
@@ -724,9 +727,9 @@ HARBOUR HB_SCROLL( void ) /* Scrolls a screen region (requires the GT API) */
&& v_scroll == 0 && h_scroll == 0 )
{
WORD count;
dev_row = iMR;
for( count = 0; count < dev_row ; count++ ) printf( s_szCrLf );
dev_row = dev_col = 0;
s_uiDevRow = iMR;
for( count = 0; count < s_uiDevRow ; count++ ) printf( s_szCrLf );
s_uiDevRow = s_uiDevCol = 0;
}
#endif
}
@@ -746,9 +749,9 @@ HARBOUR HB_ROW( void ) /* Return the current screen row position (zero origin) *
if( hb_pcount() == 0 )
{
#ifdef HARBOUR_USE_GTAPI
hb_gtGetPos( &dev_row, &dev_col );
hb_gtGetPos( &s_uiDevRow, &s_uiDevCol );
#endif
hb_retni( dev_row );
hb_retni( s_uiDevRow );
}
else
hb_errRT_BASE( EG_ARGCOUNT, 3000, NULL, "ROW" ); /* NOTE: Clipper catches this at compile time! */
@@ -759,9 +762,9 @@ HARBOUR HB_COL( void ) /* Return the current screen column position (zero origin
if( hb_pcount() == 0 )
{
#ifdef HARBOUR_USE_GTAPI
hb_gtGetPos( &dev_row, &dev_col );
hb_gtGetPos( &s_uiDevRow, &s_uiDevCol );
#endif
hb_retni( dev_col );
hb_retni( s_uiDevCol );
}
else
hb_errRT_BASE( EG_ARGCOUNT, 3000, NULL, "COL" ); /* NOTE: Clipper catches this at compile time! */

View File

@@ -328,48 +328,62 @@ void hb_fsClose ( FHANDLE hFileHandle )
}
USHORT hb_fsRead ( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
/* NOTE: CA-Clipper uses USHORT instead of ULONG here. */
ULONG hb_fsRead ( FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount )
{
USHORT uiRead;
ULONG ulReadTotal = 0;
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
errno = 0;
uiRead = read( hFileHandle, pBuff, uiCount );
while( ulReadTotal < ulCount )
{
USHORT uiRead = read( hFileHandle, pBuff, ( USHORT ) ( ulCount - ulReadTotal ) );
if( uiRead == ( USHORT )-1 )
break;
ulReadTotal += ( ULONG ) uiRead;
}
s_uiErrorLast = errno;
if( uiRead == ( USHORT )-1 )
uiRead = 0;
#else
uiRead = 0;
s_uiErrorLast = FS_ERROR;
#endif
return uiRead;
return ulReadTotal;
}
USHORT hb_fsWrite ( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
/* NOTE: CA-Clipper uses USHORT instead of ULONG here. */
ULONG hb_fsWrite ( FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount )
{
USHORT uiWritten;
ULONG ulWrittenTotal = 0;
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
errno = 0;
uiWritten = write( hFileHandle, pBuff, uiCount );
while( ulWrittenTotal < ulCount )
{
USHORT uiWritten = write( hFileHandle, pBuff, ( USHORT ) ( ulCount - ulWrittenTotal ) );
if( uiWritten == ( USHORT )-1 )
break;
ulWrittenTotal += ( ULONG ) uiWritten;
}
s_uiErrorLast = errno;
if( uiWritten == ( USHORT )-1 )
uiWritten = 0;
#else
uiWritten = 0;
s_uiErrorLast = FS_ERROR;
#endif
return uiWritten;
return ulWrittenTotal;
}
ULONG hb_fsSeek ( FHANDLE hFileHandle, LONG lOffset, USHORT uiFlags )
@@ -388,7 +402,7 @@ ULONG hb_fsSeek ( FHANDLE hFileHandle, LONG lOffset, USHORT uiFlags )
ulPos = lseek( hFileHandle, 0, SEEK_CUR );
if( errno != 0 )
s_uiErrorLast = errno;
#endif
}
@@ -717,7 +731,7 @@ HARBOUR HB_FOPEN( void )
{
if( ISCHAR( 1 ) )
hb_retni( hb_fsOpen( ( BYTE * ) hb_parc( 1 ),
ISNUM( 2 ) ? hb_parni( 2 ) : FO_READ ) );
ISNUM( 2 ) ? hb_parni( 2 ) : FO_READ | FO_COMPAT ) );
else
hb_errRT_BASE( EG_ARG, 2021, NULL, "FOPEN" ); /* NOTE: Undocumented but existing Clipper Run-time error */
}
@@ -1018,7 +1032,7 @@ HARBOUR HB_DISKCHANGE( void )
int uiErrorOld = s_uiErrorLast;
hb_retl( ( ISCHAR( 1 ) && hb_parclen( 1 ) > 0 ) ?
hb_fsChDrv( ( USHORT )( toupper( *hb_parc( 1 ) ) - 'A' + 1 ) ) == 0 :
hb_fsChDrv( ( USHORT )( toupper( *hb_parc( 1 ) ) - 'A' + 1 ) ) == 0 :
FALSE );
s_uiErrorLast = uiErrorOld;

View File

@@ -25,6 +25,7 @@
/* Harbour Project source code
http://www.Harbour-Project.org/
The following functions are Copyright 1999 Victor Szel <info@szelvesz.hu>:
hb_itemGetNLen()
hb_itemSetNLen()
See doc/hdr_tpl.txt, Version 1.2 or later, for licensing terms.
*/
@@ -393,6 +394,30 @@ PHB_ITEM hb_itemPutNL( PHB_ITEM pItem, long lNumber )
return pItem;
}
void hb_itemGetNLen( PHB_ITEM pItem, WORD * pwWidth, WORD * pwDecimal )
{
if( pItem )
{
switch( pItem->type )
{
case IT_DOUBLE:
* pwWidth = pItem->item.asDouble.length;
* pwDecimal = pItem->item.asDouble.decimal;
break;
case IT_LONG:
* pwWidth = pItem->item.asLong.length;
* pwDecimal = 0;
break;
case IT_INTEGER:
* pwWidth = pItem->item.asInteger.length;
* pwDecimal = 0;
break;
}
}
}
void hb_itemSetNLen( PHB_ITEM pItem, WORD wWidth, WORD wDecimal )
{
if( pItem

View File

@@ -36,11 +36,11 @@
#include "extend.h"
#include "langapi.h"
static HB_LANG langEN =
static HB_LANG langEN =
{
"English", /* Name */
"EN", /* RFC ID */
"437", /* Codepage */
"English", /* Name */
"EN", /* RFC ID */
"437", /* Codepage */
/* Texts */
@@ -87,7 +87,7 @@ static HB_LANG langEN =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -96,11 +96,11 @@ static HB_LANG langEN =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -112,18 +112,18 @@ static HB_LANG langEN =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",
@@ -148,7 +148,7 @@ static HB_LANG langEN =
};
static PHB_LANG s_langDef = &langEN;
void hb_langDSet ( PHB_LANG lang )
{
if( lang )

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -54,10 +54,10 @@ char *hb_errorsGeneric[] =
"š˜ƒ‚…Ž €Œ „‰<E28093>…”",
"No exported method",
"<EFBFBD>‰‰— €Œ „<>š™Ž",
"Alias does not exists",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"<EFBFBD>…— š˜‰–‰ <20>ކ<C5BD> „€‰‚™",
"„‡‰š” <20>ކ<C5BD> „€‰‚™",
@@ -72,11 +72,11 @@ char *hb_errorsGeneric[] =
"šŽš<EFBFBD><>‰€ š€† „Œ…’”",
"Limit exceeded",
"<EFBFBD>‰—š €Œ …€ ™<>…™Ž <E28098>‰€",
"Incorrect type of data",
"Data width too long",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"„Œ‰<EFBFBD> „™…˜ƒ",
"„˜…‘€ „<>‰š šŒ…’”",
"Append lock failed",

View File

@@ -54,10 +54,10 @@ char *hb_errorsGeneric[] =
"פונקציה לא מוגדרת",
"No exported method",
"משתנה לא קיים",
"Alias does not exists",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"שגיאה בזמן יצירת קובץ",
"שגיאה בזמן פתיחה",
@@ -72,11 +72,11 @@ char *hb_errorsGeneric[] =
"פעולה זאת אינה נתמכת",
"Limit exceeded",
"אינקס משובש או לא תקין",
"Incorrect type of data",
"Data width too long",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"דרושה נעילה",
"פעולת כתיבה אסורה",
"Append lock failed",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -44,7 +44,7 @@ char *hb_errorsGeneric[] =
"Bound error",
"String overflow",
"Numeric overflow",
"Divide by zero",
"Zero divisor",
"Numeric error",
"Syntax error",
"Operation too complex",
@@ -53,11 +53,11 @@ char *hb_errorsGeneric[] =
"Memory low",
"Undefined function",
"No exported method",
"Variable does not exists",
"Alias does not exists",
"Variable does not exist",
"Alias does not exist",
"No exported variable",
"Incorrect alias name",
"Duplicated alias name",
"Illegal characters in alias",
"Alias already in use",
"",
"Create error",
"Open error",
@@ -69,18 +69,18 @@ char *hb_errorsGeneric[] =
"",
"",
"",
"Unsupported operation",
"Operation not supported",
"Limit exceeded",
"Index corruption detected",
"Incorrect type of data",
"Data width too long",
"Corruption detected",
"Data type error",
"Data width error",
"Workarea not in use",
"Workarea not indexed",
"Exclusive use required",
"Exclusive required",
"Lock required",
"Write not allowed",
"Append lock failed",
"Lock failure",
"Lock Failure",
"",
"",
"",

View File

@@ -11,7 +11,7 @@
FUNCTION Main()
LOCAL cFileName := "TEST.TXT"
LOCAL nFlags
LOCAL nFlags := FC_NORMAL
LOCAL cBuffer
LOCAL fhnd
@@ -79,6 +79,71 @@ FUNCTION Main()
OutSpec("FErase( 'NOT_HERE.$$$' )" , FErase( 'NOT_HERE.$$$' ) )
OutSpec("FRename( 'NOT_HERE.$$$', 'A' )" , FRename( 'NOT_HERE.$$$', 'A' ) )
nFlags := FO_READWRITE
OutSpec("FOpen( cFileName, nFlags )" , fhnd := FOpen( cFileName, nFlags ) )
OutSpec("FWrite( fhnd, '>1234567890<' )" , FWrite( fhnd, ">1234567890<" ) )
OutSpec("FWrite( fhnd, '(123.4567890)' )", FWrite( fhnd, "(123" + Chr(0) + "4567890)" ) )
OutSpec("FSeek( fhnd )" , FSeek( fhnd ) )
OutSpec("FSeek( fhnd, 5 )" , FSeek( fhnd, 5 ) )
OutSpec("FSeek( fhnd, -1, FS_SET )" , FSeek( fhnd, -1, FS_SET ) )
OutSpec("FSeek( fhnd, -10, FS_SET )" , FSeek( fhnd, -10, FS_SET ) )
OutSpec("FSeek( fhnd, -100, FS_SET )" , FSeek( fhnd, -100, FS_SET ) )
OutSpec("FWrite( fhnd, '!' )" , FWrite( fhnd, "!" ) )
OutSpec("FSeek( fhnd, 1 )" , FSeek( fhnd, 1 ) )
OutSpec("FWrite( fhnd, 'A' )" , FWrite( fhnd, "A" ) )
OutSpec("FSeek( fhnd, 2, FS_SET )" , FSeek( fhnd, 2, FS_SET ) )
OutSpec("FWrite( fhnd, 'B' )" , FWrite( fhnd, "B" ) )
OutSpec("FSeek( fhnd, 3, FS_RELATIVE )" , FSeek( fhnd, 3, FS_RELATIVE ) )
OutSpec("FWrite( fhnd, 'C' )" , FWrite( fhnd, "C" ) )
OutSpec("FSeek( fhnd, -1, FS_RELATIVE )" , FSeek( fhnd, -1, FS_RELATIVE ) )
OutSpec("FWrite( fhnd, 'D' )" , FWrite( fhnd, "D" ) )
OutSpec("FSeek( fhnd, 3, FS_END )" , FSeek( fhnd, 3, FS_END ) )
OutSpec("FWrite( fhnd, 'E' )" , FWrite( fhnd, "E" ) )
OutSpec("FSeek( fhnd, -1, FS_END )" , FSeek( fhnd, -1, FS_END ) )
OutSpec("FWrite( fhnd, 'F' )" , FWrite( fhnd, "F" ) )
OutSpec("FSeek( fhnd, 0 )" , FSeek( fhnd, 0 ) )
cBuffer := 1000
OutStd("cBuffer := 1000" + Chr( 13 ) + Chr( 10 ))
OutSpec("FRead( fhnd, cBuffer )" , FRead( fhnd, cBuffer ) )
OutSpec("FRead( fhnd, @cBuffer, 2 )" , FRead( fhnd, cBuffer, 2 ) )
cBuffer := Space(4)
OutStd("cBuffer := Space(4)" + Chr( 13 ) + Chr( 10 ))
OutSpec("FRead( fhnd, cBuffer )" , FRead( fhnd, cBuffer ) )
OutSpec("FRead( fhnd, cBuffer, 2 )" , FRead( fhnd, cBuffer, 2 ) )
#ifdef HARBOUR_STRICT_CLIPPER_COMPATIBILITY
OutSpec("FRead( fhnd, @cBuffer, len+1 )" , FRead( fhnd, @cBuffer, Len( cBuffer ) + 1 ) )
#endif
OutSpec("FRead( fhnd, @cBuffer, 1000 )" , FRead( fhnd, @cBuffer, 1000 ) )
OutSpec("FRead( fhnd, @cBuffer, 3 )" , FRead( fhnd, @cBuffer, 3 ) )
cBuffer := Space(100)
OutStd("cBuffer := Space(100)" + Chr( 13 ) + Chr( 10 ))
OutSpec("FRead( fhnd, @cBuffer, 100 )" , FRead( fhnd, @cBuffer, 100 ) )
OutSpec("FSeek( fhnd, 0 )" , FSeek( fhnd, 0 ) )
OutSpec("FReadStr( fhnd, 4 )" , FReadStr( fhnd, 4 ) )
OutSpec("FSeek( fhnd, 0 )" , FSeek( fhnd, 0 ) )
OutSpec("FReadStr( fhnd, 100 )" , FReadStr( fhnd, 100 ) )
OutSpec("FSeek( fhnd, -4, FS_END )" , FSeek( fhnd, -4, FS_END ) )
OutSpec("FReadStr( fhnd, 1 )" , FReadStr( fhnd, 1 ) )
OutSpec("FReadStr( fhnd, 20 )" , FReadStr( fhnd, 20 ) )
OutSpec("FSeek( fhnd, 0, FS_END )" , FSeek( fhnd, 0, FS_END ) )
OutSpec("FWrite( fhnd, '_-_-_-_-_-_-_' )", FWrite( fhnd, "_-_-_-_-_-_-_" ) )
OutSpec("FSeek( fhnd, -4, FS_END )" , FSeek( fhnd, -4, FS_END ) )
OutSpec("FReadStr( fhnd, 1 )" , FReadStr( fhnd, 1 ) )
OutSpec("FReadStr( fhnd, 20 )" , FReadStr( fhnd, 20 ) )
OutSpec("FSeek( fhnd, 3, FS_END )" , FSeek( fhnd, 3, FS_END ) )
OutSpec("FWrite( fhnd, 'V' )" , FWrite( fhnd, "V" ) )
OutSpec("FSeek( fhnd, -3, FS_END )" , FSeek( fhnd, -3, FS_END ) )
OutSpec("FWrite( fhnd, 'W' )" , FWrite( fhnd, "W" ) )
OutSpec("FClose()" , FClose() )
OutSpec("FClose( fhnd )" , FClose( fhnd ) )
OutSpec("FClose( fhnd )" , FClose( fhnd ) )
OutSpec("FErase( 'NOT_HERE.$$$' )" , FErase( 'NOT_HERE.$$$' ) )
OutSpec("FErase( 1 )" , FErase( 1 ) )
OutSpec("FErase( 'NOT_HERE.$$$' )" , FErase( 'NOT_HERE.$$$' ) )
OutSpec("FRename( 'NOT_HERE.$$$', 'A' )" , FRename( 'NOT_HERE.$$$', 'A' ) )
OutSpec("File( cFileName )" , File( cFileName ) )
RETURN NIL

View File

@@ -68,7 +68,7 @@ FUNCTION Main( cPar1 )
LOCAL lcString := "HELLO"
LOCAL lcStringE := ""
LOCAL lcStringZ := "A" + Chr(0) + "B"
LOCAL lcStringZ := "A" + Chr( 0 ) + "B"
LOCAL lnIntZ := 0
LOCAL lnDoubleZ := 0.0
LOCAL lnIntP := 10
@@ -78,7 +78,7 @@ FUNCTION Main( cPar1 )
LOCAL lnLongN := -100000
LOCAL lnDoubleN := -10.567 /* Use different number of decimals than the default */
LOCAL lnDoubleI := Log( 0 )
LOCAL ldDateE := SToD("")
LOCAL ldDateE := SToD( "" )
LOCAL llFalse := .F.
LOCAL llTrue := .T.
LOCAL loObject := ErrorNew()
@@ -110,7 +110,7 @@ FUNCTION Main( cPar1 )
/* NOTE: mxNotHere intentionally not declared */
PRIVATE mcString := "HELLO"
PRIVATE mcStringE := ""
PRIVATE mcStringZ := "A" + Chr(0) + "B"
PRIVATE mcStringZ := "A" + Chr( 0 ) + "B"
PRIVATE mnIntZ := 0
PRIVATE mnDoubleZ := 0.0
PRIVATE mnIntP := 10
@@ -120,7 +120,7 @@ FUNCTION Main( cPar1 )
PRIVATE mnLongN := -100000
PRIVATE mnDoubleN := -10.567
PRIVATE mnDoubleI := Log( 0 )
PRIVATE mdDateE := SToD("")
PRIVATE mdDateE := SToD( "" )
PRIVATE mlFalse := .F.
PRIVATE mlTrue := .T.
PRIVATE moObject := ErrorNew()
@@ -402,10 +402,34 @@ FUNCTION Main( cPar1 )
/* NOTE: TEST_CALL() should be used here, since CA-Cl*pper can't preprocess
the TEST_LINE() variation properly. */
/* TEST_LINE( ("NOTHERE")->NOFIELD , "E BASE 1002 Alias does not exist NOTHERE F:R" ) */
// TEST_LINE( ("NOTHERE")->NOFIELD , "E BASE 1002 Alias does not exist NOTHERE F:R" )
// TEST_LINE( (mcString)->NOFIELD , "E BASE 1002 Alias does not exist NOTHERE F:R" )
// TEST_LINE( ({})->NOFIELD , "E BASE 1002 Alias does not exist NOTHERE F:R" )
// TEST_LINE( ({|| NIL })->NOFIELD , "E BASE 1002 Alias does not exist NOTHERE F:R" )
// TEST_LINE( (.T.)->NOFIELD , "E BASE 1002 Alias does not exist NOTHERE F:R" )
TEST_CALL( '("NOTHERE")->NOFIELD', {|| ("NOTHERE")->NOFIELD }, "E BASE 1002 Alias does not exist NOTHERE F:R" )
TEST_CALL( '(mcString)->NOFIELD' , {|| (mcString)->NOFIELD } , "E BASE 1002 Alias does not exist HELLO F:R" )
TEST_CALL( '({})->NOFIELD' , {|| ({})->NOFIELD } , "E BASE 1065 Argument error & F:S" )
TEST_CALL( '({|| NIL })->NOFIELD', {|| ({|| NIL })->NOFIELD }, "E BASE 1065 Argument error & F:S" )
TEST_CALL( '(.T.)->NOFIELD' , {|| (.T.)->NOFIELD } , "E BASE 1065 Argument error & F:S" )
TEST_CALL( '(NIL)->NOFIELD' , {|| (NIL)->NOFIELD } , "E BASE 1065 Argument error & F:S" )
TEST_CALL( '("NOTHERE")->(Eof())', {|| ("NOTHERE")->(Eof()) }, .T. )
TEST_CALL( '(mcString)->(Eof())' , {|| (mcString)->(Eof()) } , .T. )
TEST_CALL( '({})->(Eof())' , {|| ({})->(Eof()) } , .T. )
TEST_CALL( '({|| NIL })->(Eof())', {|| ({|| NIL })->(Eof()) }, .T. )
TEST_CALL( '(.T.)->(Eof())' , {|| (.T.)->(Eof()) } , .T. )
TEST_CALL( '(.F.)->(Eof())' , {|| (.F.)->(Eof()) } , .T. )
TEST_CALL( '(NIL)->(Eof())' , {|| (NIL)->(Eof()) } , .T. )
TEST_LINE( NOTHERE->NOFIELD , "E BASE 1002 Alias does not exist NOTHERE F:R" )
TEST_LINE( 200->NOFIELD , "E BASE 1003 Variable does not exist NOFIELD F:R" )
TEST_LINE( 200->("NOFIELD") , "NOFIELD" )
TEST_LINE( 200->(NIL) , NIL )
TEST_LINE( 200->(1) , 1 )
TEST_LINE( 200->(1.5) , 1.5 )
TEST_LINE( 200->({}) , "{.[0].}" )
TEST_LINE( 200->({|| NIL }) , "{||...}" )
TEST_LINE( 200->(.T.) , .T. )
#endif
TEST_LINE( loObject:hello , "E BASE 1004 No exported method HELLO F:S" )