/* Copyright (C) 1992 by Thomas Glen Smith. All Rights Reserved. */ /* quadrec APL2 V1.0.0 ************************************************* * Called from quadoutc initially, and recursively called by itself to * * print on standard output an APL variable. * ***********************************************************************/ #define INCLUDES STDIO+APLCB #include "includes.h" quadrec(rank,dimptr,pcp,lasttime) int rank; /* Number of dimensions pointed to by dimptr. */ int *dimptr; /* Dimensions of input pointed to by pcp. */ char *pcp[]; /* Character data to be displayed. */ int lasttime; /* 1 if last time call. */ { Aplnewl; Aplputch; extern int aplcurs; int i,last; if (dimptr == NULL) { aplputch(**pcp); aplcurs++; /* Bump count of characters in output line. */ } else for (i=*dimptr; i>0; i--) { if (rank > 1) { last = (i == 1 && lasttime == 1); quadrec(rank-1,dimptr+1,pcp,last); if (!last) aplnewl(); /* Define a new line. */ } else { aplputch(*(*pcp)++); aplcurs++; /* Bump count of characters in output line. */ } } }