/*Copyright (C) 1992, 1996 by Thomas Glen Smith. All Rights Reserved.*/
/* aplrun APL2 V1.0.0 **************************************************
* Called from aplwksp to do )RUN. *
***********************************************************************/
#define INCLUDES APLCB+APLMEM+STDIO
#include "includes.h"
void aplrun(rite,cp,cpend)
Aplcb rite; /* aplcb for command text */
char *cp; /* Pointer to char immediately after right parenthesis */
char *cpend; /* Pointer to end of command text */
{
Aplfopn; Lifo;
extern int aplerr;
typedef struct aplfpq *Aplfpq;
struct aplfpq {
Aplfpq fpnxt; /* next on stack */
FILE *aplfp;
};
extern Aplfpq aplfphd; /* top of input stack */
Aplfpq top;
FILE *fp;
if (NULL == (fp = aplfopn(cp,cpend,"r")))
return; /* Couldn't open input file. */
if (NULL != (top = malloc(sizeof(struct aplfpq)))) {
top = lifo(&aplfphd,top); /* place on stack */
top->aplfp = fp; /* put file ptr in stack */
}
else fclose(fp); /* out of storage - close file */
#if APL_DOS
errno = 0; /* clear any error for open/close */
#endif
}