From fe2709cb1c792d562fce68dc2c10f20d4d02b55e Mon Sep 17 00:00:00 2001 From: Michael Theall Date: Tue, 14 Jun 2016 02:42:51 -0500 Subject: [PATCH] Better rounding for free space size --- Makefile.3ds | 2 +- source/ftp.c | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Makefile.3ds b/Makefile.3ds index bc69b2b..2409068 100644 --- a/Makefile.3ds +++ b/Makefile.3ds @@ -60,7 +60,7 @@ CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 ASFLAGS := -g $(ARCH) LDFLAGS = -specs=3dsx.specs -g $(ARCH) -Wl,-Map,$(TARGET).map -LIBS := -lctru +LIBS := -lctru -lm #--------------------------------------------------------------------------------- # list of directories containing libraries, this must be the top level containing diff --git a/source/ftp.c b/source/ftp.c index 0884f84..454a546 100644 --- a/source/ftp.c +++ b/source/ftp.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -1419,27 +1420,26 @@ update_status(void) } bytes_free = (double)st.f_bsize * st.f_bfree; - - if (bytes_free < 1000.0f) + if (bytes_free < 1000.0) snprintf(buffer, sizeof(buffer), "%.0lf bytes", bytes_free); - else if(bytes_free < 10000.0f) - snprintf(buffer, sizeof(buffer), "%.2lfKiB", bytes_free/KiB); - else if(bytes_free < 100000.0f) - snprintf(buffer, sizeof(buffer), "%.1lfKiB", bytes_free/KiB); - else if(bytes_free < 1000000.0f) - snprintf(buffer, sizeof(buffer), "%.0lfKiB", bytes_free/KiB); - else if(bytes_free < 10000000.0f) - snprintf(buffer, sizeof(buffer), "%.2lfMiB", bytes_free/MiB); - else if(bytes_free < 100000000.0f) - snprintf(buffer, sizeof(buffer), "%.1lfMiB", bytes_free/MiB); - else if(bytes_free < 1000000000.0f) - snprintf(buffer, sizeof(buffer), "%.0lfMiB", bytes_free/MiB); - else if(bytes_free < 10000000000.0f) - snprintf(buffer, sizeof(buffer), "%.2lfGiB", bytes_free/GiB); - else if(bytes_free < 100000000000.0f) - snprintf(buffer, sizeof(buffer), "%.1lfGiB", bytes_free/GiB); + else if(bytes_free < 10.0*KiB) + snprintf(buffer, sizeof(buffer), "%.2lfKiB", floor((bytes_free*100.0)/KiB)/100.0); + else if(bytes_free < 100.0*KiB) + snprintf(buffer, sizeof(buffer), "%.1lfKiB", floor((bytes_free*10.0)/KiB)/10.0); + else if(bytes_free < 1000.0*KiB) + snprintf(buffer, sizeof(buffer), "%.0lfKiB", floor(bytes_free/KiB)); + else if(bytes_free < 10.0*MiB) + snprintf(buffer, sizeof(buffer), "%.2lfMiB", floor((bytes_free*100.0)/MiB)/100.0); + else if(bytes_free < 100.0*MiB) + snprintf(buffer, sizeof(buffer), "%.1lfMiB", floor((bytes_free*10.0)/MiB)/10.0); + else if(bytes_free < 1000.0*MiB) + snprintf(buffer, sizeof(buffer), "%.0lfMiB", floor(bytes_free/MiB)); + else if(bytes_free < 10.0*GiB) + snprintf(buffer, sizeof(buffer), "%.2lfGiB", floor((bytes_free*100.0)/GiB)/100.0); + else if(bytes_free < 100.0*GiB) + snprintf(buffer, sizeof(buffer), "%.1lfGiB", floor((bytes_free*10.0)/GiB)/10.0); else - snprintf(buffer, sizeof(buffer), "%.0lfGiB", bytes_free/GiB); + snprintf(buffer, sizeof(buffer), "%.0lfGiB", floor(bytes_free/GiB)); console_set_status("\n" GREEN STATUS_STRING " " CYAN "%s:%u "