aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/progress.c11
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;
}