19990817-07:30 GMT+1
This commit is contained in:
@@ -1,3 +1,63 @@
|
||||
19990817-07:30 GMT+1 Victor Szel <info@szelvesz.hu>
|
||||
* source/vm/hvm.c
|
||||
source/rtl/errorapi.c
|
||||
source/rtl/classes.c
|
||||
source/rtl/fm.c
|
||||
source/rtl/itemapi.c
|
||||
source/rtl/transfrm.c
|
||||
include/errors.ch
|
||||
+ printf()s changed to a call to hb_errInternal() instead.
|
||||
* hb_callStackShow() modified so that it uses the same format as
|
||||
the standard error handler.
|
||||
|
||||
* include/initsymc.h
|
||||
include/initsymd.h
|
||||
source/rtl/errorapi.c
|
||||
+ Harbour callable __errRT_BASE() function added.
|
||||
|
||||
* include/errorapi.h
|
||||
source/rdd/dbcmd.c
|
||||
source/rtl/errorapi.c
|
||||
source/rtl/arrays.c
|
||||
source/rtl/classes.c
|
||||
source/rtl/copyfile.c
|
||||
source/rtl/dates.c
|
||||
source/rtl/do.c
|
||||
source/rtl/errorapi.c
|
||||
source/rtl/filesys.c
|
||||
source/rtl/inkey.c
|
||||
source/rtl/math.c
|
||||
source/rtl/memvars.c
|
||||
source/rtl/set.c
|
||||
source/rtl/strings.c
|
||||
source/rtl/transfrm.c
|
||||
source/tools/dates2.c
|
||||
source/vm/hvm.c
|
||||
* hb_error*() -> hb_err*()
|
||||
- removed obsolete hb_errorNat*() prototypes.
|
||||
|
||||
* include/hberrors.h
|
||||
include/hbpp.h
|
||||
source/compiler/harbour.y
|
||||
source/hbpp/*.c
|
||||
source/hbpp/stdalone/*.c
|
||||
+ Added the ability to display warnings in standard format.
|
||||
! Adjusted and corrected to help display of HBPP.EXE
|
||||
|
||||
* source/rtl/objfunc.prg
|
||||
doc/subcodes.txt
|
||||
* Got rid of the QOUT() type runtime-error messages, there's now
|
||||
a more comprehensive, standard error checking system, which throws
|
||||
Harbour errors.
|
||||
! Some small bugs fixed. (checking argument after usage, additional
|
||||
parameters passed in one place - typo)
|
||||
|
||||
* include/hboo.ch
|
||||
source/rtl/objfunc.prg
|
||||
source/rtl/tclass.prg
|
||||
source/tools/stringp.prg
|
||||
* DATA_VAL -> DATA_VALUE
|
||||
|
||||
19990816-21:57 GMT+1 Victor Szel <info@szelvesz.hu>
|
||||
* source/rtl/console.c
|
||||
tests/working/colorind.prg
|
||||
@@ -101,43 +161,43 @@
|
||||
ClassCreate -> __clsNew
|
||||
ClassInstance -> __clsInst
|
||||
__InstSuper -> __clsInstSuper
|
||||
ClassAdd -> __clsAddMsg
|
||||
ClassDel -> __clsDelMsg
|
||||
ClassMod -> __clsModMsg
|
||||
ClassAdd -> __clsAddMsg
|
||||
ClassDel -> __clsDelMsg
|
||||
ClassMod -> __clsModMsg
|
||||
WClsDatas -> __cls_CntClsData
|
||||
__wDatas -> __cls_CntData
|
||||
__wDatas -> __cls_CntData
|
||||
__wDataDec -> __cls_DecData
|
||||
__wDataInc -> __cls_IncData
|
||||
|
||||
aOMethod -> __objGetMethodList
|
||||
aOData -> __objGetMsgList
|
||||
aOGet -> __objGetValueList
|
||||
aOSet -> __objSetValueList
|
||||
oClone -> __objClone
|
||||
aOMethod -> __objGetMethodList
|
||||
aOData -> __objGetMsgList
|
||||
aOGet -> __objGetValueList
|
||||
aOSet -> __objSetValueList
|
||||
oClone -> __objClone
|
||||
ClassName -> __objGetClsName
|
||||
oSend -> __objSendMsg
|
||||
oSend -> __objSendMsg
|
||||
isMessage -> __objHasMsg
|
||||
IsData -> __objHasData
|
||||
IsMethod -> __objHasMethod
|
||||
IsData -> __objHasData
|
||||
IsMethod -> __objHasMethod
|
||||
oAddMethod -> __objAddMethod
|
||||
oAddInline -> __objAddInLine
|
||||
oAddData -> __objAddData
|
||||
oAddData -> __objAddData
|
||||
oModMethod -> __objModMethod
|
||||
oModInline -> __objModInLine
|
||||
oDelMethod -> __objDelMethod
|
||||
oDelInline -> __objDelInLine
|
||||
oDelData -> __objDelData
|
||||
oDelData -> __objDelData
|
||||
|
||||
ClassH -> __msgClsH
|
||||
ClassH -> __msgClsH
|
||||
ClassName -> __msgClsName
|
||||
ClassSel -> __msgClsSel
|
||||
ClassSel -> __msgClsSel
|
||||
SelectSuper -> __msgSuper
|
||||
EvalInline -> __msgEvalInline
|
||||
GetClassData -> __msgGetClsData
|
||||
SetClassData -> __msgSetClsData
|
||||
GetData -> __msgGetData
|
||||
SetData -> __msgSetData
|
||||
Virtual -> __msgVirtual
|
||||
GetData -> __msgGetData
|
||||
SetData -> __msgSetData
|
||||
Virtual -> __msgVirtual
|
||||
|
||||
DictRealloc -> hb_clsDictRealloc
|
||||
ReleaseClass -> hb_clsRelease
|
||||
@@ -191,33 +251,33 @@
|
||||
19990815-18:45 GMT+2 Ryszard Glab <rglab@imid.med.pl>
|
||||
|
||||
*source/rtl/hvm.c
|
||||
* added 'hb_vm' prefix to alias/field related functions
|
||||
* some functions declared 'static'
|
||||
* added 'hb_vm' prefix to alias/field related functions
|
||||
* some functions declared 'static'
|
||||
|
||||
*include/ctoharb.h
|
||||
- removed declarations of internal virtual machine functions
|
||||
- removed declarations of internal virtual machine functions
|
||||
|
||||
*source/compiler/harbour.y
|
||||
* changed an error description for incorrect use of PARAMETERS
|
||||
statement
|
||||
* added type casting to compile under C++ compilers
|
||||
* static frame is correctly generated if static variable
|
||||
is used in a codeblock only
|
||||
* changed an error description for incorrect use of PARAMETERS
|
||||
statement
|
||||
* added type casting to compile under C++ compilers
|
||||
* static frame is correctly generated if static variable
|
||||
is used in a codeblock only
|
||||
|
||||
*include/extend.h
|
||||
- removed obsolete declaration of hb_memvarNewSymbol()
|
||||
- removed obsolete declaration of hb_memvarNewSymbol()
|
||||
|
||||
*include/hb_vmpub.h
|
||||
+ added definition of callback function HB_DYNS_FUNC used
|
||||
to enumerate dynamic symbols
|
||||
+ added definition of callback function HB_DYNS_FUNC used
|
||||
to enumerate dynamic symbols
|
||||
|
||||
*source/vm/dynsym.c
|
||||
+ new function hb_dynsymEval() that enumerates dynamic symbols
|
||||
by calling specified HB_DYNS_FUNC * function
|
||||
+ new function hb_dynsymEval() that enumerates dynamic symbols
|
||||
by calling specified HB_DYNS_FUNC * function
|
||||
|
||||
*source/rtl/memvars.c
|
||||
+ added __MVCLEAR function to release all PRIVATE and PUBLIC
|
||||
variables (this function is used in CLEAR MEMORY statement)
|
||||
+ added __MVCLEAR function to release all PRIVATE and PUBLIC
|
||||
variables (this function is used in CLEAR MEMORY statement)
|
||||
|
||||
19990815-19:59 GMT+3 Alexander Kresin
|
||||
* source/rtl/tbrowse.prg
|
||||
|
||||
@@ -1296,6 +1296,62 @@ start from 3000
|
||||
* $END$
|
||||
*/
|
||||
|
||||
/* $DOC$
|
||||
* $SUBCODE$
|
||||
* BASE/3101
|
||||
* $CATEGORY$
|
||||
* arguments
|
||||
* $ONELINER$
|
||||
* Invalid argument passed to an object/class function
|
||||
* $DESCRIPTION$
|
||||
* One passed argument is not of the required type.
|
||||
* $FUNCTION$
|
||||
* __OBJ*()
|
||||
* $STATUS$
|
||||
* Harbour specific
|
||||
* $SEEALSO$
|
||||
*
|
||||
* $END$
|
||||
*/
|
||||
|
||||
/* $DOC$
|
||||
* $SUBCODE$
|
||||
* BASE/3102
|
||||
* $CATEGORY$
|
||||
* arguments
|
||||
* $ONELINER$
|
||||
* A symbol should be modified or deleted from a class, but the symbol
|
||||
* doesn't exist.
|
||||
* $DESCRIPTION$
|
||||
* A symbol should be modified or deleted from a class, but the symbol
|
||||
* doesn't exist.
|
||||
* $FUNCTION$
|
||||
* __OBJ*()
|
||||
* $STATUS$
|
||||
* Harbour specific
|
||||
* $SEEALSO$
|
||||
*
|
||||
* $END$
|
||||
*/
|
||||
|
||||
/* $DOC$
|
||||
* $SUBCODE$
|
||||
* BASE/3103
|
||||
* $CATEGORY$
|
||||
* arguments
|
||||
* $ONELINER$
|
||||
* A symbol should be added to a class, but the symbol already exists.
|
||||
* $DESCRIPTION$
|
||||
* A symbol should be added to a class, but the symbol already exists.
|
||||
* $FUNCTION$
|
||||
* __OBJ*()
|
||||
* $STATUS$
|
||||
* Harbour specific
|
||||
* $SEEALSO$
|
||||
*
|
||||
* $END$
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
/* $DOC$
|
||||
|
||||
@@ -60,4 +60,8 @@
|
||||
#define EG_NOTARRAY 49 /* Harbour special */
|
||||
#define EG_CONDITION 50 /* Harbour special */
|
||||
|
||||
/* Internal errors */
|
||||
#define EI_NOERRORBLOCK 1
|
||||
#define EI_RECOVERY 2
|
||||
|
||||
#endif /* _ERROR_CH */
|
||||
|
||||
@@ -97,15 +97,12 @@ extern void hb_errRelease ( PHB_ITEM pError );
|
||||
|
||||
/* Error launchers */
|
||||
|
||||
extern void hb_errorInternal ( ULONG ulIntCode, char * szText, char * szModul, WORD wLine, char * szPar1, char * szPar2, char * szPar3 );
|
||||
extern void hb_errInternal ( ULONG ulIntCode, char * szText, char * szPar1, char * szPar2 );
|
||||
|
||||
extern void hb_errorRT_BASE ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation );
|
||||
extern WORD hb_errorRT_BASE_Ext1 ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiOsCode, USHORT uiFlags );
|
||||
extern void hb_errorRT_TERMINAL ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation );
|
||||
extern void hb_errorRT_DBCMD ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation );
|
||||
extern void hb_errorRT_TOOLS ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation );
|
||||
|
||||
extern char * hb_errorNatDescription ( ULONG ulGenCode ); /* Reads error description in national language */
|
||||
extern char * hb_errorNatInternal ( ULONG ulIntCode ); /* Reads internal error description in national language */
|
||||
extern void hb_errRT_BASE ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation );
|
||||
extern WORD hb_errRT_BASE_Ext1 ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiOsCode, USHORT uiFlags );
|
||||
extern void hb_errRT_TERMINAL ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation );
|
||||
extern void hb_errRT_DBCMD ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation );
|
||||
extern void hb_errRT_TOOLS ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation );
|
||||
|
||||
#endif /* HB_ERRORAPI_H_ */
|
||||
|
||||
@@ -33,8 +33,8 @@
|
||||
their web site at http://www.gnu.org/).
|
||||
*/
|
||||
|
||||
#ifndef HB_ERROR_H_
|
||||
#define HB_ERROR_H_
|
||||
#ifndef HB_ERRORS_H_
|
||||
#define HB_ERRORS_H_
|
||||
|
||||
/*
|
||||
* Errors generated by Harbour compiler
|
||||
@@ -91,7 +91,9 @@
|
||||
#define ERR_WRONG_DIRECTIVE 9
|
||||
#define ERR_EXPLICIT 10
|
||||
|
||||
extern void GenError( char* _szErrors[], char, int, char*, char * ); /* generic parsing error management function */
|
||||
extern void GenWarning( int, char*, char * ); /* generic parsing warning management function */
|
||||
#define WARN_NONDIRECTIVE 1
|
||||
|
||||
#endif /* HB_ERROR_H_ */
|
||||
extern void GenError( char* _szErrors[], char, int, char*, char * ); /* generic parsing error management function */
|
||||
extern void GenWarning( char* _szWarnings[], char, int, char*, char * ); /* generic parsing warning management function */
|
||||
|
||||
#endif /* HB_ERRORS_H_ */
|
||||
|
||||
@@ -15,6 +15,6 @@
|
||||
#define MET_SUPER 5
|
||||
|
||||
#define DATA_SYMBOL 1
|
||||
#define DATA_VAL 2
|
||||
#define DATA_VALUE 2
|
||||
|
||||
#endif /* _HBOO_CH */
|
||||
|
||||
@@ -70,6 +70,9 @@ extern int lInclude;
|
||||
extern int *aCondCompile, nCondCompile;
|
||||
extern int nline;
|
||||
|
||||
extern char * _szPErrors[];
|
||||
extern char * _szPWarnings[];
|
||||
|
||||
/* Needed support modules, but not contained in HBPP.C */
|
||||
|
||||
extern FILENAME *SplitFilename( char * ); /* splits filename into a path, a name and an extension */
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
Descend__InitSymbols();
|
||||
Dir__InitSymbols();
|
||||
Environ__InitSymbols();
|
||||
Errorapi__InitSymbols();
|
||||
Files__InitSymbols();
|
||||
HardCR__InitSymbols();
|
||||
Math__InitSymbols();
|
||||
|
||||
@@ -16,6 +16,7 @@ extern void Dates2__InitSymbols( void );
|
||||
extern void Descend__InitSymbols( void );
|
||||
extern void Dir__InitSymbols( void );
|
||||
extern void Environ__InitSymbols( void );
|
||||
extern void Errorapi__InitSymbols( void );
|
||||
extern void Files__InitSymbols( void );
|
||||
extern void HardCR__InitSymbols( void );
|
||||
extern void Math__InitSymbols( void );
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -137,6 +137,12 @@ char * _szPErrors[] = { "Can\'t open include file \"%s\"",
|
||||
"#error: \'%s\'"
|
||||
};
|
||||
|
||||
/* Table with parse warnings */
|
||||
char * _szPWarnings[] =
|
||||
{
|
||||
"Non directive in include file"
|
||||
};
|
||||
|
||||
int ParseDirective( char* sLine )
|
||||
{
|
||||
char sDirective[MAX_NAME];
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include "hbpp.h"
|
||||
#include "hberrors.h"
|
||||
|
||||
void Hbpp_init ( void );
|
||||
int PreProcess( FILE*, FILE*, char *);
|
||||
@@ -158,7 +159,7 @@ int Hp_Parse( FILE* handl_i, FILE* handl_o )
|
||||
*sLine = '\0';
|
||||
}
|
||||
else
|
||||
printf ( "\nWarning, non directive in include file\n");
|
||||
GenWarning( _szPWarnings, 'W', WARN_NONDIRECTIVE, NULL, NULL );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,9 +41,11 @@
|
||||
#include "extend.h"
|
||||
#include "itemapi.h"
|
||||
#include "init.h"
|
||||
#include "hberrors.h"
|
||||
|
||||
PATHNAMES *_pIncludePath = NULL;
|
||||
FILENAME *_pFileName = NULL;
|
||||
BOOL _bWarnings = FALSE;
|
||||
|
||||
HARBOUR HB_PREPROCESS(void);
|
||||
|
||||
@@ -98,6 +100,18 @@ void GenError( char* _szErrors[], char cPrefix, int iError, char * szError1, cha
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
void GenWarning( char* _szWarnings[], char cPrefix, int iWarning, char * szWarning1, char * szWarning2)
|
||||
{
|
||||
if( _bWarnings && iWarning < WARN_ASSIGN_SUSPECT ) /* TODO: add switch to set level */
|
||||
{
|
||||
char * szLine = ( char * ) OurMalloc( 160 ); /*2 lines of text */
|
||||
/* printf( "\r%s(%i) ", files.pLast->szFileName, iLine ); */
|
||||
printf( "Warning %c%i ", cPrefix, iWarning );
|
||||
sprintf( szLine, _szWarnings[ iWarning - 1 ], szWarning1, szWarning2 );
|
||||
printf( "%s\n", szLine );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Split given filename into path, name and extension
|
||||
*/
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include "hbpp.h"
|
||||
#include "hberrors.h"
|
||||
|
||||
extern int pp_strAt(char *, int, char*, int);
|
||||
extern void pp_Stuff (char*, char*, int, int, int);
|
||||
@@ -54,17 +55,20 @@ char sLine[STR_SIZE], sOutLine[STR_SIZE];
|
||||
|
||||
PATHNAMES *_pIncludePath = NULL;
|
||||
FILENAME *_pFileName = NULL;
|
||||
BOOL _bWarnings = FALSE;
|
||||
|
||||
int main (int argc,char* argv[])
|
||||
{
|
||||
FILE *handl_i,*handl_o;
|
||||
char szFileName[ _POSIX_PATH_MAX ];
|
||||
char * szDefText;
|
||||
int iArg = 1, i, lOutTable = 0, lOutNew = 0;
|
||||
int iArg = 1, i;
|
||||
BOOL bOutTable = FALSE;
|
||||
BOOL bOutNew = FALSE;
|
||||
DEFINES *stdef = topDefine;
|
||||
COMMANDS *stcmd = topCommand;
|
||||
|
||||
printf( "\nHarbour preprocessor" );
|
||||
printf( "Harbour preprocessor\n" );
|
||||
while( iArg < argc )
|
||||
{
|
||||
if( IS_OPT_SEP(argv[ iArg ][ 0 ]))
|
||||
@@ -94,11 +98,15 @@ int main (int argc,char* argv[])
|
||||
break;
|
||||
case 'o':
|
||||
case 'O':
|
||||
lOutTable = 1;
|
||||
bOutTable = TRUE;
|
||||
break;
|
||||
case 'n':
|
||||
case 'N':
|
||||
lOutNew = 1;
|
||||
bOutNew = TRUE;
|
||||
break;
|
||||
case 'w':
|
||||
case 'W':
|
||||
_bWarnings = TRUE;
|
||||
break;
|
||||
default:
|
||||
printf( "\nInvalid command line option: %s\n", &argv[ iArg ][ 1 ] );
|
||||
@@ -115,14 +123,19 @@ int main (int argc,char* argv[])
|
||||
|
||||
if ((handl_i = fopen(szFileName, "r")) == NULL)
|
||||
{ printf("\nCan't open %s\n",szFileName); return 1; }
|
||||
printf( "\n\nParsing file %s\n", szFileName );
|
||||
printf( "\nParsing file %s\n", szFileName );
|
||||
}
|
||||
else
|
||||
{
|
||||
printf( "\nSyntax: Hbpp.exe <filename> [options]" );
|
||||
printf( "\nOptions:" );
|
||||
printf( "\n\t/d<id>[=<val>]\t#define <id>" );
|
||||
if( lOutTable )
|
||||
printf( "Syntax: hbpp <file.prg> [options]\n"
|
||||
"\nOptions: \n"
|
||||
"\t/d<id>[=<val>]\t#define <id>\n"
|
||||
"\t/i<path>\tadd #include file search path\n"
|
||||
"\t/o\t\tcreates hbpp.out with all tables\n"
|
||||
"\t/n\t\twith those only, which defined in your file\n"
|
||||
"\t/w\t\tenable warnings\n");
|
||||
|
||||
if( bOutTable )
|
||||
OutTable( NULL, NULL );
|
||||
return 1;
|
||||
}
|
||||
@@ -157,9 +170,9 @@ int main (int argc,char* argv[])
|
||||
Hp_Parse(handl_i,handl_o );
|
||||
fclose(handl_i); fclose(handl_o);
|
||||
|
||||
if( lOutTable )
|
||||
if( bOutTable )
|
||||
OutTable( NULL, NULL );
|
||||
else if( lOutNew )
|
||||
else if( bOutNew )
|
||||
OutTable( stdef, stcmd );
|
||||
|
||||
printf( "\nOk" );
|
||||
@@ -555,3 +568,15 @@ void GenError( char* _szErrors[], char cPrefix, int iError, char * szError1, cha
|
||||
printf( "%s\n\n", szLine );
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
void GenWarning( char* _szWarnings[], char cPrefix, int iWarning, char * szWarning1, char * szWarning2)
|
||||
{
|
||||
if( _bWarnings && iWarning < WARN_ASSIGN_SUSPECT ) /* TODO: add switch to set level */
|
||||
{
|
||||
char * szLine = ( char * ) OurMalloc( 160 ); /*2 lines of text */
|
||||
/* printf( "\r%s(%i) ", files.pLast->szFileName, iLine ); */
|
||||
printf( "Warning %c%i ", cPrefix, iWarning );
|
||||
sprintf( szLine, _szWarnings[ iWarning - 1 ], szWarning1, szWarning2 );
|
||||
printf( "%s\n", szLine );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ typedef struct _AREANODE
|
||||
|
||||
typedef AREANODE * LPAREANODE;
|
||||
|
||||
/* TODO: must be changed to a hb_errorRT... */
|
||||
/* TODO: must be changed to a hb_errRT... */
|
||||
static void MyError( char * szError, char * szParam )
|
||||
{
|
||||
printf( "\n%s %s\n", szError, szParam );
|
||||
|
||||
@@ -87,12 +87,12 @@ char * hb_arrayGetDate( PHB_ITEM pArray, ULONG ulIndex, char * szDate )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
|
||||
return szDate;
|
||||
@@ -114,12 +114,12 @@ BOOL hb_arrayGetBool( PHB_ITEM pArray, ULONG ulIndex )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -146,12 +146,12 @@ double hb_arrayGetDouble( PHB_ITEM pArray, ULONG ulIndex )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -198,12 +198,12 @@ void hb_arrayGet( PHB_ITEM pArray, ULONG ulIndex, PHB_ITEM pItem )
|
||||
hb_itemCopy( pItem, pArray->item.asArray.value->pItems + ( ulIndex - 1 ) );
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -222,12 +222,12 @@ char *hb_arrayGetString( PHB_ITEM pArray, ULONG ulIndex )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
return "";
|
||||
}
|
||||
@@ -247,12 +247,12 @@ ULONG hb_arrayGetStringLen( PHB_ITEM pArray, ULONG ulIndex )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -268,12 +268,12 @@ int hb_arrayGetType( PHB_ITEM pArray, ULONG ulIndex )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_BOUND, 1132, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -293,7 +293,7 @@ ULONG hb_arrayLen( PHB_ITEM pArray )
|
||||
return pArray->item.asArray.value->ulLen;
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_ARRACCESS));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -306,12 +306,12 @@ void hb_arraySet( PHB_ITEM pArray, ULONG ulIndex, PHB_ITEM pItem )
|
||||
hb_itemCopy( pArray->item.asArray.value->pItems + ( ulIndex - 1 ), pItem );
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_BOUND, 1133, NULL, hb_langDGetErrorDesc(EG_ARRASSIGN));
|
||||
hb_errRT_BASE(EG_BOUND, 1133, NULL, hb_langDGetErrorDesc(EG_ARRASSIGN));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1069, NULL, hb_langDGetErrorDesc(EG_ARRASSIGN));
|
||||
hb_errRT_BASE(EG_ARG, 1069, NULL, hb_langDGetErrorDesc(EG_ARRASSIGN));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -374,7 +374,7 @@ void hb_arrayFill( PHB_ITEM pArray, PHB_ITEM pValue, ULONG ulStart, ULONG ulCoun
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -398,7 +398,7 @@ void hb_arrayDel( PHB_ITEM pArray, ULONG ulIndex )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -422,7 +422,7 @@ void hb_arrayIns( PHB_ITEM pArray, ULONG ulIndex )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -496,7 +496,7 @@ int hb_arrayScan( PHB_ITEM pArray, PHB_ITEM pValue, ULONG ulStart, ULONG ulCount
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -532,7 +532,7 @@ void hb_arrayEval( PHB_ITEM pArray, PHB_ITEM bBlock, ULONG ulStart, ULONG ulCoun
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 2017, NULL, "AEVAL");
|
||||
hb_errRT_BASE(EG_ARG, 2017, NULL, "AEVAL");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -558,7 +558,7 @@ void hb_arrayRelease( PHB_ITEM pArray )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -596,7 +596,7 @@ void hb_arrayCopy( PHB_ITEM pSrcArray, PHB_ITEM pDstArray, ULONG ulStart,
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -633,7 +633,7 @@ PHB_ITEM hb_arrayClone( PHB_ITEM pSrcArray )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
hb_errRT_BASE(EG_ARG, 1068, NULL, hb_langDGetErrorDesc(EG_NOTARRAY));
|
||||
}
|
||||
return pDstArray;
|
||||
}
|
||||
@@ -663,7 +663,7 @@ HARBOUR HB_ARRAY( void )
|
||||
|
||||
if ( hb_parnl( tmp ) < 0 )
|
||||
{
|
||||
hb_errorRT_BASE( EG_BOUND, 1131, NULL, hb_langDGetErrorDesc( EG_ARRDIMENSION ) );
|
||||
hb_errRT_BASE( EG_BOUND, 1131, NULL, hb_langDGetErrorDesc( EG_ARRDIMENSION ) );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -690,11 +690,11 @@ HARBOUR HB_AADD( void )
|
||||
hb_itemCopy( &stack.Return, pValue );
|
||||
}
|
||||
else
|
||||
hb_errorRT_BASE( EG_ARG, 1123, NULL, "AADD" );
|
||||
hb_errRT_BASE( EG_ARG, 1123, NULL, "AADD" );
|
||||
}
|
||||
else
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE( EG_ARGCOUNT, 3000, NULL, "AADD" );
|
||||
hb_errRT_BASE( EG_ARGCOUNT, 3000, NULL, "AADD" );
|
||||
}
|
||||
|
||||
HARBOUR HB_ASIZE( void )
|
||||
|
||||
@@ -269,8 +269,7 @@ HARBOUR HB___CLSADDMSG(void)
|
||||
break;
|
||||
|
||||
default:
|
||||
printf( "Invalid method type from __clsAddMsg\n" );
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "Invalid method type from __clsAddMsg", NULL, NULL );
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -485,7 +484,7 @@ HARBOUR HB___CLSMODMSG(void)
|
||||
else if( ( pFunc == __msgSetData ) || ( pFunc == __msgGetData ) )
|
||||
{ /* Not allowed for DATA */
|
||||
/*hb_errPutDescription(pError, "__clsModMsg: Cannot modify a DATA item");*/
|
||||
hb_errorRT_BASE(EG_ARG, 3004, NULL, "__CLSMODMSG");
|
||||
hb_errRT_BASE(EG_ARG, 3004, NULL, "__CLSMODMSG");
|
||||
}
|
||||
else /* Modify METHOD */
|
||||
pClass->pMethods[ wAt ].pFunction = ( PHB_FUNC ) hb_parnl( 3 );
|
||||
@@ -598,8 +597,7 @@ static void hb_clsDictRealloc( PCLASS pClass )
|
||||
/* TODO: Implement it for very large classes */
|
||||
if( pClass )
|
||||
{
|
||||
printf( "classes.c hb_clsDictRealloc() not implemented yet\n" );
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "classes.c hb_clsDictRealloc() not implemented yet", NULL, NULL );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -811,7 +809,7 @@ HARBOUR HB___OBJHASMSG(void)
|
||||
hb_retl( hb_objHasMsg( pObject, pString->item.asString.value ) != 0 );
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 3000, NULL, "__OBJHASMSG");
|
||||
hb_errRT_BASE(EG_ARG, 3000, NULL, "__OBJHASMSG");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -834,7 +832,7 @@ HARBOUR HB___OBJCLONE( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 3001, NULL, "__OBJCLONE");
|
||||
hb_errRT_BASE(EG_ARG, 3001, NULL, "__OBJCLONE");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -861,7 +859,7 @@ HARBOUR HB___OBJSENDMSG(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 3000, NULL, "__OBJSENDMSG");
|
||||
hb_errRT_BASE(EG_ARG, 3000, NULL, "__OBJSENDMSG");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1004,7 +1002,7 @@ HARBOUR HB___CLSINSTSUPER( void )
|
||||
if( !IS_OBJECT( &stack.Return ) )
|
||||
{
|
||||
/* hb_errPutDescription(pError, "INSTSUPER : Super class does not return an object"); */
|
||||
hb_errorRT_BASE(EG_ARG, 3002, NULL, "__CLSINSTSUPER");
|
||||
hb_errRT_BASE(EG_ARG, 3002, NULL, "__CLSINSTSUPER");
|
||||
}
|
||||
|
||||
for( w = 0; !bFound && w < wClasses; w++ )
|
||||
@@ -1019,7 +1017,7 @@ HARBOUR HB___CLSINSTSUPER( void )
|
||||
else
|
||||
{
|
||||
/* hb_errPutDescription(pError, "INSTSUPER : Cannot find super class"); */
|
||||
hb_errorRT_BASE(EG_ARG, 3003, NULL, "__CLSINSTSUPER");
|
||||
hb_errRT_BASE(EG_ARG, 3003, NULL, "__CLSINSTSUPER");
|
||||
}
|
||||
}
|
||||
if( !bFound )
|
||||
|
||||
@@ -65,7 +65,7 @@ HARBOUR HB___COPYFILE( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 2010, NULL, "__COPYFILE");
|
||||
hb_errRT_BASE(EG_ARG, 2010, NULL, "__COPYFILE");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ static BOOL hb_fsCopy(char* szSource, char* szDest, ULONG* ulWrittenTotal)
|
||||
|
||||
while ((fhndSource = hb_fsOpen(( BYTE * ) szSource, FO_READ)) == FS_ERROR)
|
||||
{
|
||||
if (hb_errorRT_BASE_Ext1(EG_OPEN, 2012, NULL, szSource, hb_fsError(), EF_CANDEFAULT | EF_CANRETRY ) == E_DEFAULT)
|
||||
if (hb_errRT_BASE_Ext1(EG_OPEN, 2012, NULL, szSource, hb_fsError(), EF_CANDEFAULT | EF_CANRETRY ) == E_DEFAULT)
|
||||
{
|
||||
*ulWrittenTotal = (ULONG)-1L;
|
||||
break;
|
||||
@@ -90,7 +90,7 @@ static BOOL hb_fsCopy(char* szSource, char* szDest, ULONG* ulWrittenTotal)
|
||||
{
|
||||
while ((fhndDest = hb_fsCreate(( BYTE * ) szDest, FC_NORMAL)) == FS_ERROR)
|
||||
{
|
||||
if (hb_errorRT_BASE_Ext1(EG_CREATE, 2012, NULL, szDest, hb_fsError(), EF_CANDEFAULT | EF_CANRETRY ) == E_DEFAULT)
|
||||
if (hb_errRT_BASE_Ext1(EG_CREATE, 2012, NULL, szDest, hb_fsError(), EF_CANDEFAULT | EF_CANRETRY ) == E_DEFAULT)
|
||||
{
|
||||
*ulWrittenTotal = (ULONG)-2L;
|
||||
break;
|
||||
@@ -118,7 +118,7 @@ static BOOL hb_fsCopy(char* szSource, char* szDest, ULONG* ulWrittenTotal)
|
||||
{
|
||||
while ((usWritten = hb_fsWrite(fhndDest, buffer, usRead)) != usRead)
|
||||
{
|
||||
if (hb_errorRT_BASE_Ext1(EG_WRITE, 2012, NULL, szDest, hb_fsError(), EF_CANDEFAULT | EF_CANRETRY ) == E_DEFAULT)
|
||||
if (hb_errRT_BASE_Ext1(EG_WRITE, 2012, NULL, szDest, hb_fsError(), EF_CANDEFAULT | EF_CANRETRY ) == E_DEFAULT)
|
||||
{
|
||||
bRetVal = FALSE;
|
||||
break;
|
||||
|
||||
@@ -451,13 +451,13 @@ HARBOUR HB_DTOS( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1120, NULL, "DTOS");
|
||||
hb_errRT_BASE(EG_ARG, 1120, NULL, "DTOS");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "DTOS");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "DTOS");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -491,7 +491,7 @@ HARBOUR HB_DAY( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1114, NULL, "DAY");
|
||||
hb_errRT_BASE(EG_ARG, 1114, NULL, "DAY");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -519,7 +519,7 @@ HARBOUR HB_MONTH( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1113, NULL, "MONTH");
|
||||
hb_errRT_BASE(EG_ARG, 1113, NULL, "MONTH");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -547,7 +547,7 @@ HARBOUR HB_YEAR( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1112, NULL, "YEAR");
|
||||
hb_errRT_BASE(EG_ARG, 1112, NULL, "YEAR");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -566,7 +566,7 @@ HARBOUR HB_TIME( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "TIME");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "TIME");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -586,7 +586,7 @@ HARBOUR HB_DATE( void )
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "DATE");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "DATE");
|
||||
}
|
||||
}
|
||||
long hb_dow( long d, long m, long y )
|
||||
@@ -635,7 +635,7 @@ HARBOUR HB_DOW( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1115, NULL, "DOW");
|
||||
hb_errRT_BASE(EG_ARG, 1115, NULL, "DOW");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -653,13 +653,13 @@ HARBOUR HB_CMONTH( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1116, NULL, "CMONTH");
|
||||
hb_errRT_BASE(EG_ARG, 1116, NULL, "CMONTH");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "CMONTH");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "CMONTH");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -677,13 +677,13 @@ HARBOUR HB_CDOW( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1117, NULL, "CDOW");
|
||||
hb_errRT_BASE(EG_ARG, 1117, NULL, "CDOW");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "CDOW");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "CDOW");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -694,6 +694,6 @@ HARBOUR HB_SECONDS( void )
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "SECONDS");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "SECONDS");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ HARBOUR HB_DO( void )
|
||||
hb_vmDo( hb_pcount() - 1 );
|
||||
}
|
||||
else
|
||||
hb_errorRT_BASE( EG_NOFUNC, 1001, NULL, pItem->item.asString.value );
|
||||
hb_errRT_BASE( EG_NOFUNC, 1001, NULL, pItem->item.asString.value );
|
||||
}
|
||||
else if( IS_BLOCK(pItem) )
|
||||
{
|
||||
@@ -125,5 +125,5 @@ HARBOUR HB_DO( void )
|
||||
hb_vmDo( hb_pcount() - 1 );
|
||||
}
|
||||
else
|
||||
hb_errorRT_BASE( EG_ARG, 3012, NULL, "DO" );
|
||||
hb_errRT_BASE( EG_ARG, 3012, NULL, "DO" );
|
||||
}
|
||||
|
||||
@@ -27,6 +27,16 @@
|
||||
#include "itemapi.h"
|
||||
#include "errorapi.h"
|
||||
#include "langapi.h"
|
||||
#include "init.h"
|
||||
|
||||
HARBOUR HB___ERRRT_BASE(void);
|
||||
|
||||
HB_INIT_SYMBOLS_BEGIN( Errorapi__InitSymbols )
|
||||
{ "__ERRRT_BASE" , FS_PUBLIC, HB___ERRRT_BASE , 0 }
|
||||
HB_INIT_SYMBOLS_END( Errorapi__InitSymbols )
|
||||
#if ! defined(__GNUC__)
|
||||
#pragma startup Errorapi__InitSymbols
|
||||
#endif
|
||||
|
||||
PHB_ITEM hb_errNew( void )
|
||||
{
|
||||
@@ -54,9 +64,7 @@ WORD hb_errLaunch( PHB_ITEM pError )
|
||||
|
||||
if ( ! IS_BLOCK( &errorBlock ) )
|
||||
{
|
||||
/* TODO: Change to internal error: */
|
||||
printf( "No ERRORBLOCK() for error at: ???? (0)" );
|
||||
exit( 1 ); /* TODO: quit correctly */
|
||||
hb_errInternal( 9999, "No ERRORBLOCK() for error", NULL, NULL );
|
||||
}
|
||||
|
||||
/* NOTE: This must be called before the hb_vm*() calls */
|
||||
@@ -112,9 +120,7 @@ WORD hb_errLaunch( PHB_ITEM pError )
|
||||
|
||||
if ( bFailure )
|
||||
{
|
||||
/* TODO: Change to internal error: */
|
||||
printf("Error recovery failure, ???? (0)");
|
||||
exit( 1 ); /* TODO: quit correctly */
|
||||
hb_errInternal( 9999, "Error recovery failure", NULL, NULL );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -357,7 +363,7 @@ PHB_ITEM hb_errPutFlags( PHB_ITEM pError, USHORT uiFlags )
|
||||
|
||||
/* Wrappers for hb_errLaunch() */
|
||||
|
||||
static WORD hb_errorRT_New
|
||||
static WORD hb_errRT_New
|
||||
(
|
||||
USHORT uiSeverity,
|
||||
char * szSubSystem,
|
||||
@@ -388,44 +394,50 @@ static WORD hb_errorRT_New
|
||||
return wRetVal;
|
||||
}
|
||||
|
||||
void hb_errorRT_BASE( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation )
|
||||
HARBOUR HB___ERRRT_BASE( void )
|
||||
{
|
||||
hb_errorRT_New( ES_ERROR, HB_ERR_SS_BASE, ulGenCode, ulSubCode, szDescription, szOperation, 0, EF_NONE );
|
||||
hb_errRT_BASE( (ULONG) hb_parnl( 1 ),
|
||||
(ULONG) hb_parnl( 2 ),
|
||||
ISCHAR( 3 ) ? hb_parc( 3 ) : NULL,
|
||||
hb_parc( 4 ) );
|
||||
}
|
||||
|
||||
WORD hb_errorRT_BASE_Ext1( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiOsCode, USHORT uiFlags )
|
||||
void hb_errRT_BASE( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation )
|
||||
{
|
||||
return hb_errorRT_New( ES_ERROR, HB_ERR_SS_BASE, ulGenCode, ulSubCode, szDescription, szOperation, uiOsCode, uiFlags );
|
||||
hb_errRT_New( ES_ERROR, HB_ERR_SS_BASE, ulGenCode, ulSubCode, szDescription, szOperation, 0, EF_NONE );
|
||||
}
|
||||
|
||||
void hb_errorRT_TERMINAL( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation )
|
||||
WORD hb_errRT_BASE_Ext1( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiOsCode, USHORT uiFlags )
|
||||
{
|
||||
hb_errorRT_New( ES_ERROR, HB_ERR_SS_TERMINAL, ulGenCode, ulSubCode, szDescription, szOperation, 0, EF_NONE );
|
||||
return hb_errRT_New( ES_ERROR, HB_ERR_SS_BASE, ulGenCode, ulSubCode, szDescription, szOperation, uiOsCode, uiFlags );
|
||||
}
|
||||
|
||||
void hb_errorRT_DBCMD( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation )
|
||||
void hb_errRT_TERMINAL( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation )
|
||||
{
|
||||
hb_errorRT_New( ES_ERROR, HB_ERR_SS_DBCMD, ulGenCode, ulSubCode, szDescription, szOperation, 0, EF_NONE );
|
||||
hb_errRT_New( ES_ERROR, HB_ERR_SS_TERMINAL, ulGenCode, ulSubCode, szDescription, szOperation, 0, EF_NONE );
|
||||
}
|
||||
|
||||
void hb_errorRT_TOOLS( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation )
|
||||
void hb_errRT_DBCMD( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation )
|
||||
{
|
||||
hb_errorRT_New( ES_ERROR, HB_ERR_SS_BASE, ulGenCode, ulSubCode, szDescription, szOperation, 0, EF_NONE );
|
||||
hb_errRT_New( ES_ERROR, HB_ERR_SS_DBCMD, ulGenCode, ulSubCode, szDescription, szOperation, 0, EF_NONE );
|
||||
}
|
||||
|
||||
/* NOTES: Use as minimal calls from here, as possible. */
|
||||
/* Don't allocate memory from this function. */
|
||||
void hb_errRT_TOOLS( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation )
|
||||
{
|
||||
hb_errRT_New( ES_ERROR, HB_ERR_SS_BASE, ulGenCode, ulSubCode, szDescription, szOperation, 0, EF_NONE );
|
||||
}
|
||||
|
||||
void hb_errorInternal ( ULONG ulIntCode, char * szText, char * szModule, WORD wLine, char * szPar1, char * szPar2, char * szPar3 )
|
||||
/* NOTE: Use as minimal calls from here, as possible. */
|
||||
/* Don't allocate memory from this function. */
|
||||
|
||||
void hb_errInternal ( ULONG ulIntCode, char * szText, char * szPar1, char * szPar2 )
|
||||
{
|
||||
char szError [ 256 ];
|
||||
|
||||
if ( szModule )
|
||||
printf( "\n%s (%i) ", szModule, wLine );
|
||||
sprintf( szError, szText ? szText : hb_langDGetErrorIntr( ulIntCode ), szPar1, szPar2 );
|
||||
printf( "\nInternal error %lu: %s\n", ulIntCode, szError );
|
||||
|
||||
sprintf( szError, szText ? szText : hb_langDGetErrorIntr( ulIntCode ), szPar1, szPar2, szPar3 );
|
||||
printf( "Internal error %lu: %s\n\n", ulIntCode, szError );
|
||||
hb_callStackShow();
|
||||
|
||||
exit( 1 );
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
|
||||
@@ -152,3 +152,4 @@ STATIC FUNCTION ErrorMessage(oError)
|
||||
RETURN cMessage
|
||||
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
|
||||
@@ -434,7 +434,7 @@ BOOL hb_fsLock ( FHANDLE handle, ULONG start,
|
||||
position = hb_fsSeek( handle, start, 0 );
|
||||
result = locking( handle, mode?_LK_UNLCK:_LK_LOCK,length );
|
||||
hb_fsSeek( handle, position, 0 );
|
||||
#else
|
||||
#else
|
||||
result = 1;
|
||||
last_error = FS_ERROR;
|
||||
#endif
|
||||
@@ -602,7 +602,7 @@ HARBOUR HB_FOPEN( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 3006, NULL, "FOPEN");
|
||||
hb_errRT_BASE(EG_ARG, 3006, NULL, "FOPEN");
|
||||
}
|
||||
|
||||
hb_retni(file_handle);
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
#include "extend.h"
|
||||
#include "errorapi.h"
|
||||
|
||||
ULONG ulMemoryBlocks = 0;
|
||||
ULONG ulMemoryMaxBlocks = 0;
|
||||
@@ -58,8 +59,7 @@ void * hb_xgrab( ULONG ulSize ) /* allocates fixed memory, exits on fail
|
||||
|
||||
if( ! pMem )
|
||||
{
|
||||
printf( "\n_xgrab error: can't allocate memory!\n" );
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "hb_xgrab can't allocate memory", NULL, NULL );
|
||||
}
|
||||
|
||||
* ( ( ULONG * ) pMem ) = ulSize; /* we store the block size into it */
|
||||
@@ -79,8 +79,7 @@ void * hb_xrealloc( void * pMem, ULONG ulSize ) /* reallocates memory */
|
||||
|
||||
if( ! pResult )
|
||||
{
|
||||
printf( "\n_xrealloc error: can't reallocate memory!\n" );
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "hb_xrealloc can't reallocate memory", NULL, NULL );
|
||||
}
|
||||
|
||||
* ( ( ULONG * ) pResult ) = ulSize; /* we store the block size into it */
|
||||
@@ -102,7 +101,7 @@ void hb_xfree( void * pMem ) /* frees fixed memory */
|
||||
if( pMem )
|
||||
free( ( char * ) pMem - sizeof( ULONG ) );
|
||||
else
|
||||
printf( "\nCalling hb_xfree() with a null pointer!\n" );
|
||||
hb_errInternal( 9999, "hb_xfree called with a null pointer", NULL, NULL );
|
||||
|
||||
ulMemoryConsumed -= ulMemSize;
|
||||
ulMemoryBlocks--;
|
||||
|
||||
@@ -221,7 +221,7 @@ void hb_inkeyPoll( void ) /* Poll the console keyboard to stuff the Harbour
|
||||
{
|
||||
int ch = 0;
|
||||
#if defined(OS_DOS_COMPATIBLE) || defined(HARBOUR_GCC_OS2) || defined(__IBMCPP__) || defined(_Windows)
|
||||
/* The reason for including _Windows here is that kbhit() and getch() appear
|
||||
/* The reason for including _Windows here is that kbhit() and getch() appear
|
||||
to work properly in console mode. For true Windows mode, changes are needed. */
|
||||
#if defined(HARBOUR_GCC_OS2)
|
||||
/* Read from the keyboard with no echo, no wait, and no SIGSEV on Ctrl-C */
|
||||
@@ -524,7 +524,7 @@ HARBOUR HB_INKEY( void )
|
||||
if( wait && forever && ( event_mask & ( INKEY_ALL + INKEY_EXTENDED ) ) == 0 )
|
||||
{
|
||||
/* There is no point in waiting forever for no input events! */
|
||||
hb_errorRT_BASE(EG_ARG, 3007, NULL, "INKEY");
|
||||
hb_errRT_BASE(EG_ARG, 3007, NULL, "INKEY");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "extend.h"
|
||||
#include "itemapi.h"
|
||||
#include "ctoharb.h"
|
||||
#include "errorapi.h"
|
||||
#include "dates.h"
|
||||
#include "set.h"
|
||||
|
||||
@@ -425,8 +426,7 @@ void hb_itemCopy( PHB_ITEM pDest, PHB_ITEM pSource )
|
||||
|
||||
if( pDest == pSource )
|
||||
{
|
||||
printf( "an item was going to be copied to itself from hb_itemCopy()\n" );
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "An item was going to be copied to itself from hb_itemCopy()", NULL, NULL );
|
||||
}
|
||||
|
||||
memcpy( pDest, pSource, sizeof( HB_ITEM ) );
|
||||
|
||||
@@ -65,13 +65,13 @@ HARBOUR HB_ABS( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1089, NULL, "ABS");
|
||||
hb_errRT_BASE(EG_ARG, 1089, NULL, "ABS");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "ABS");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "ABS");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,13 +89,13 @@ HARBOUR HB_EXP( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1096, NULL, "EXP");
|
||||
hb_errRT_BASE(EG_ARG, 1096, NULL, "EXP");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "EXP");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "EXP");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,13 +107,13 @@ HARBOUR HB_INT( void )
|
||||
hb_retnl( hb_parnd( 1 ) );
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1090, NULL, "INT");
|
||||
hb_errRT_BASE(EG_ARG, 1090, NULL, "INT");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "INT");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "INT");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,13 +135,13 @@ HARBOUR HB_LOG( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1095, NULL, "LOG");
|
||||
hb_errRT_BASE(EG_ARG, 1095, NULL, "LOG");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "LOG");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "LOG");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,13 +168,13 @@ HARBOUR HB_MAX( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1093, NULL, "MAX");
|
||||
hb_errRT_BASE(EG_ARG, 1093, NULL, "MAX");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "MAX");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "MAX");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -201,13 +201,13 @@ HARBOUR HB_MIN( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1092, NULL, "MIN");
|
||||
hb_errRT_BASE(EG_ARG, 1092, NULL, "MIN");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "MIN");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "MIN");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,7 +256,7 @@ FUNCTION MOD(cl_num, cl_base)
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1085, NULL, "%");
|
||||
hb_errRT_BASE(EG_ARG, 1085, NULL, "%");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -289,13 +289,13 @@ HARBOUR HB_ROUND( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1094, NULL, "ROUND");
|
||||
hb_errRT_BASE(EG_ARG, 1094, NULL, "ROUND");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "ROUND");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "ROUND");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -321,13 +321,13 @@ HARBOUR HB_SQRT( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1097, NULL, "SQRT");
|
||||
hb_errRT_BASE(EG_ARG, 1097, NULL, "SQRT");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "SQRT");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "SQRT");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -363,7 +363,7 @@ void hb_memvarSetValue( PHB_SYMB pMemvarSymb, HB_ITEM_PTR pItem )
|
||||
}
|
||||
}
|
||||
else
|
||||
hb_errorRT_BASE( EG_NOVAR, 1003, NULL, pMemvarSymb->szName );
|
||||
hb_errRT_BASE( EG_NOVAR, 1003, NULL, pMemvarSymb->szName );
|
||||
}
|
||||
|
||||
void hb_memvarGetValue( HB_ITEM_PTR pItem, PHB_SYMB pMemvarSymb )
|
||||
@@ -388,10 +388,10 @@ void hb_memvarGetValue( HB_ITEM_PTR pItem, PHB_SYMB pMemvarSymb )
|
||||
hb_itemCopy( pItem, pGetItem );
|
||||
}
|
||||
else /* variable is not initialized */
|
||||
hb_errorRT_BASE( EG_NOVAR, 1003, NULL, pMemvarSymb->szName );
|
||||
hb_errRT_BASE( EG_NOVAR, 1003, NULL, pMemvarSymb->szName );
|
||||
}
|
||||
else
|
||||
hb_errorRT_BASE( EG_NOVAR, 1003, NULL, pMemvarSymb->szName );
|
||||
hb_errRT_BASE( EG_NOVAR, 1003, NULL, pMemvarSymb->szName );
|
||||
}
|
||||
|
||||
void hb_memvarGetRefer( HB_ITEM_PTR pItem, PHB_SYMB pMemvarSymb )
|
||||
@@ -415,10 +415,10 @@ void hb_memvarGetRefer( HB_ITEM_PTR pItem, PHB_SYMB pMemvarSymb )
|
||||
++_globalTable[ pDyn->hMemvar ].counter;
|
||||
}
|
||||
else
|
||||
hb_errorRT_BASE( EG_NOVAR, 1003, NULL, pMemvarSymb->szName );
|
||||
hb_errRT_BASE( EG_NOVAR, 1003, NULL, pMemvarSymb->szName );
|
||||
}
|
||||
else
|
||||
hb_errorRT_BASE( EG_NOVAR, 1003, NULL, pMemvarSymb->szName );
|
||||
hb_errRT_BASE( EG_NOVAR, 1003, NULL, pMemvarSymb->szName );
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -444,7 +444,7 @@ static void hb_memvarCreateFromItem( PHB_ITEM pMemvar, BYTE bScope, PHB_ITEM pVa
|
||||
else if( IS_STRING( pMemvar ) )
|
||||
pDynVar =hb_dynsymGet( pMemvar->item.asString.value );
|
||||
else
|
||||
hb_errorRT_BASE( EG_ARG, 3008, NULL, "&" );
|
||||
hb_errRT_BASE( EG_ARG, 3008, NULL, "&" );
|
||||
|
||||
if( pDynVar )
|
||||
hb_memvarCreateFromDynSymbol( pDynVar, bScope, pValue );
|
||||
@@ -518,7 +518,7 @@ static void hb_memvarRelease( HB_ITEM_PTR pMemvar )
|
||||
}
|
||||
}
|
||||
else
|
||||
hb_errorRT_BASE( EG_ARG, 3008, NULL, "RELEASE" );
|
||||
hb_errRT_BASE( EG_ARG, 3008, NULL, "RELEASE" );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
*/
|
||||
|
||||
#include "hboo.ch"
|
||||
#include "error.ch"
|
||||
|
||||
//
|
||||
// <lRet> := __objHasData( <oObject>, <cSymbol> )
|
||||
@@ -45,7 +46,13 @@
|
||||
//
|
||||
function __objHasData( oObject, cSymbol )
|
||||
|
||||
return __objHasMsg( oObject, cSymbol ) .and. __objHasMsg( oObject, "_" + cSymbol )
|
||||
if !( ValType( oObject ) == "O" ) .or. ;
|
||||
!( ValType( cSymbol ) == "C" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJHASDATA")
|
||||
endif
|
||||
|
||||
return __objHasMsg( oObject, cSymbol ) .and. ;
|
||||
__objHasMsg( oObject, "_" + cSymbol )
|
||||
|
||||
|
||||
//
|
||||
@@ -55,7 +62,13 @@ return __objHasMsg( oObject, cSymbol ) .and. __objHasMsg( oObject, "_" + cSymbol
|
||||
//
|
||||
function __objHasMethod( oObject, cSymbol )
|
||||
|
||||
return __objHasMsg( oObject, cSymbol ) .and. !__objHasMsg( oObject, "_" + cSymbol )
|
||||
if !( ValType( oObject ) == "O" ) .or. ;
|
||||
!( ValType( cSymbol ) == "C" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJHASMETHOD")
|
||||
endif
|
||||
|
||||
return __objHasMsg( oObject, cSymbol ) .and. ;
|
||||
!__objHasMsg( oObject, "_" + cSymbol )
|
||||
|
||||
//
|
||||
// <aData> __objGetMsgList( <oObject>, [lDataMethod] )
|
||||
@@ -67,24 +80,33 @@ return __objHasMsg( oObject, cSymbol ) .and. !__objHasMsg( oObject, "_" + cSymbo
|
||||
//
|
||||
function __objGetMsgList( oObject, lDataMethod )
|
||||
|
||||
local aInfo := aSort( oObject:ClassSel() )
|
||||
local aData := {}
|
||||
local n := 1
|
||||
local nLen := Len( aInfo )
|
||||
local aInfo
|
||||
local aData
|
||||
local n
|
||||
local nLen
|
||||
local lFoundDM // Found DATA ?
|
||||
|
||||
IF !(ValType(lDataMethod) == "L")
|
||||
if !( ValType( oObject ) == "O" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJGETMSGLIST")
|
||||
endif
|
||||
|
||||
IF !( ValType( lDataMethod ) == "L" )
|
||||
lDataMethod := .T.
|
||||
ENDIF
|
||||
|
||||
aInfo := aSort( oObject:ClassSel() )
|
||||
aData := {}
|
||||
n := 1
|
||||
nLen := Len( aInfo )
|
||||
|
||||
do while n <= nLen .and. Substr( aInfo[ n ], 1, 1 ) != "_"
|
||||
|
||||
/* If in range and no set function found yet ( set functions begin with a */
|
||||
/* leading underscore ). */
|
||||
/* If in range and no set function found yet ( set functions */
|
||||
/* begin with a leading underscore ). */
|
||||
|
||||
lFoundDM := !Empty( aScan( aInfo, "_" + aInfo[ n ], n + 1 ) )
|
||||
|
||||
/* Find position of matching set function in array with all symbols */
|
||||
/* Find position of matching set function in array with all symbols */
|
||||
|
||||
if lFoundDM == lDataMethod // If found -> DATA
|
||||
// else METHOD
|
||||
@@ -103,6 +125,10 @@ return aData
|
||||
//
|
||||
function __objGetMethodList( oObject )
|
||||
|
||||
if !( ValType( oObject ) == "O" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJGETMETHODLIST")
|
||||
endif
|
||||
|
||||
return __objGetMsgList( oObject, .F. )
|
||||
|
||||
|
||||
@@ -112,180 +138,215 @@ return __objGetMsgList( oObject, .F. )
|
||||
// Basically the same as __objGetMsgList except that it returns a 2D array
|
||||
// containing :
|
||||
//
|
||||
// [x][1] Symbol name
|
||||
// [x][2] Value of DATA
|
||||
// [x][DATA_SYMBOL] Symbol name
|
||||
// [x][DATA_VALUE] Value of DATA
|
||||
//
|
||||
// aExcept is an optional list of DATA you do not want to collect
|
||||
//
|
||||
function __objGetValueList( oObject, aExcept )
|
||||
|
||||
local aDataSymbol := __objGetMsgList( oObject )
|
||||
local nLen := Len( aDataSymbol )
|
||||
local aData := {}
|
||||
local aDataSymbol
|
||||
local nLen
|
||||
local aData
|
||||
local cSymbol
|
||||
local n
|
||||
|
||||
IF !(ValType(aExcept) == "A")
|
||||
if !( ValType( oObject ) == "O" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJGETVALUELIST")
|
||||
endif
|
||||
|
||||
IF !( ValType( aExcept ) == "A" )
|
||||
aExcept := {}
|
||||
ENDIF
|
||||
|
||||
aDataSymbol := __objGetMsgList( oObject )
|
||||
nLen := Len( aDataSymbol )
|
||||
aData := {}
|
||||
|
||||
for n := 1 to nLen
|
||||
cSymbol := aDataSymbol[ n ]
|
||||
if Empty( aScan( aExcept, cSymbol ) )
|
||||
aAdd( aData, { cSymbol, __objSendMsg( oObject, cSymbol ) } )
|
||||
endif
|
||||
next n
|
||||
|
||||
return aData
|
||||
|
||||
|
||||
//
|
||||
// __objSetValueList( <oObject>, <aData> )
|
||||
//
|
||||
// The reverse of __objGetValueList.
|
||||
// The reverse of __objGetValueList.
|
||||
// It puts an 2D array of DATA into an object.
|
||||
//
|
||||
function __objSetValueList( oObject, aData )
|
||||
|
||||
aEval( aData, ;
|
||||
{|aItem| __objSendMsg( oObject, "_"+aItem[DATA_SYMBOL], aItem[DATA_VAL] ) } )
|
||||
if !( ValType( oObject ) == "O" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJSETVALUELIST")
|
||||
endif
|
||||
|
||||
aEval( aData,;
|
||||
{|aItem| __objSendMsg( oObject, "_" + aItem[DATA_SYMBOL], aItem[DATA_VALUE] ) } )
|
||||
|
||||
return oObject
|
||||
|
||||
|
||||
//
|
||||
// <oObj> := __objAddMethod( <oObj>, <cSymbol>, <nFuncPtr> )
|
||||
// <oObject> := __objAddMethod( <oObject>, <cSymbol>, <nFuncPtr> )
|
||||
//
|
||||
// Add a method to an already existing class
|
||||
//
|
||||
function __objAddMethod( oObj, cSymbol, nFuncPtr )
|
||||
function __objAddMethod( oObject, cSymbol, nFuncPtr )
|
||||
|
||||
if __objHasMsg( oObj, cSymbol )
|
||||
QOut( "__objAddMethod: ", cSymbol, " already exists in class." )
|
||||
elseif ValType( nFuncPtr ) != "N"
|
||||
QOut( "__objAddMethod: Argument type error <nFuncPtr>" )
|
||||
elseif ValType( oObj ) != "O"
|
||||
QOut( "__objAddMethod: Argument type error <oObj>" )
|
||||
else
|
||||
__clsAddMsg( oObj:ClassH, cSymbol, nFuncPtr, MET_METHOD )
|
||||
if !( ValType( oObject ) == "O" ) .or. ;
|
||||
!( ValType( cSymbol ) == "C" ) .or. ;
|
||||
!( ValType( nFuncPtr ) == "N" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJADDMETHOD")
|
||||
endif
|
||||
return oObj
|
||||
|
||||
if !__objHasMsg( oObject, cSymbol )
|
||||
__clsAddMsg( oObject:ClassH, cSymbol, nFuncPtr, MET_METHOD )
|
||||
else
|
||||
__errRT_BASE(EG_ARG, 3103, "Already existing symbol in class", "__OBJADDMETHOD")
|
||||
endif
|
||||
|
||||
return oObject
|
||||
|
||||
|
||||
//
|
||||
// <oObj> := __objAddInline( <oObj>, <cSymbol>, <bInline> )
|
||||
// <oObject> := __objAddInline( <oObject>, <cSymbol>, <bInline> )
|
||||
//
|
||||
// Add an INLINE to an already existing class
|
||||
//
|
||||
function __objAddInline( oObj, cSymbol, bInline )
|
||||
function __objAddInline( oObject, cSymbol, bInline )
|
||||
|
||||
if __objHasMsg( oObj, cSymbol )
|
||||
QOut( "__objAddInline: ", cSymbol, " already exists in class." )
|
||||
elseif ValType( bInline ) != "B"
|
||||
QOut( "__objAddInline: Argument type error <bInline>" )
|
||||
elseif ValType( oObj ) != "O"
|
||||
QOut( "__objAddInline: Argument type error <oObj>" )
|
||||
else
|
||||
__clsAddMsg( oObj:ClassH, cSymbol, bInline, MET_INLINE )
|
||||
if !( ValType( oObject ) == "O" ) .or. ;
|
||||
!( ValType( cSymbol ) == "C" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJADDINLINE")
|
||||
endif
|
||||
return oObj
|
||||
|
||||
if !__objHasMsg( oObject, cSymbol )
|
||||
__clsAddMsg( oObject:ClassH, cSymbol, bInline, MET_INLINE )
|
||||
else
|
||||
__errRT_BASE(EG_ARG, 3103, "Already existing symbol in class", "__OBJADDINLINE")
|
||||
endif
|
||||
|
||||
return oObject
|
||||
|
||||
|
||||
//
|
||||
// <oObj> := __objAddData( <oObj>, <cSymbol> )
|
||||
// <oObject> := __objAddData( <oObject>, <cSymbol> )
|
||||
//
|
||||
// Add a DATA to an already existing class
|
||||
//
|
||||
function __objAddData( oObj, cSymbol )
|
||||
function __objAddData( oObject, cSymbol )
|
||||
|
||||
local nSeq
|
||||
|
||||
if __objHasMsg( oObj, cSymbol ) .or. __objHasMsg( oObj, "_" + cSymbol )
|
||||
QOut( "__objAddData: ", cSymbol, " already exists in class." )
|
||||
elseif ValType( oObj ) != "O"
|
||||
QOut( "__objAddData: Argument type error <oObj>" )
|
||||
else
|
||||
nSeq := __cls_IncData( oObj:ClassH ) // Allocate new Seq#
|
||||
__clsAddMsg( oObj:ClassH, cSymbol, nSeq, MET_DATA )
|
||||
__clsAddMsg( oObj:ClassH, "_" + cSymbol, nSeq, MET_DATA )
|
||||
if !( ValType( oObject ) == "O" ) .or. ;
|
||||
!( ValType( cSymbol ) == "C" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJADDDATA")
|
||||
endif
|
||||
return oObj
|
||||
|
||||
if !__objHasMsg( oObject, cSymbol ) .and. ;
|
||||
!__objHasMsg( oObject, "_" + cSymbol )
|
||||
|
||||
nSeq := __cls_IncData( oObject:ClassH ) // Allocate new Seq#
|
||||
__clsAddMsg( oObject:ClassH, cSymbol, nSeq, MET_DATA )
|
||||
__clsAddMsg( oObject:ClassH, "_" + cSymbol, nSeq, MET_DATA )
|
||||
else
|
||||
__errRT_BASE(EG_ARG, 3103, "Already existing symbol in class", "__OBJADDDATA")
|
||||
endif
|
||||
|
||||
return oObject
|
||||
|
||||
|
||||
//
|
||||
// <oObj> := __objModMethod( <oObj>, <cSymbol>, <nFuncPtr> )
|
||||
// <oObject> := __objModMethod( <oObject>, <cSymbol>, <nFuncPtr> )
|
||||
//
|
||||
// Modify a method to an already existing class
|
||||
//
|
||||
function __objModMethod( oObj, cSymbol, nFuncPtr )
|
||||
function __objModMethod( oObject, cSymbol, nFuncPtr )
|
||||
|
||||
if !__objHasMethod( oObj, cSymbol )
|
||||
QOut( "__objModMethod: ", cSymbol, " does not exist in class." )
|
||||
elseif ValType( nFuncPtr ) != "N"
|
||||
QOut( "__objModMethod: Argument type error <nFuncPtr>" )
|
||||
elseif ValType( oObj ) != "O"
|
||||
QOut( "__objModMethod: Argument type error <oObj>" )
|
||||
else
|
||||
__clsModMsg( oObj:ClassH, cSymbol, nFuncPtr )
|
||||
if !( ValType( oObject ) == "O" ) .or. ;
|
||||
!( ValType( cSymbol ) == "C" ) .or. ;
|
||||
!( ValType( nFuncPtr ) == "N" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJMODMETHOD")
|
||||
endif
|
||||
return oObj
|
||||
|
||||
if __objHasMethod( oObject, cSymbol )
|
||||
__clsModMsg( oObject:ClassH, cSymbol, nFuncPtr )
|
||||
else
|
||||
__errRT_BASE(EG_ARG, 3102, "Not existing symbol in class", "__OBJMODMETHOD")
|
||||
endif
|
||||
|
||||
return oObject
|
||||
|
||||
|
||||
//
|
||||
// <oObj> := __objModInline( <oObj>, <cSymbol>, <bInline> )
|
||||
// <oObject> := __objModInline( <oObject>, <cSymbol>, <bInline> )
|
||||
//
|
||||
// Modify an INLINE to an already existing class
|
||||
//
|
||||
function __objModInline( oObj, cSymbol, bInline )
|
||||
function __objModInline( oObject, cSymbol, bInline )
|
||||
|
||||
if !__objHasMethod( oObj, cSymbol )
|
||||
QOut( "__objModInline: ", cSymbol, " does not exist in class." )
|
||||
elseif ValType( bInline ) != "B"
|
||||
QOut( "__objModInline: Argument type error <bInline>" )
|
||||
elseif ValType( oObj ) != "O"
|
||||
QOut( "__objModInline: Argument type error <oObj>" )
|
||||
else
|
||||
__clsModMsg( oObj:ClassH, cSymbol, bInline )
|
||||
if !( ValType( oObject ) == "O" ) .or. ;
|
||||
!( ValType( cSymbol ) == "C" ) .or. ;
|
||||
!( ValType( bInline ) == "B" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJMODINLINE")
|
||||
endif
|
||||
return oObj
|
||||
|
||||
if __objHasMethod( oObject, cSymbol )
|
||||
__clsModMsg( oObject:ClassH, cSymbol, bInline )
|
||||
else
|
||||
__errRT_BASE(EG_ARG, 3102, "Not existing symbol in class", "__OBJMODINLINE")
|
||||
endif
|
||||
|
||||
return oObject
|
||||
|
||||
|
||||
//
|
||||
// <oObj> := __objDelMethod( <oObj>, <cSymbol> )
|
||||
// <oObject> := __objDelMethod( <oObject>, <cSymbol> )
|
||||
//
|
||||
// Delete a method from an already existing class
|
||||
//
|
||||
function __objDelMethod( oObj, cSymbol )
|
||||
function __objDelMethod( oObject, cSymbol )
|
||||
|
||||
if !__objHasMethod( oObj, cSymbol )
|
||||
QOut( "__objDelMethod: ", cSymbol, " does not exist in class." )
|
||||
elseif ValType( oObj ) != "O"
|
||||
QOut( "__objDelMethod: Argument type error <oObj>" )
|
||||
else
|
||||
__clsDelMsg( oObj:ClassH, cSymbol )
|
||||
if !( ValType( oObject ) == "O" ) .or. ;
|
||||
!( ValType( cSymbol ) == "C" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJDELMETHOD")
|
||||
endif
|
||||
return oObj
|
||||
|
||||
function __objDelInline( oObj, cSymbol )
|
||||
return __objDelMethod( oObj, cSymbol ) // Same story
|
||||
if __objHasMethod( oObject, cSymbol )
|
||||
__clsDelMsg( oObject:ClassH, cSymbol )
|
||||
else
|
||||
__errRT_BASE(EG_ARG, 3102, "Not existing symbol in class", "__OBJDELMETHOD")
|
||||
endif
|
||||
|
||||
return oObject
|
||||
|
||||
function __objDelInline( oObject, cSymbol )
|
||||
return __objDelMethod( oObject, cSymbol ) // Same story
|
||||
|
||||
//
|
||||
// <oObj> := __objDelData( <oObj>, <cSymbol> )
|
||||
// <oObject> := __objDelData( <oObject>, <cSymbol> )
|
||||
//
|
||||
// Delete a DATA from an already existing class
|
||||
//
|
||||
function __objDelData( oObj, cSymbol )
|
||||
function __objDelData( oObject, cSymbol )
|
||||
|
||||
local nSeq
|
||||
|
||||
if !__objHasData( oObj, cSymbol )
|
||||
QOut( "__objDelData: ", cSymbol, " does not exist in class." )
|
||||
elseif ValType( oObj ) != "O"
|
||||
QOut( "__objDelData: Argument type error <oObj>" )
|
||||
else
|
||||
__clsDelMsg( oObj:ClassH, cSymbol, )
|
||||
__clsDelMsg( oObj:ClassH, "_" + cSymbol )
|
||||
nSeq := __cls_DecData( oObj:ClassH ) // Decrease wData
|
||||
if !( ValType( oObject ) == "O" ) .or. ;
|
||||
!( ValType( cSymbol ) == "C" )
|
||||
__errRT_BASE(EG_ARG, 3101, NIL, "__OBJDELDATA")
|
||||
endif
|
||||
return oObj
|
||||
|
||||
if __objHasData( oObject, cSymbol )
|
||||
__clsDelMsg( oObject:ClassH, cSymbol )
|
||||
__clsDelMsg( oObject:ClassH, "_" + cSymbol )
|
||||
__cls_DecData( oObject:ClassH ) // Decrease wData
|
||||
else
|
||||
__errRT_BASE(EG_ARG, 3102, "Not existing symbol in class", "__OBJDELDATA")
|
||||
endif
|
||||
|
||||
return oObject
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
from "cvs log source/rtl/set.c".
|
||||
V 1.39 David G. Holm Made various changes after running
|
||||
through Gimpel Lint.
|
||||
Added call hb_errorRT_TERMINAL()
|
||||
Added call hb_errRT_TERMINAL()
|
||||
wrapper function upon failure to
|
||||
create an alternate file and/or a
|
||||
printer file (and/or an extra file,
|
||||
@@ -316,7 +316,7 @@ static int open_handle (char * file_name, BOOL bMode, char * def_ext)
|
||||
char * error_message = strerror( error );
|
||||
char * message = ( char * )hb_xgrab( strlen( error_message ) + 64 );
|
||||
sprintf( message, "Create error %d (%s)", error, error_message );
|
||||
hb_errorRT_TERMINAL( EG_CREATE, 2013, message, path );
|
||||
hb_errRT_TERMINAL( EG_CREATE, 2013, message, path );
|
||||
hb_xfree( message );
|
||||
}
|
||||
return handle;
|
||||
@@ -710,7 +710,7 @@ HARBOUR HB_SET (void)
|
||||
{
|
||||
if (set_number (pArg2, hb_set.HB_SET_DECIMALS) < 0)
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 2020, NULL, "SET");
|
||||
hb_errRT_BASE(EG_ARG, 2020, NULL, "SET");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -754,7 +754,7 @@ HARBOUR HB_SET (void)
|
||||
{
|
||||
if (set_number (pArg2, hb_set.HB_SET_EPOCH) < 0)
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 2020, NULL, "SET");
|
||||
hb_errRT_BASE(EG_ARG, 2020, NULL, "SET");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -817,7 +817,7 @@ HARBOUR HB_SET (void)
|
||||
{
|
||||
if (set_number (pArg2, hb_set.HB_SET_MARGIN) < 0)
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 2020, NULL, "SET");
|
||||
hb_errRT_BASE(EG_ARG, 2020, NULL, "SET");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -835,7 +835,7 @@ HARBOUR HB_SET (void)
|
||||
{
|
||||
if (set_number (pArg2, hb_set.HB_SET_MESSAGE) < 0)
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 2020, NULL, "SET");
|
||||
hb_errRT_BASE(EG_ARG, 2020, NULL, "SET");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -266,13 +266,13 @@ HARBOUR HB_LTRIM( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1101, NULL, "LTRIM");
|
||||
hb_errRT_BASE(EG_ARG, 1101, NULL, "LTRIM");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "LTRIM");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "LTRIM");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -311,14 +311,14 @@ HARBOUR HB_RTRIM( void )
|
||||
/* Clipper doesn't error, but only in RTRIM. TRIM() throws an error, though */
|
||||
hb_retc("");
|
||||
#else
|
||||
hb_errorRT_BASE(EG_ARG, 1100, NULL, "RTRIM");
|
||||
hb_errRT_BASE(EG_ARG, 1100, NULL, "RTRIM");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "RTRIM");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "RTRIM");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -335,13 +335,13 @@ HARBOUR HB_TRIM( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1100, NULL, "TRIM");
|
||||
hb_errRT_BASE(EG_ARG, 1100, NULL, "TRIM");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "TRIM");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "TRIM");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -585,13 +585,13 @@ HARBOUR HB_AT( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1108, NULL, "AT");
|
||||
hb_errRT_BASE(EG_ARG, 1108, NULL, "AT");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "AT");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "AT");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -644,13 +644,13 @@ HARBOUR HB_CHR( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1104, NULL, "CHR");
|
||||
hb_errRT_BASE(EG_ARG, 1104, NULL, "CHR");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "CHR");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "CHR");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -670,13 +670,13 @@ HARBOUR HB_ASC(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1107, NULL, "ASC");
|
||||
hb_errRT_BASE(EG_ARG, 1107, NULL, "ASC");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "ASC");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "ASC");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -705,18 +705,18 @@ HARBOUR HB_LEFT( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 3009, NULL, "LEFT");
|
||||
hb_errRT_BASE(EG_ARG, 3009, NULL, "LEFT");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1124, NULL, "LEFT");
|
||||
hb_errRT_BASE(EG_ARG, 1124, NULL, "LEFT");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "LEFT");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "LEFT");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -811,13 +811,13 @@ HARBOUR HB_SUBSTR( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1110, NULL, "SUBSTR");
|
||||
hb_errRT_BASE(EG_ARG, 1110, NULL, "SUBSTR");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "SUBSTR");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "SUBSTR");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -845,13 +845,13 @@ HARBOUR HB_LOWER( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1103, NULL, "LOWER");
|
||||
hb_errRT_BASE(EG_ARG, 1103, NULL, "LOWER");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "LOWER");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "LOWER");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -879,13 +879,13 @@ HARBOUR HB_UPPER( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1102, NULL, "UPPER");
|
||||
hb_errRT_BASE(EG_ARG, 1102, NULL, "UPPER");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "UPPER");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "UPPER");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -917,7 +917,7 @@ HARBOUR HB_REPLICATE( void )
|
||||
}
|
||||
|
||||
/* TODO: Check for string overflow */
|
||||
/* hb_errorRT_BASE(EG_STROVERFLOW, 1234, NULL, "REPLICATE"); */
|
||||
/* hb_errRT_BASE(EG_STROVERFLOW, 1234, NULL, "REPLICATE"); */
|
||||
|
||||
hb_retclen(szResult, lLen * lTimes);
|
||||
hb_xfree(szResult);
|
||||
@@ -927,13 +927,13 @@ HARBOUR HB_REPLICATE( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1106, NULL, "REPLICATE");
|
||||
hb_errRT_BASE(EG_ARG, 1106, NULL, "REPLICATE");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "REPLICATE");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "REPLICATE");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -954,7 +954,7 @@ HARBOUR HB_SPACE( void )
|
||||
char *szResult = (char *)hb_xgrab(lLen + 1);
|
||||
|
||||
/* TODO: Check for string overflow */
|
||||
/* hb_errorRT_BASE(EG_STROVERFLOW, 1233, NULL, "SPACE"); */
|
||||
/* hb_errRT_BASE(EG_STROVERFLOW, 1233, NULL, "SPACE"); */
|
||||
|
||||
memset(szResult, ' ', lLen);
|
||||
hb_retclen(szResult, lLen);
|
||||
@@ -965,13 +965,13 @@ HARBOUR HB_SPACE( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1105, NULL, "SPACE");
|
||||
hb_errRT_BASE(EG_ARG, 1105, NULL, "SPACE");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "SPACE");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "SPACE");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1163,10 +1163,10 @@ HARBOUR HB_STRTRAN( void )
|
||||
hb_retclen(szText, pText->item.asString.length);
|
||||
}
|
||||
else
|
||||
hb_errorRT_BASE(EG_ARG, 3010, NULL, "STRTRAN");
|
||||
hb_errRT_BASE(EG_ARG, 3010, NULL, "STRTRAN");
|
||||
}
|
||||
else
|
||||
hb_errorRT_BASE(EG_ARG, 1126, NULL, "STRTRAN");
|
||||
hb_errRT_BASE(EG_ARG, 1126, NULL, "STRTRAN");
|
||||
}
|
||||
|
||||
/* returns the numeric value of a character string representation of a number */
|
||||
@@ -1198,13 +1198,13 @@ HARBOUR HB_VAL( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1098, NULL, "VAL");
|
||||
hb_errRT_BASE(EG_ARG, 1098, NULL, "VAL");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "VAL");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "VAL");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1351,13 +1351,13 @@ HARBOUR HB_STR( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1099, NULL, "STR");
|
||||
hb_errRT_BASE(EG_ARG, 1099, NULL, "STR");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "STR");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "STR");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -121,7 +121,7 @@ static function Create()
|
||||
|
||||
for n = 1 to nLenDatas
|
||||
__clsAddMsg( hClass, ::aDatas[ n ][ DATA_SYMBOL ], n + nDataBegin, MET_DATA, ;
|
||||
::aDatas[ n ][ DATA_VAL ] )
|
||||
::aDatas[ n ][ DATA_VALUE ] )
|
||||
__clsAddMsg( hClass, "_" + ::aDatas[ n ][ DATA_SYMBOL ], n + nDataBegin, MET_DATA )
|
||||
next
|
||||
|
||||
|
||||
@@ -345,8 +345,7 @@ static char *NumPicture( char *szPic, long lPic, int iPicFlags, double dValue,
|
||||
}
|
||||
else
|
||||
{
|
||||
printf( "\nNUMPICTURE: STR does not return string" );
|
||||
exit(1);
|
||||
hb_errInternal( 9999, "NumPicture(): STR does not return string", NULL, NULL );
|
||||
}
|
||||
return(szRet);
|
||||
}
|
||||
@@ -567,7 +566,7 @@ HARBOUR HB_TRANSFORM( void )
|
||||
}
|
||||
default:
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1122, NULL, "TRANSFORM");
|
||||
hb_errRT_BASE(EG_ARG, 1122, NULL, "TRANSFORM");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -610,7 +609,7 @@ HARBOUR HB_TRANSFORM( void )
|
||||
}
|
||||
default:
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1122, NULL, "TRANSFORM");
|
||||
hb_errRT_BASE(EG_ARG, 1122, NULL, "TRANSFORM");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@ HARBOUR HB_ISLEAPYEAR( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_TOOLS(EG_ARG, 4001, NULL, "ISLEAPYEAR");
|
||||
hb_errRT_TOOLS(EG_ARG, 4001, NULL, "ISLEAPYEAR");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@ function ToChar( xTxt, cSeparator, lDebug )
|
||||
nLen := Len( aData )
|
||||
for n := 1 to nLen // For each item : Recurse !
|
||||
cOut += aData[n][DATA_SYMBOL] + ":" + ;
|
||||
ToChar( aData[n][DATA_VAL], cSeparator, lDebug )
|
||||
ToChar( aData[n][DATA_VALUE], cSeparator, lDebug )
|
||||
if n != nLen
|
||||
cOut += cSeparator
|
||||
endif
|
||||
|
||||
@@ -160,9 +160,8 @@ int main( int argc, char * argv[] )
|
||||
pSymStart =pDynSym->pSymbol;
|
||||
else
|
||||
{
|
||||
printf( "Can\'t locate the starting procedure: \'%s\'", HARBOUR_START_PROCEDURE );
|
||||
exit(1);
|
||||
}
|
||||
hb_errInternal( 9999, "Can\'t locate the starting procedure: \'%s\'", HARBOUR_START_PROCEDURE, NULL );
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -602,9 +601,7 @@ void hb_vmExecute( BYTE * pCode, PHB_SYMB pSymbols )
|
||||
break;
|
||||
|
||||
default:
|
||||
printf( "The Harbour virtual machine can't run yet this PRG\n(unsuported pcode opcode: %i)\n", bCode );
|
||||
printf( "Line number %i in %s", stack.pBase->item.asSymbol.lineno, stack.pBase->item.asSymbol.value->szName );
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "Unsupported VM opcode", NULL, NULL );
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -654,7 +651,7 @@ static void hb_vmAliasPop( void )
|
||||
|
||||
default:
|
||||
hb_itemClear( pItem );
|
||||
hb_errorRT_BASE( EG_BADALIAS, 1000, NULL, NULL );
|
||||
hb_errRT_BASE( EG_BADALIAS, 1000, NULL, NULL );
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -710,7 +707,7 @@ void hb_vmAnd( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1078, NULL, ".AND.");
|
||||
hb_errRT_BASE(EG_ARG, 1078, NULL, ".AND.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -782,8 +779,7 @@ void hb_vmDimArray( WORD wDimensions ) /* generates a wDimensions Array and init
|
||||
|
||||
if( wDimensions > 1 )
|
||||
{
|
||||
printf( "HVM.c DimArray() does not supports multiple dimensions yet!" );
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "HVM.C hb_vmDimArray() does not supports multiple dimensions yet", NULL, NULL );
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -823,17 +819,18 @@ void hb_vmDo( WORD wParams )
|
||||
|
||||
if( ! IS_SYMBOL( pItem ) )
|
||||
{
|
||||
/* QUESTION: Is this call needed ? [vszel] */
|
||||
hb_stackShow();
|
||||
printf( "symbol item expected as a base from Do() in line %i\n", stack.pBase->item.asSymbol.lineno );
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "Symbol item expected as a base from hb_vmDo()", NULL, NULL );
|
||||
}
|
||||
|
||||
/* if( ! IS_NIL( pSelf ) )
|
||||
/*
|
||||
if( ! IS_NIL( pSelf ) )
|
||||
{
|
||||
hb_stackShow();
|
||||
printf( "invalid symbol type for self from Do()\n" );
|
||||
exit( 1 );
|
||||
} */
|
||||
hb_errInternal( 9999, "Invalid symbol type for self from hb_vmDo()", NULL, NULL );
|
||||
}
|
||||
*/
|
||||
|
||||
pItem->item.asSymbol.lineno = 0;
|
||||
pItem->item.asSymbol.paramcnt = wParams;
|
||||
@@ -851,10 +848,7 @@ void hb_vmDo( WORD wParams )
|
||||
|
||||
if( ! pFunc )
|
||||
{
|
||||
printf( "internal error: message %s not implemented for class %s\n",
|
||||
pSym->szName, hb_objGetClsName( pSelf ) );
|
||||
hb_callStackShow();
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "Message %s not implemented for class %s", pSym->szName, hb_objGetClsName( pSelf ) );
|
||||
}
|
||||
pFunc();
|
||||
}
|
||||
@@ -863,9 +857,7 @@ void hb_vmDo( WORD wParams )
|
||||
pFunc = pSym->pFunPtr;
|
||||
if( ! pFunc )
|
||||
{
|
||||
printf( "internal error: invalid function pointer (%s) from Do()\n", pSym->szName );
|
||||
hb_callStackShow();
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "Invalid function pointer (%s) from hb_vmDo()", pSym->szName, NULL );
|
||||
}
|
||||
pFunc();
|
||||
}
|
||||
@@ -885,9 +877,7 @@ HARBOUR hb_vmDoBlock( void )
|
||||
|
||||
if( ! IS_BLOCK( pBlock ) )
|
||||
{
|
||||
printf( "internal error: codeblock expected from DoBlock()\n" );
|
||||
hb_callStackShow();
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "Codeblock expected from hb_vmDoBlock()", NULL, NULL );
|
||||
}
|
||||
|
||||
/* Check for valid count of parameters */
|
||||
@@ -941,8 +931,7 @@ HARBOUR HB_EVAL( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
printf( "Not a valid codeblock on eval in line %i\n", stack.pBase->item.asSymbol.lineno );
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "Not a valid codeblock on EVAL", NULL, NULL );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -994,7 +983,7 @@ void hb_vmEqual( BOOL bExact )
|
||||
|
||||
else if( pItem1->type != pItem2->type )
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1070, NULL, "==");
|
||||
hb_errRT_BASE(EG_ARG, 1070, NULL, "==");
|
||||
}
|
||||
|
||||
else
|
||||
@@ -1025,7 +1014,7 @@ void hb_vmForTest( void ) /* Test to check the end point of the FOR */
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1073, NULL, "<");
|
||||
hb_errRT_BASE(EG_ARG, 1073, NULL, "<");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1050,8 +1039,7 @@ void hb_vmFuncPtr( void ) /* pushes a function address pointer. Removes the sym
|
||||
}
|
||||
else
|
||||
{
|
||||
printf( "symbol item expected from FuncPtr()\n" );
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "Symbol item expected from hb_vmFuncPtr()", NULL, NULL );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1122,7 +1110,7 @@ void hb_vmGreater( void )
|
||||
|
||||
else if( ( stack.pPos - 2 )->type != ( stack.pPos - 1 )->type )
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1075, NULL, ">");
|
||||
hb_errRT_BASE(EG_ARG, 1075, NULL, ">");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1167,7 +1155,7 @@ void hb_vmGreaterEqual( void )
|
||||
|
||||
else if( ( stack.pPos - 2 )->type != ( stack.pPos - 1 )->type )
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1076, NULL, ">=");
|
||||
hb_errRT_BASE(EG_ARG, 1076, NULL, ">=");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1189,7 +1177,7 @@ void hb_vmInc( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1086, NULL, "++");
|
||||
hb_errRT_BASE(EG_ARG, 1086, NULL, "++");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1209,7 +1197,7 @@ void hb_vmInstring( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1109, NULL, "$");
|
||||
hb_errRT_BASE(EG_ARG, 1109, NULL, "$");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1254,7 +1242,7 @@ void hb_vmLess( void )
|
||||
|
||||
else if( ( stack.pPos - 2 )->type != ( stack.pPos - 1 )->type )
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1073, NULL, "<");
|
||||
hb_errRT_BASE(EG_ARG, 1073, NULL, "<");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1299,7 +1287,7 @@ void hb_vmLessEqual( void )
|
||||
|
||||
else if( ( stack.pPos - 2 )->type != ( stack.pPos - 1 )->type )
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1074, NULL, "<=");
|
||||
hb_errRT_BASE(EG_ARG, 1074, NULL, "<=");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1337,7 +1325,7 @@ void hb_vmNot( void )
|
||||
if( IS_LOGICAL( pItem ) )
|
||||
pItem->item.asLogical.value = ! pItem->item.asLogical.value;
|
||||
else
|
||||
hb_errorRT_BASE(EG_ARG, 1077, NULL, ".NOT.");
|
||||
hb_errRT_BASE(EG_ARG, 1077, NULL, ".NOT.");
|
||||
}
|
||||
|
||||
void hb_vmNotEqual( void )
|
||||
@@ -1380,7 +1368,7 @@ void hb_vmNotEqual( void )
|
||||
|
||||
else if( pItem1->type != pItem2->type )
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1072, NULL, "<>");
|
||||
hb_errRT_BASE(EG_ARG, 1072, NULL, "<>");
|
||||
}
|
||||
|
||||
else
|
||||
@@ -1442,7 +1430,7 @@ void hb_vmMinus( void )
|
||||
else if( IS_OBJECT( stack.pPos - 2 ) && hb_objHasMsg( stack.pPos - 2, "-" ) )
|
||||
hb_vmOperatorCall( stack.pPos - 2, stack.pPos - 1, "-" );
|
||||
else
|
||||
hb_errorRT_BASE(EG_ARG, 1082, NULL, "-");
|
||||
hb_errRT_BASE(EG_ARG, 1082, NULL, "-");
|
||||
|
||||
}
|
||||
|
||||
@@ -1496,7 +1484,7 @@ void hb_vmOr( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1079, NULL, ".OR.");
|
||||
hb_errRT_BASE(EG_ARG, 1079, NULL, ".OR.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1551,7 +1539,7 @@ void hb_vmPlus( void )
|
||||
hb_vmOperatorCall( pItem1, pItem2, "+" );
|
||||
|
||||
else
|
||||
hb_errorRT_BASE( EG_ARG, 1081, NULL, "+" );
|
||||
hb_errRT_BASE( EG_ARG, 1081, NULL, "+" );
|
||||
|
||||
HB_DEBUG( "Plus\n" );
|
||||
}
|
||||
@@ -1567,8 +1555,7 @@ long hb_vmPopDate( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
printf( "incorrect item value trying to Pop a date value in line %i\n", stack.pBase->item.asSymbol.lineno );
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "Incorrect item value trying to Pop a date value", NULL, NULL );
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -1605,9 +1592,8 @@ double hb_vmPopDouble( WORD *pwDec )
|
||||
break;
|
||||
|
||||
default:
|
||||
printf( "Incorrect item type trying to Pop a double in line %i\n", stack.pBase->item.asSymbol.lineno );
|
||||
exit( 1 );
|
||||
d = 0;
|
||||
hb_errInternal( 9999, "Incorrect item type trying to Pop a double", NULL, NULL );
|
||||
break;
|
||||
}
|
||||
stack.pPos->type = IT_NIL;
|
||||
HB_DEBUG( "hb_vmPopDouble\n" );
|
||||
@@ -1658,7 +1644,7 @@ BOOL hb_vmPopLogical( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 1066, NULL, hb_langDGetErrorDesc(EG_CONDITION));
|
||||
hb_errRT_BASE(EG_ARG, 1066, NULL, hb_langDGetErrorDesc(EG_CONDITION));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -1693,9 +1679,8 @@ double hb_vmPopNumber( void )
|
||||
break;
|
||||
|
||||
default:
|
||||
printf( "Incorrect item on the stack trying to pop a number in line %i\n", stack.pBase->item.asSymbol.lineno );
|
||||
hb_stackShow();
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "Incorrect item on the stack trying to pop a number", NULL, NULL );
|
||||
break;
|
||||
}
|
||||
stack.pPos->type = IT_NIL;
|
||||
@@ -1976,9 +1961,7 @@ void hb_stackPop( void )
|
||||
{
|
||||
if( --stack.pPos < stack.pItems )
|
||||
{
|
||||
printf( "internal error: stack underflow\n" );
|
||||
hb_callStackShow();
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "Stack underflow", NULL, NULL );
|
||||
}
|
||||
if( stack.pPos->type != IT_NIL )
|
||||
hb_itemClear( stack.pPos );
|
||||
@@ -1988,9 +1971,7 @@ void hb_stackDec( void )
|
||||
{
|
||||
if( --stack.pPos < stack.pItems )
|
||||
{
|
||||
printf( "internal error: stack underflow\n" );
|
||||
hb_callStackShow();
|
||||
exit( 1 );
|
||||
hb_errInternal( 9999, "Stack underflow", NULL, NULL );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2318,7 +2299,7 @@ HARBOUR HB_LEN( void )
|
||||
break;
|
||||
|
||||
default:
|
||||
hb_errorRT_BASE(EG_ARG, 1111, NULL, "LEN");
|
||||
hb_errRT_BASE(EG_ARG, 1111, NULL, "LEN");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2423,7 +2404,7 @@ HARBOUR HB_VALTYPE( void )
|
||||
else
|
||||
{
|
||||
/* QUESTION: Clipper catches this at compile time! */
|
||||
hb_errorRT_BASE(EG_ARGCOUNT, 3000, NULL, "VALTYPE");
|
||||
hb_errRT_BASE(EG_ARGCOUNT, 3000, NULL, "VALTYPE");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2450,11 +2431,11 @@ void hb_callStackShow( void )
|
||||
{
|
||||
pBase = stack.pItems + pBase->item.asSymbol.stackbase;
|
||||
if( ( pBase + 1 )->type == IT_ARRAY )
|
||||
printf( "%s:%s (%i)\n", hb_objGetClsName( pBase + 1 ),
|
||||
printf( "Called from %s:%s(%i)\n", hb_objGetClsName( pBase + 1 ),
|
||||
pBase->item.asSymbol.value->szName,
|
||||
pBase->item.asSymbol.lineno );
|
||||
else
|
||||
printf( "%s (%i)\n", pBase->item.asSymbol.value->szName,
|
||||
printf( "Called from %s(%i)\n", pBase->item.asSymbol.value->szName,
|
||||
pBase->item.asSymbol.lineno );
|
||||
}
|
||||
}
|
||||
@@ -2534,6 +2515,6 @@ HARBOUR HB_PVALUE(void) /* PValue( <nArg> )
|
||||
hb_itemReturn( pBase + 1 + wParam );
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 3011, NULL, "PVALUE");
|
||||
hb_errRT_BASE(EG_ARG, 3011, NULL, "PVALUE");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user