unsigned int uint ;
register int j ;
int i,c,rjust,width,ndigit,ndfnd,zfill;
- char *oldfmt,*s1,buf[40];
+ char *oldfmt,*s1,buf[129];
nextarg = args;
while (c = *fmt++) {
break;
#ifndef NOFLOAT
case 'e':
+ if (ndigit >= sizeof(buf)) ndigit = sizeof(buf) - 1;
geta(&dbl,wsize(dbl)) ;
s = _pscien(dbl,s,ndigit,ndfnd);
break;
case 'f':
+ if (ndigit >= sizeof(buf)) ndigit = sizeof(buf) - 1;
geta(&dbl,wsize(dbl)) ;
s = _pfloat(dbl,s,ndigit,ndfnd);
break;