41 lines
1.4 KiB
C
41 lines
1.4 KiB
C
/*****************************************************************************
|
|
ExeLst()
|
|
This function executes a less-than-sign (<) command.
|
|
n< Iterate n times
|
|
*****************************************************************************/
|
|
#include "zport.h" /* define portability identifiers */
|
|
#include "tecoc.h" /* define general identifiers */
|
|
#include "defext.h" /* define external global variables */
|
|
#include "deferr.h" /* define identifiers for error messages */
|
|
DEFAULT ExeLst() /* execute a < command */
|
|
{
|
|
DBGFEN(1,"ExeLst",NULL);
|
|
if (++LStTop >= LPS_SIZE) { /* if loop stack is full */
|
|
ErrMsg(ERR_PDO); /* push-down list overflow */
|
|
DBGFEX(1,DbgFNm,"FAILURE");
|
|
return FAILURE;
|
|
}
|
|
if (EStTop == EStBot) { /* if no numeric argument */
|
|
NArgmt = INFINITE; /* make it an infinite loop */
|
|
} else {
|
|
if (GetNmA() == FAILURE) { /* get numeric argmument */
|
|
DBGFEX(1,DbgFNm,"FAILURE");
|
|
return FAILURE;
|
|
}
|
|
if (NArgmt <= 0) { /* if null loop */
|
|
if (FlowEL()== FAILURE) { /* flow to end of loop */
|
|
DBGFEX(1,DbgFNm,"FAILURE");
|
|
return FAILURE;
|
|
}
|
|
CmdMod = '\0'; /* clear modifiers flags */
|
|
DBGFEX(1,DbgFNm,"SUCCESS");
|
|
return SUCCESS;
|
|
}
|
|
}
|
|
LStack[LStTop].LIndex = NArgmt; /* store loop index */
|
|
LStack[LStTop].LAddr = CBfPtr; /* store loop start */
|
|
CmdMod = '\0'; /* clear modifiers flags */
|
|
DBGFEX(1,DbgFNm,"SUCCESS");
|
|
return SUCCESS;
|
|
}
|