/*Copyright (C) 1992, 1995 by Thomas Glen Smith. All Rights Reserved.*/ /* aplreae APL2 V1.0.0 ************************************************* * Called from aplread after the file has been read to create an APL * * variable from the input, naming it "file." * ***********************************************************************/ #define INCLUDES APLCB+APLMEM #include "includes.h" typedef struct lines *Lines; struct lines { Lines nextline; /* Next line in queue. */ int tlen; /* Length of this line. */ char th; /* Beginning of string. */ }; void aplreae(hdr,cols,rows) Lines hdr; /* Head of lines queue. */ int cols; /* Columns in output. */ int rows; /* Rows in output. */ { Assign; Chrcopy; Getcb; extern int aplerr; char *op; Lines cur,nxt; Aplcb out; int i; out = getcb(NULL,rows*cols,APLCHAR+APLTEMP,2,NULL); /* Get aplcb. */ if (out != NULL) { *(out->apldim) = rows; /* Fill in dimension 1. */ *(out->apldim + 1) = cols; /* Fill in dimension 2. */ op = out->aplptr.aplchar; /* First output location */ for (cur = hdr; cur != NULL; cur = cur->nextline) { op = chrcopy(op, &(cur->th), cur->tlen, 1); /* copy */ if (0 < (i = cols - cur->tlen)) op = chrcopy(op, " ", i, 0); /* pad */ } out = assign("file",out); /* Go do assignment. */ } }