/*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);
}