From ad8d3ceb898716cf2642fb71963c0ef5a490621e Mon Sep 17 00:00:00 2001
From: Dave Reisner <dreisner@archlinux.org>
Date: Thu, 29 Sep 2011 12:17:16 -0400
Subject: move prevprogress onto payload handle

This is a poor place for it, and it will likely move again in the
future, but it's better to have it here than as a static variable.

Initialization of this variable is now no longer necessary as its
zeroed on creation of the payload struct.

Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
---
 lib/libalpm/dload.c | 11 +++--------
 lib/libalpm/dload.h |  1 +
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
index c599b7f5..33824be8 100644
--- a/lib/libalpm/dload.c
+++ b/lib/libalpm/dload.c
@@ -43,8 +43,6 @@
 #include "handle.h"
 
 #ifdef HAVE_LIBCURL
-static off_t prevprogress; /* last download amount */
-
 static const char *get_filename(const char *url)
 {
 	char *filename = strrchr(url, '/');
@@ -112,19 +110,19 @@ static int curl_progress(void *file, double dltotal, double dlnow,
 
 	total_size = payload->initial_size + (off_t)dltotal;
 
-	if(DOUBLE_EQ(dltotal, 0.0) || prevprogress == total_size) {
+	if(DOUBLE_EQ(dltotal, 0.0) || payload->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(prevprogress == 0) {
+	if(payload->prevprogress == 0) {
 		payload->handle->dlcb(payload->remote_name, 0, (off_t)dltotal);
 	}
 
 	payload->handle->dlcb(payload->remote_name, current_size, total_size);
 
-	prevprogress = current_size;
+	payload->prevprogress = current_size;
 
 	return 0;
 }
@@ -376,9 +374,6 @@ static int curl_download_internal(struct dload_payload *payload,
 	mask_signal(SIGPIPE, SIG_IGN, &orig_sig_pipe);
 	mask_signal(SIGINT, &inthandler, &orig_sig_int);
 
-	/* Progress 0 - initialize */
-	prevprogress = 0;
-
 	/* perform transfer */
 	payload->curlerr = curl_easy_perform(curl);
 
diff --git a/lib/libalpm/dload.h b/lib/libalpm/dload.h
index 9be29bc8..5442c0e2 100644
--- a/lib/libalpm/dload.h
+++ b/lib/libalpm/dload.h
@@ -35,6 +35,7 @@ struct dload_payload {
 	char *fileurl;
 	off_t initial_size;
 	off_t max_size;
+	off_t prevprogress;
 	int force;
 	int allow_resume;
 	int errors_ok;
-- 
cgit v1.2.3-54-g00ecf