/* Copyright (C) 1996 by Thomas Glen Smith. All Rights Reserved. */
/* formbtk APL2 V1.0.0 *************************************************
* Called by formatk after to do main formatting loop. *
***********************************************************************/
#define INCLUDES APLCB+APLCHDEF
#include "includes.h"
Aplcb formbtk(rite,out,colcb)
Aplcb rite,out,colcb;
{
extern char *aplchar[]; /* global APL character array */
Aplcb *cb,cc;
int col,cols,kw,mw,row,rows;
double *ip;
char *ich, *och, *pch, *sch;
rows = *(rite->apldim);
cols = *(rite->apldim + 1);
ip = rite->aplptr.apldata;
och = out->aplptr.aplchar;
for (row = 0; row < rows; row++) {
cb = colcb->aplptr.aplapl;
for (col = 0; col < cols; col++) {
sch = och;
cc = *cb++; /* real part */
kw = *(cc->apldim + 1);
if (*ip++ == 0e0)
*och++ = '0';
else {
ich = cc->aplptr.aplchar + row * kw;
pch = ich + kw;
while(*ich == ' ') ich++; /* skip leading blanks */
while(' ' != *ich && ich < pch) *och++ = *ich++;
}
cc = *cb++; /* imaginary part */
mw = *(cc->apldim + 1);
if (*ip++ != 0e0) {
*och++ = *(aplchar[APL_J]);
ich = cc->aplptr.aplchar + row * mw;
pch = ich + mw;
while(*ich == ' ') ich++; /* skip leading blanks */
while(' ' != *ich && ich < pch) *och++ = *ich++;
}
sch += kw + mw + 1 + (col < (cols - 1));
while(och < sch) *och++ = ' ';
}
}
}