Metropoli BBS
VIEWER: aplinit.c MODE: TEXT (ASCII)
/* Copyright (C) 1993, 1997 by Thomas Glen Smith. All Rights Reserved. */
/* aplinit.c APL2 V1.0.1 ***********************************************
* Called by apl.                                                       *
* Certain variables are required globally in the APL environment.      *
* Aplinit initializes those variables.                                 *
***********************************************************************/
#define INCLUDES APLCB+APLDEBUG+APLFUNCI+APLMEM+TREE
#include "includes.h"
void aplinit(void)
{
#include "quadext.h"
	Chrcopy; Getcb; Quadinit; Treeroot;
	extern int aplcurs; /* # chars put in current output line.		*/
	extern int aplerr; /* Set to 0 before calling an APL function,	*/
		/* may set to indicate error occurred.					*/
	extern char *aplfile; /* Starts null. May later contain pointer	*/
		/* to file most recently	ref. in a )SAVE or )LOAD command.	*/
	extern double fuzz; /* Fuzz contains the comparison tolerance,	*/
		/* e.g. if a number is within plus or minus this value of	*/
		/* an integer, then it is considered to be equal to that	*/
		/* integer.										*/
	extern int indxorg; /* Indxorg must contain either a 0 or 1.	*/
		/* When indxorg=0, the first element along each axis is	*/
		/* selected by the index 0, and when indxorg=1, the index	*/
		/* would be 1.  See also the indxsub routine.			*/
	extern double pp; /* Print precision.						*/
	extern Treelist treehdr; /* Treehdr is the state		*/
		/* indicator and variable pool stack.					*/
	extern struct aplcb *aplwkcb; /* Aplwkcb is a pointer to the	*/
		/* delayed workspace command aplcb. Certain commands such	*/
		/* as )OFF and )LOAD must be deferred.					*/
	extern int aplwkcd; /* Code indicates which is deferred.		*/
	extern int aplfont; /* =1 if special font is used to print.		*/
	extern int apldigs; /* Maximum places left of d.p. in output.	*/
	extern int aplquiet; /* =1 if no copywrite notice. */
	Aplcb qfc;

#if APL_DEBUG
void mem_init();
mem_init(); /* initialize the memory debugging package */
#endif
	apldigs = 15;
	aplcurs = 0;
	aplerr = 0;
	aplfile = NULL;
	fuzz = 1.0e-13;
	indxorg = 1;
	pp = 8;
	quadinit(); /* initialize external name variables */
	treehdr = NULL;
	treeroot(NULL); /* set treehdr */
	aplwkcb = NULL;
	aplwkcd = 0;
	aplfont = 0;
	aplquiet = 0;
	qfc = getcb(NULL,5,APLCHAR+APLTEMP,1,NULL);
	if (qfc != NULL) {
		chrcopy(qfc->aplptr.aplchar,".,*0_",5,1);
		assign(quadfc,qfc);
	}
}
[ RETURN TO DIRECTORY ]