/*Copyright (C) 1992, 1995 by Thomas Glen Smith. All Rights Reserved.*/
/* aplgrous APL2 V1.0.0 ************************************************
* Called from aplgroup after the stack of new group member names has *
* been created, aplgrous will create the new group name aplcb and call *
* assign with it. *
***********************************************************************/
#define INCLUDES APLCB+APLTOKEN+STRING
#include "includes.h"
void aplgrous(pgrphdr,rows,cols,nameptr)
Apltoken *pgrphdr; /* fifo stack of new names */
int rows; /* ptr to new row count */
int cols; /* ptr to new col count */
char *nameptr; /* group name */
{
Aplstr; Assign; Getcb;
Aplcb out;
Apltoken tok;
char *cp;
out = getcb(NULL,rows*cols,APLCHAR+APLTEMP+APLGROUP,2,NULL);
if (out == NULL) return; /* out of storage */
*(out->apldim) = rows;
*(out->apldim + 1) = cols;
cp = out->aplptr.aplchar;
for (tok = *pgrphdr; tok != NULL;
tok = tok->token_queue.token_next_ptr)
cp = aplstr(cp, tok->token_ptr.token_string, cols);
out = assign(nameptr,out); /* add name to variable pool */
}