Beautiful of libcurl to use floating point types for what are never
fractional values. We can do better, and we usually want these values in
their integer form anyway.

Signed-off-by: Dan McGee <[email protected]>
---
 lib/libalpm/dload.c |   16 ++++++++--------
 lib/libalpm/dload.h |    2 +-
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
index 8387ae6..bd5ccce 100644
--- a/lib/libalpm/dload.c
+++ b/lib/libalpm/dload.c
@@ -43,7 +43,7 @@
 #include "handle.h"
 
 #ifdef HAVE_LIBCURL
-static double prevprogress; /* last download amount */
+static long prevprogress; /* last download amount */
 
 static const char *get_filename(const char *url)
 {
@@ -76,7 +76,7 @@ static int curl_progress(void *file, double dltotal, double 
dlnow,
                double UNUSED ultotal, double UNUSED ulnow)
 {
        struct dload_payload *payload = (struct dload_payload *)file;
-       double current_size, total_size;
+       long current_size, total_size;
 
        /* SIGINT sent, abort by alerting curl */
        if(dload_interrupted) {
@@ -88,20 +88,20 @@ static int curl_progress(void *file, double dltotal, double 
dlnow,
                return 0;
        }
 
-       current_size = payload->initial_size + dlnow;
-       total_size = payload->initial_size + dltotal;
+       current_size = payload->initial_size + (long)dlnow;
+       total_size = payload->initial_size + (long)dltotal;
 
-       if(DOUBLE_EQ(dltotal, 0) || DOUBLE_EQ(prevprogress, total_size)) {
+       if(DOUBLE_EQ(dltotal, 0.0) || prevprogress == total_size) {
                return 0;
        }
 
        /* initialize the progress bar here to avoid displaying it when
         * a repo is up to date and nothing gets downloaded */
-       if(DOUBLE_EQ(prevprogress, 0)) {
+       if(prevprogress == 0) {
                payload->handle->dlcb(payload->remote_name, 0, (long)dltotal);
        }
 
-       payload->handle->dlcb(payload->remote_name, (long)current_size, 
(long)total_size);
+       payload->handle->dlcb(payload->remote_name, current_size, total_size);
 
        prevprogress = current_size;
 
@@ -216,7 +216,7 @@ static void curl_set_handle_opts(struct dload_payload 
*payload,
                payload->tempfile_openmode = "ab";
                curl_easy_setopt(handle->curl, CURLOPT_RESUME_FROM, 
(long)st.st_size);
                _alpm_log(handle, ALPM_LOG_DEBUG, "tempfile found, attempting 
continuation\n");
-               payload->initial_size = (double)st.st_size;
+               payload->initial_size = st.st_size;
        }
 }
 
diff --git a/lib/libalpm/dload.h b/lib/libalpm/dload.h
index 13034f7..f973f2d 100644
--- a/lib/libalpm/dload.h
+++ b/lib/libalpm/dload.h
@@ -33,7 +33,7 @@ struct dload_payload {
        char *destfile_name;
        char *content_disp_name;
        char *fileurl;
-       double initial_size;
+       long initial_size;
        long max_size;
        int force;
        int allow_resume;
-- 
1.7.6


Reply via email to