/* Copyright (C) 1993 by Thomas Glen Smith. All Rights Reserved. */
/* dtacopy APL2 V1.0.0 *************************************************
* Called by reshape, reverse, squadix, and without. *
* Copies any of the supported APL data types. *
***********************************************************************/
#define INCLUDES APLCB
#include "includes.h"
void *dtacopy(to,from,count,incr,type)
void *to,*from;
int count,incr,type;
{
Aplcopy; Chrcopy; Dblcopy; Intcopy;
Aplcb *myto,*myfrom;
int i;
void *wrk;
switch (type) {
case APLCPLX:
for (i = count; i; i--) {
to = dblcopy(to,from,2,1);
((double *)from) += incr * 2;
}
return(to);
case APLNUMB:
return(dblcopy(to,from,count,incr));
case APLINT:
return(intcopy(to,from,count,incr));
case APLCHAR:
return(chrcopy(to,from,count,incr));
case APLAPL:
myto = to;
myfrom = from;
while(count--) {
*myto++ = aplcopy(*myfrom);
myfrom += incr;
}
return(myto);
} /* end switch */
return(NULL); /* bad */
}