PValue() now also a seperate function

This commit is contained in:
Eddie Runia
1999-05-24 13:42:10 +00:00
parent bcab662435
commit cc58a536da
4 changed files with 52 additions and 1 deletions

View File

@@ -1,3 +1,11 @@
19990524-14:30 CET Eddie Runia
* source/vm/hvm.c
<xArg> := PValue(<nArg>) added
* tests/working/run_exp.h
added to function list
* tests/working/multiarg.prg
test program used
19990524-10:25 CET Alexander Kressin (upload Eddie Runia)
* source/hbpp
added preprocessor

View File

@@ -127,6 +127,7 @@ static void ForceLink( void );
ULONG hb_isMessage( PITEM, char * );
ULONG hb_strAt( char *, long, char *, long );
PITEM hb_itemReturn( PITEM );
#define STACK_INITITEMS 100
#define STACK_EXPANDITEMS 20
@@ -2206,4 +2207,23 @@ HARBOUR PCOUNT()
_retni( wRet );
}
HARBOUR PVALUE() /* PValue( <nArg> ) */
{
WORD wParam = _parni( 1 ); /* Get parameter */
PITEM pBase = stack.pItems + stack.pBase->wBase;
/* Skip function + self */
if( wParam && wParam <= pBase->wParams ) /* Valid number */
hb_itemReturn( pBase + 1 + wParam );
else
{
PITEM pError = _errNew();
_errPutDescription(pError, "Argument error: PVALUE");
_errLaunch(pError);
_errRelease(pError);
_ret();
}
}

View File

@@ -0,0 +1,21 @@
//
// MultiArg
//
// Testing of multiple arguments
//
// Date : 1999/05/24
//
function Main()
ShoutArg( 1, "1", 2.5, .T. )
ShoutArg( 2, "1", 2.5, .T. )
ShoutArg( 3, "1", 2.5, .T. )
ShoutArg( 4, "1", 2.5, .T. )
ShoutArg( 5, "1", 2.5, .T. )
return nil
function ShoutArg( nArg, x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 )
QOut( nArg, "==", PValue( nArg ) )
return nil

View File

@@ -116,6 +116,7 @@ HARBOUR TANH();
HARBOUR STRDUMP();
HARBOUR STRTOKEN();
HARBOUR ROT13();
HARBOUR PVALUE();
/* Same story.
@@ -233,5 +234,6 @@ static SYMBOL symbols[] = {
{ "TANH", FS_PUBLIC, TANH , 0 },
{ "STRDUMP", FS_PUBLIC, STRDUMP , 0 },
{ "STRTOKEN", FS_PUBLIC, STRTOKEN , 0 },
{ "ROT13", FS_PUBLIC, ROT13 , 0 }
{ "ROT13", FS_PUBLIC, ROT13 , 0 },
{ "PVALUE", FS_PUBLIC, PVALUE , 0 }
};