From ba67259c00e54af656e509537e19ee017929ddc9 Mon Sep 17 00:00:00 2001 From: Jerry DeLisle Date: Sun, 22 Nov 2015 22:14:46 +0000 Subject: [PATCH] write_float.def (output_float): Move block determining room for leading zero to before checkng g0 formatting. 2015-11-22 Jerry DeLisle * io/write_float.def (output_float): Move block determining room for leading zero to before checkng g0 formatting. From-SVN: r230728 --- libgfortran/ChangeLog | 5 +++++ libgfortran/io/write_float.def | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 77030e9fd4b..f90d5301df8 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2015-11-22 Jerry DeLisle + + * io/write_float.def (output_float): Move block determining + room for leading zero to before checkng g0 formatting. + 2015-09-12 Francois-Xavier Coudert PR libfortran/67527 diff --git a/libgfortran/io/write_float.def b/libgfortran/io/write_float.def index dd298aa81ad..183fe0b9f2e 100644 --- a/libgfortran/io/write_float.def +++ b/libgfortran/io/write_float.def @@ -514,12 +514,21 @@ output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size, w = w == 1 ? 2 : w; } } - + /* Work out how much padding is needed. */ nblanks = w - (nbefore + nzero + nafter + edigits + 1); if (sign != S_NONE) nblanks--; + /* See if we have space for a zero before the decimal point. */ + if (nbefore == 0 && nblanks > 0) + { + leadzero = 1; + nblanks--; + } + else + leadzero = 0; + if (dtp->u.p.g0_no_blanks) { w -= nblanks; @@ -544,15 +553,6 @@ output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size, return false; } - /* See if we have space for a zero before the decimal point. */ - if (nbefore == 0 && nblanks > 0) - { - leadzero = 1; - nblanks--; - } - else - leadzero = 0; - /* For internal character(kind=4) units, we duplicate the code used for regular output slightly modified. This needs to be maintained consistent with the regular code that follows this block. */ -- 2.11.4.GIT