Metropoli BBS
VIEWER: aplwkst.c MODE: TEXT (ASCII)
/*Copyright (C) 1992, 1995 by Thomas Glen Smith.  All Rights Reserved.*/
/* aplwkst APL2 V1.0.0 *************************************************
* Called by apl to process commands beginning with a right parenthesis *
* that have been deferred for execution.                               *
***********************************************************************/
#define MAXLINE 100
#define INCLUDES APLCB+APLCHDEF+STRING
#include "includes.h"
int aplwkst()
{
	Aplclear; Aplload; Endoper;
#include "aplwkcd.h"
	extern int aplerr;
	extern struct aplcb *aplwkcb;
	extern char *aplwkcp,*aplwken;
	extern int aplwkcd;
	char *cp,*cpend,wrk[MAXLINE];
	int ret=1;

	aplerr = 0;
	switch (aplwkcd) {
		case CLEAR:	
			aplclear();
			break;
		case LOAD:
			if (MAXLINE <= strlen(aplwkcb->aplptr.aplchar))
				aplerr = 999; /* internal error */
			else {
				strcpy(wrk, aplwkcb->aplptr.aplchar);
				cp = wrk + (aplwkcp - aplwkcb->aplptr.aplchar);
				cpend = cp + (aplwken - aplwkcp);
				endoper(aplwkcb);
				aplwkcb = NULL;
				aplwkcp = aplwken = NULL;
				aplload(wrk,cp,cpend);
			}
			break;
		case OFF:	
			ret = 0; /* terminate loop in caller */
			break;
		default:
			ret = 1; /* spurious */
			break;
	} /* end switch */
	if (aplwkcb != NULL)
		endoper(aplwkcb);
	aplwkcb = NULL;
	aplwkcd = 0;
	return(ret);
}
[ RETURN TO DIRECTORY ]