Metropoli BBS
VIEWER: apledno.c MODE: TEXT (ASCII)
/*Copyright (C) 1992, 1995 by Thomas Glen Smith.	All Rights Reserved.*/
/* apledno APL2 V1.0.0 *************************************************
* Called by apledmd, apledqu, and apleddl.                             *
* Called during DEL edit processing to obtain a numeric value from a	 *
* parsed token. Error messages will be printed, and a -1.0 will be	 *
* returned if a proper value cannot be obtained.	Only positive values *
* are considered proper.										 *
***********************************************************************/
#define INCLUDES APLCB+APLTOKEN
#include "includes.h"
double apledno(tok,cp,stmtlen)
Apltoken tok;	/* Token from which number is to be obtained.*/
char *cp;		/* Pointer to current input.				*/
int stmtlen;	/* Length of current input.				*/
{
	Dblne; Execmsg; Value;
	extern int aplerr;
	Aplcb in;
	double ret;
	int tempsave;

	if (tok->token_code != VECTOR_TOKEN) {
		execmsg(cp,stmtlen,0,"Number not where expected in DEL edit.");
		return(-1.0);
	}
	in = tok->token_ptr.token_vector;
	in->aplflags -= (tempsave = in->aplflags & APLTEMP);
	ret = value(in); /* number */
	in->aplflags += tempsave; /* restore temp indicator */
	if (aplerr) {
		execmsg(cp,stmtlen,0,NULL); /* print error message */
		aplerr = 0;
		return(-1.0);
	}
	if (ret < 0.0) {
		execmsg(cp,stmtlen,0,"Invalid negative number in DEL edit.");
		return(-1.0);
	}
	return(ret);
}
[ RETURN TO DIRECTORY ]