diff options
-rw-r--r-- | lib/progress.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/progress.c b/lib/progress.c index 972629c64..b22f4a70b 100644 --- a/lib/progress.c +++ b/lib/progress.c @@ -57,6 +57,7 @@ static char *max5data(double bytes, char *max5) { #define ONE_KILOBYTE 1024 #define ONE_MEGABYTE (1024*1024) +#define ONE_GIGABYTE (1024*1024*1024) if(bytes < 100000) { sprintf(max5, "%5Od", (curl_off_t)bytes); @@ -71,7 +72,17 @@ static char *max5data(double bytes, char *max5) sprintf(max5, "%4.1fM", bytes/ONE_MEGABYTE); return max5; } +#if SIZEOF_CURL_OFF_T > 4 + if((curl_off_t)bytes < ((curl_off_t)10000*ONE_MEGABYTE)) { + sprintf(max5, "%4OdM", (curl_off_t)bytes/ONE_MEGABYTE); + return max5; + } + /* 10000 MB - 8589934587 GB !! */ + sprintf(max5, "%4.1fG", bytes/ONE_GIGABYTE); +#else sprintf(max5, "%4OdM", (curl_off_t)bytes/ONE_MEGABYTE); +#endif + return max5; } |