/*Copyright (C) 1992, 1994 by Thomas Glen Smith. All Rights Reserved.*/
/* formate APL2 V1.0.0 *************************************************
* Called from formatm to fill in e-notation widths. *
***********************************************************************/
#define INCLUDES APLCB+FORM
#include "includes.h"
int formate(rite,cba)
Aplcb rite,cba;
{
int *cp,i,*pp,*sp,*wp,wc,wn;
cp = Chrcb;
pp = Precb;
wp = Widcb;
sp = Signcb;
for(i = *(cba->apldim + 1) - 1; i > -1; i--)
if ((*(wp + i) == 0) /* Width specified is zero, and */
&& (0 > *(pp + i))) { /* precision specified less than zero. */
wn = 6 /* 1 for decimal point, 1 for "e", */
/* 1 for sign of exponent, */
/* 2 for exponent, 1 for blank. */
+ *(sp + i) /* 1 for sign */
- *(pp + i); /* plus number digits in multiplier. */
wc = 1 + *(cp + i); /* Maximum char length in col. */
*(wp + i) = (wc > wn) ? wc : wn; /* Set column width. */
}
}