/*Copyright (C) 1992, 1995 by Thomas Glen Smith. All Rights Reserved.*/ /* aplwksp APL2 V1.0.0 ************************************************* * Called by funcsusq to process commands beginning with a right * * parenthesis. Returns 1 if processing is to continue, 0 to terminate. * ***********************************************************************/ #define INCLUDES APLCB+APLCHDEF #include "includes.h" int aplwksp(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 */ { Aplcpy; Apldrop; Aplerase; Aplgroup; Aplgrp; Aplgrps; Apllib; Aplmsg; Aplread; Aplrun; Aplsave; Aplsi; Aplwrite; Aplwsid; Aplwksq; Aplwksr; Endoper; Errstop; Execmsg; #include "aplwkcd.h" #include "aplwkcm.h" extern int aplerr; int code,i,*ip,ret=1; for (i = 0; aplerr == 0; i++) if ((NULL == (ip = table[i])) || aplwksq(ip,&cp,cpend)) break; if (aplerr == 0) switch (++i) { case CLEAR: /* these codes must be deferred */ case LOAD: case OFF: ret = 0; /* terminate loop in caller */ rite = aplwksr(rite,cp,cpend,i); break; case COPY: aplcpy(rite,cp,cpend,0); break; case DROP: apldrop(rite,cp,cpend); break; case ERASE: aplerase(rite,cp,cpend); break; case FNS: aplgrps(rite,cp,cpend,3); break; case GROUP: aplgroup(rite,cp,cpend); break; case GRP: aplgrp(rite,cp,cpend); break; case GRPS: aplgrps(rite,cp,cpend,1); break; case LIB: apllib(rite,cp,cpend); break; case PCOPY: aplcpy(rite,cp,cpend,1); break; case READ: aplread(rite,cp,cpend); break; case RUN: aplrun(rite,cp,cpend); break; case SAVE: aplsave(rite,cp,cpend); break; case SI: aplsi(rite,cp,cpend,0); break; case SINL: aplsi(rite,cp,cpend,1); break; case VARS: aplgrps(rite,cp,cpend,2); break; case WRITE: aplwrite(rite,cp,cpend); break; case WSID: aplwsid(rite,cp,cpend); break; default: aplerr = 99; /* unknown command */ break; } /* end switch */ if (aplerr) execmsg(rite->aplptr.aplchar, rite->aplcount, 0, aplmsg(aplerr)); if (rite != NULL) endoper(rite); return(ret); }