/*Copyright (C) 1992, 1995 by Thomas Glen Smith. All Rights Reserved.*/ /* execqex APL2 V1.0.0 ************************************************* * System function quad_ex, expunge. * ***********************************************************************/ #define INCLUDES APLCB+TREE #include "includes.h" Aplcb execqex(rite) Aplcb rite; { Execqncs; int execqext(); return(execqncs(execqext,rite)); } /* execqext is called by aplerase. */ int execqext(nameok,p) /* Also used by aplerase. */ int nameok; /* nonzero if current name is well formed */ struct avlnode *p; /* node for current name */ { Leafdel; int k; Aplcb wrk; if (!nameok) k = 0; /* invalid name */ else { k = 1; /* default = name available for use */ if (NULL != p && NULL != (wrk = p->avlleaf)) if (wrk->aplflags & APLLABEL) k = 0; /* label */ else { /* must be variable or function */ leafdel(p->avlleaf); /* free function or var */ p->avlleaf = NULL; /* indicate name available */ } } return(k); }