2000-11-21 18:35 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/pp/ppcomp.c
* Corrected 1 compiler warning.
* source/pp/ppcore.c
+ Added s_bArray support logic to WorkDefine()
* source/rtl/idle.c
* Revered order of hb_gcCollectAll() and hb_releaseCPU();
This commit is contained in:
@@ -1,3 +1,13 @@
|
||||
2000-11-21 18:35 UTC+0800 Ron Pinkas <ron@profit-master.com>
|
||||
* source/pp/ppcomp.c
|
||||
* Corrected 1 compiler warning.
|
||||
|
||||
* source/pp/ppcore.c
|
||||
+ Added s_bArray support logic to WorkDefine()
|
||||
|
||||
* source/rtl/idle.c
|
||||
* Revered order of hb_gcCollectAll() and hb_releaseCPU();
|
||||
|
||||
2000-11-21 23:42 UTC-0100 JFL (mafact) <jfl@mafact.com>
|
||||
* source/vm/classes.c
|
||||
* minor modif after the last Stack tests
|
||||
|
||||
@@ -270,7 +270,9 @@ int hb_pp_ReadRules( void )
|
||||
if( rdlen < 0 )
|
||||
{
|
||||
if( hb_comp_files.iFiles == 1 )
|
||||
{
|
||||
return 0; /* we have reached the main EOF */
|
||||
}
|
||||
else
|
||||
{
|
||||
CloseInclude();
|
||||
@@ -280,7 +282,5 @@ int hb_pp_ReadRules( void )
|
||||
*s_szLine = '\0';
|
||||
}
|
||||
}
|
||||
|
||||
return lens;
|
||||
}
|
||||
|
||||
|
||||
@@ -157,6 +157,9 @@ int hb_pp_nCondCompile = 0;
|
||||
|
||||
char * hb_pp_STD_CH = NULL;
|
||||
|
||||
/* Ron Pinkas added 2000-11-21 */
|
||||
static BOOL s_bArray = FALSE;
|
||||
|
||||
/* Table with parse errors */
|
||||
char * hb_pp_szErrors[] =
|
||||
{
|
||||
@@ -186,10 +189,6 @@ char * hb_pp_szWarnings[] =
|
||||
"1No directives in command definitions file"
|
||||
};
|
||||
|
||||
/*
|
||||
extern BOOL bDebug;
|
||||
*/
|
||||
|
||||
void hb_pp_SetRules( HB_INCLUDE_FUNC_PTR hb_compInclude, BOOL hb_comp_bQuiet )
|
||||
{
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_pp_SetRules()"));
|
||||
@@ -964,6 +963,11 @@ int hb_pp_ParseExpression( char * sLine, char * sOutLine )
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
printf( "Line: >%s<\n", ptri );
|
||||
printf( "Out: >%s<\n", ptro );
|
||||
#endif
|
||||
|
||||
/* Look for definitions from #translate */
|
||||
stcmd = hb_pp_topTranslate;
|
||||
while( stcmd != NULL )
|
||||
@@ -971,10 +975,6 @@ int hb_pp_ParseExpression( char * sLine, char * sOutLine )
|
||||
ptri = sLine + isdvig;
|
||||
lenToken = strlen(stcmd->name);
|
||||
|
||||
#if 0
|
||||
printf( "Line: >%s<\n", ptri );
|
||||
#endif
|
||||
|
||||
while( ( ifou = md_strAt( stcmd->name, lenToken, ptri, TRUE, FALSE, FALSE )) > 0 )
|
||||
{
|
||||
ptri += ifou -1;
|
||||
@@ -1111,23 +1111,52 @@ static int WorkDefine( char ** ptri, char * ptro, DEFINES * stdef )
|
||||
lens = hb_pp_strocpy( ptro,stdef->value );
|
||||
}
|
||||
else
|
||||
{
|
||||
HB_SKIPTABSPACES( *ptri );
|
||||
if( **ptri == '(' )
|
||||
{
|
||||
HB_SKIPTABSPACES( *ptri );
|
||||
|
||||
if( **ptri == '(' )
|
||||
{
|
||||
npars = 0; ptr = *ptri;
|
||||
|
||||
do
|
||||
{
|
||||
npars = 0; ptr = *ptri;
|
||||
do
|
||||
{
|
||||
ptr++;
|
||||
if( NextParm( &ptr, NULL ) > 0 ) npars++;
|
||||
}
|
||||
while( *ptr != ')' && *ptr != '\0' );
|
||||
if( *ptr == ')' && stdef->npars == npars )
|
||||
lens = WorkPseudoF( ptri, ptro, stdef );
|
||||
else return -1;
|
||||
ptr++;
|
||||
|
||||
if( NextParm( &ptr, NULL ) > 0 )
|
||||
{
|
||||
npars++;
|
||||
}
|
||||
}
|
||||
else return -1;
|
||||
}
|
||||
while( *ptr != ')' && *ptr != '\0' );
|
||||
|
||||
if( *ptr == ')' && stdef->npars == npars )
|
||||
{
|
||||
/* Ron Pinkas added 2000-11-21 */
|
||||
char *pTmp = ptr + 1;
|
||||
|
||||
while( *pTmp && ( *pTmp == ' ' || *pTmp == '\t' ) )
|
||||
{
|
||||
pTmp++;
|
||||
}
|
||||
if( *pTmp == '[' )
|
||||
{
|
||||
s_bArray = TRUE;
|
||||
}
|
||||
/* END - Ron Pinkas added 2000-11-21 */
|
||||
|
||||
lens = WorkPseudoF( ptri, ptro, stdef );
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return lens;
|
||||
}
|
||||
|
||||
@@ -3049,7 +3078,6 @@ static int NextWord( char ** sSource, char * sDest, BOOL lLower )
|
||||
static int NextName( char ** sSource, char * sDest )
|
||||
{
|
||||
/* Ron Pinkas added 2000-11-08 */
|
||||
static BOOL s_bArray = FALSE;
|
||||
char cLastChar = '\0', *pString = NULL, *pTmp;
|
||||
/* END - Ron Pinkas added 2000-11-08 */
|
||||
|
||||
@@ -3100,6 +3128,7 @@ static int NextName( char ** sSource, char * sDest )
|
||||
**sSource = '\0';
|
||||
if( strchr( pString, '"' ) == NULL )
|
||||
{
|
||||
printf( "OOps!\n" );
|
||||
*pString = '"';
|
||||
**sSource = '"';
|
||||
}
|
||||
@@ -3253,12 +3282,11 @@ static int NextParm( char ** sSource, char * sDest )
|
||||
if( sDest != NULL )
|
||||
{
|
||||
*sDest = '\0';
|
||||
#if 0
|
||||
printf( "NextParm: >%s<\n", sDest - lenName );
|
||||
#endif
|
||||
}
|
||||
|
||||
#if 0
|
||||
printf( "NextParm: >%s<\n", sDest - lenName );
|
||||
#endif
|
||||
|
||||
return lenName;
|
||||
}
|
||||
|
||||
|
||||
@@ -108,9 +108,9 @@ void hb_idleState( void )
|
||||
if( ! s_bIamIdle )
|
||||
{
|
||||
s_bIamIdle = TRUE;
|
||||
hb_releaseCPU();
|
||||
hb_gcCollectAll();
|
||||
|
||||
hb_releaseCPU();
|
||||
|
||||
if( s_pIdleTasks )
|
||||
{
|
||||
hb_vmEvalBlock( s_pIdleTasks + s_uiIdleTask );
|
||||
@@ -148,7 +148,7 @@ HB_FUNC( HB_IDLESTATE )
|
||||
HB_FUNC( HB_IDLEADD )
|
||||
{
|
||||
HB_ITEM_PTR pBlock = hb_param( 1, HB_IT_BLOCK );
|
||||
|
||||
|
||||
if( pBlock )
|
||||
{
|
||||
++s_uiIdleMaxTask;
|
||||
@@ -164,8 +164,8 @@ HB_FUNC( HB_IDLEADD )
|
||||
/* prevent releasing if this block if it is no longer stored inside of
|
||||
* a harbour variable
|
||||
*/
|
||||
hb_gcLockItem( pBlock );
|
||||
|
||||
hb_gcLockItem( pBlock );
|
||||
|
||||
hb_retnl( ( ULONG ) pBlock->item.asBlock.value ); /* TODO: access to pointers from harbour code */
|
||||
}
|
||||
else
|
||||
@@ -176,13 +176,13 @@ HB_FUNC( HB_IDLEADD )
|
||||
HB_FUNC( HB_IDLEDEL )
|
||||
{
|
||||
BOOL bFound = FALSE;
|
||||
|
||||
|
||||
if( s_pIdleTasks && ( hb_parinfo( 1 ) & HB_IT_NUMERIC ) )
|
||||
{
|
||||
SHORT iTask;
|
||||
ULONG ulID = hb_parnl( 1 ); /* TODO: access to pointers from harbour code */
|
||||
HB_ITEM_PTR pItem = s_pIdleTasks;
|
||||
|
||||
|
||||
iTask = 0;
|
||||
while( iTask < s_uiIdleMaxTask && !bFound )
|
||||
{
|
||||
@@ -190,12 +190,12 @@ HB_FUNC( HB_IDLEDEL )
|
||||
{
|
||||
hb_gcUnlockItem( pItem );
|
||||
hb_itemClear( hb_itemReturn( pItem ) ); /* return a codeblock */
|
||||
|
||||
|
||||
--s_uiIdleMaxTask;
|
||||
if( s_uiIdleMaxTask )
|
||||
{
|
||||
if( iTask != s_uiIdleMaxTask )
|
||||
memcpy( &s_pIdleTasks[ iTask ], &s_pIdleTasks[ iTask + 1 ],
|
||||
memcpy( &s_pIdleTasks[ iTask ], &s_pIdleTasks[ iTask + 1 ],
|
||||
sizeof( HB_ITEM ) * (s_uiIdleMaxTask - iTask) );
|
||||
s_pIdleTasks = ( HB_ITEM_PTR ) hb_xrealloc( s_pIdleTasks, sizeof( HB_ITEM ) * s_uiIdleMaxTask );
|
||||
}
|
||||
@@ -206,7 +206,7 @@ HB_FUNC( HB_IDLEDEL )
|
||||
}
|
||||
bFound = TRUE;
|
||||
}
|
||||
++pItem;
|
||||
++pItem;
|
||||
++iTask;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user