/* Copyright (C) 1992 by Thomas Glen Smith. All Rights Reserved. */ /* quadoutc APL2 V1.0.0 ************************************************ * Quadoutc is common to both quadout and qquadout. The APL2 version * * differs only in that it calls formdft instead of form. * ***********************************************************************/ #define INCLUDES APLCB+STDIO #include "includes.h" Aplcb quadoutc(rite,nl) Aplcb rite; /* apl variable to be printed */ int nl; /* 1 if newline is to follow output */ { Aplmsg; Aplnewl; Errinit; Formdft; Perm; extern int aplcurs,aplerr; int tempsave; char *cp; Aplcb out=NULL; if (errinit()) { printf("%s",aplmsg(aplerr)); aplnewl(); /* Define new output line. */ return(rite); } tempsave = rite->aplflags & APLTEMP; out = formdft(perm(rite)); rite->aplflags += tempsave; /* restore flag */ if (errinit()) { printf("%s",aplmsg(aplerr)); aplnewl(); /* Define new output line. */ return(rite); } if (0==out->aplcount) { /* empty? */ printf("."); aplcurs++; /* Bump count of output chracters in line. */ } else { /* recursively call quadrec to print data */ cp = out->aplptr.aplchar; quadrec(out->aplrank,out->apldim,&cp,nl); } if (nl) aplnewl(); /* Define new output line. */ endoper(out); return(rite); }