summaryrefslogtreecommitdiff
path: root/printf/doprnt.c
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2001-09-16 01:12:44 +0200
committerKevin Ryde <user42@zip.com.au>2001-09-16 01:12:44 +0200
commit224924e8ff7574900766cf4cac106108d9ab14fd (patch)
treec3eae596e83a0825daaf553f70b01b52fe396b2a /printf/doprnt.c
parent594dca97eff984cf65675c2d2aba5f8d16b31576 (diff)
downloadgmp-224924e8ff7574900766cf4cac106108d9ab14fd.tar.gz
* printf/doprnt.c: '#' means showpoint and showtrailing for %e, %f, %g.
Diffstat (limited to 'printf/doprnt.c')
-rw-r--r--printf/doprnt.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/printf/doprnt.c b/printf/doprnt.c
index 7600fab26..0b58de79b 100644
--- a/printf/doprnt.c
+++ b/printf/doprnt.c
@@ -210,7 +210,7 @@ __gmp_doprnt (const struct doprnt_funs_t *funs, void *data,
param.prec = -1; /* default to all digits */
param.showbase = DOPRNT_SHOWBASE_YES;
param.showtrailing = 1;
- goto floating;
+ goto floating_a;
case 'c':
/* Let's assume wchar_t will be promoted to "int" in the call,
@@ -303,6 +303,13 @@ __gmp_doprnt (const struct doprnt_funs_t *funs, void *data,
case 'e':
param.conv = DOPRNT_CONV_SCIENTIFIC;
floating:
+ if (param.showbase == DOPRNT_SHOWBASE_NONZERO)
+ {
+ /* # in %e, %f and %g */
+ param.showpoint = 1;
+ param.showtrailing = 1;
+ }
+ floating_a:
switch (type) {
case 'F':
FLUSH ();