Metropoli BBS
VIEWER: aplediw.c MODE: TEXT (ASCII)
/*Copyright (C) 1992, 1995 by Thomas Glen Smith.  All Rights Reserved.*/
/* aplediw APL2 V1.0.0 *************************************************
* Called from aplediu to prepare an existing function definition for   *
* DEL editing.                                                         *
***********************************************************************/
#define INCLUDES APLCB+APLCHDEF+APLED+APLFUNCI+APLMEM+APLTOKEN
#include "includes.h"
Apled aplediw(e,fun)
Apledst e;	/* Edit common area.					*/
Aplfunc fun;	/* aplfunc function definition structure. 	*/
{
	Apledcm; Apledix;
	extern int aplerr;
	Apltoken labels,tokhdr;
	Apled olded,newed=NULL,edhdr=NULL;
	int istmtno,stmtlen,tokcnt;

	labels = fun->funclabs;
	for (istmtno = 0; istmtno < fun->funcstmt; istmtno++) {
		tokhdr = *(fun->functokp + istmtno);
		tokcnt = *(fun->functokc + istmtno);
		if (labels != NULL && labels->token_offset == istmtno) {
			tokcnt += 2;
			labels = labels->token_queue.token_next_ptr;
		}
		newed = apledix(e,newed,tokhdr,tokcnt,(double) istmtno,0);
		if (newed == NULL)
			break; /* out of memory - aplerr already set */
		if (tokhdr->token_code == CAP_NULL) {
			stmtlen = *(fun->functext->apldim + 1);
			apledcm(newed, /* capture comment text */
				fun->functext->aplptr.aplchar + istmtno * stmtlen,
				stmtlen);
		}
	}
}
[ RETURN TO DIRECTORY ]