Added E, G, and g format
This commit is contained in:
parent
3e66a45a0d
commit
38e7921a9d
|
@ -5,6 +5,7 @@
|
||||||
#ifndef NOFLOAT
|
#ifndef NOFLOAT
|
||||||
extern char *_pfloat();
|
extern char *_pfloat();
|
||||||
extern char *_pscien();
|
extern char *_pscien();
|
||||||
|
extern char *gcvt();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# define wsize(par) ( (sizeof par) / sizeof (int) )
|
# define wsize(par) ( (sizeof par) / sizeof (int) )
|
||||||
|
@ -74,6 +75,7 @@ _doprnt(fmt,ap,stream)
|
||||||
#endif
|
#endif
|
||||||
#ifndef NOFLOAT
|
#ifndef NOFLOAT
|
||||||
double dbl ;
|
double dbl ;
|
||||||
|
int capitalE = 0;
|
||||||
#endif
|
#endif
|
||||||
int inte ;
|
int inte ;
|
||||||
unsigned int uint ;
|
unsigned int uint ;
|
||||||
|
@ -200,6 +202,9 @@ _doprnt(fmt,ap,stream)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#ifndef NOFLOAT
|
#ifndef NOFLOAT
|
||||||
|
case 'E':
|
||||||
|
capitalE = 1;
|
||||||
|
/* fall through */
|
||||||
case 'e':
|
case 'e':
|
||||||
if (ndigit >= sizeof(buf)) ndigit = sizeof(buf) - 1;
|
if (ndigit >= sizeof(buf)) ndigit = sizeof(buf) - 1;
|
||||||
dbl = va_arg(ap, double);
|
dbl = va_arg(ap, double);
|
||||||
|
@ -210,6 +215,14 @@ _doprnt(fmt,ap,stream)
|
||||||
dbl = va_arg(ap, double);
|
dbl = va_arg(ap, double);
|
||||||
s = _pfloat(dbl,s,ndigit,ndfnd);
|
s = _pfloat(dbl,s,ndigit,ndfnd);
|
||||||
break;
|
break;
|
||||||
|
case 'G':
|
||||||
|
capitalE = 1;
|
||||||
|
/* fall through */
|
||||||
|
case 'g':
|
||||||
|
if (ndigit >= sizeof(buf)) ndigit = sizeof(buf) - 1;
|
||||||
|
dbl = va_arg(ap, double);
|
||||||
|
s = gcvt(dbl, ndigit+1, s) + strlen(s);
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
case 'r':
|
case 'r':
|
||||||
ap = va_arg(ap, char *);
|
ap = va_arg(ap, char *);
|
||||||
|
@ -217,6 +230,14 @@ _doprnt(fmt,ap,stream)
|
||||||
fmt=oldfmt;
|
fmt=oldfmt;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
#ifndef NOFLOAT
|
||||||
|
if (capitalE) {
|
||||||
|
register char *p = buf;
|
||||||
|
capitalE=0;
|
||||||
|
while (*p && *p != 'e') p++;
|
||||||
|
if (*p == 'e') *p = 'E';
|
||||||
|
}
|
||||||
|
#endif
|
||||||
j = s - s1;
|
j = s - s1;
|
||||||
if ((c = width - j) > 0)
|
if ((c = width - j) > 0)
|
||||||
if (rjust == 0)
|
if (rjust == 0)
|
||||||
|
|
Loading…
Reference in a new issue