Make %t with real values use specified width if given.

The %t format did not use the width specified when displaying
real values. It should now work the same as the integer version.
This commit is contained in:
Cary R 2007-08-06 20:07:20 -07:00 committed by Stephen Williams
parent dd6a441312
commit c71b9797ca
1 changed files with 8 additions and 3 deletions

View File

@ -300,6 +300,7 @@ static void format_time(unsigned mcd, int fsize,
static void format_time_real(unsigned mcd, int fsize,
double value, int time_units)
{
int width;
/* The time_units is the units of the current scope, and also
of the value. If the scope units are different from the
@ -307,11 +308,15 @@ static void format_time_real(unsigned mcd, int fsize,
if (time_units != timeformat_info.units)
value *= pow(10.0, time_units - timeformat_info.units);
if (fsize == -1) {
width = timeformat_info.width - strlen(timeformat_info.suff);
} else {
width = fsize;
}
/* The timeformat_info.prec is the number of digits after the
decimal point, no matter what the units. */
my_mcd_printf(mcd, "%*.*f%s", timeformat_info.width -
strlen(timeformat_info.suff), timeformat_info.prec,
value, timeformat_info.suff);
my_mcd_printf(mcd, "%*.*f%s", width, timeformat_info.prec, value,
timeformat_info.suff);
}