[pacman-dev] [PATCH 1/2] Add TotalDownload option.

Nathan Jones nathanj at insightbb.com
Thu Nov 8 21:56:53 EST 2007


This will be used in the next commit.

Signed-off-by: Nathan Jones <nathanj at insightbb.com>
---
 doc/pacman.conf.5.txt |    4 ++++
 lib/libalpm/alpm.h    |    1 +
 lib/libalpm/handle.c  |    6 ++++++
 lib/libalpm/handle.h  |    2 ++
 src/pacman/pacman.c   |    3 +++
 5 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/doc/pacman.conf.5.txt b/doc/pacman.conf.5.txt
index 06ba81d..c9783c8 100644
--- a/doc/pacman.conf.5.txt
+++ b/doc/pacman.conf.5.txt
@@ -109,6 +109,10 @@ Options
 	Download delta files instead of complete packages if possible.  Requires
 	the xdelta program to be installed.
 
+*TotalDownload*::
+	When downloading, display the completed percentage as the percent of
+	the entire download list list rather than the percent of each
+	individual download target.
 
 Repository Sections
 -------------------
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index 20d7787..5170c15 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -139,6 +139,7 @@ void alpm_option_set_xfercommand(const char *cmd);
 unsigned short alpm_option_get_nopassiveftp();
 void alpm_option_set_nopassiveftp(unsigned short nopasv);
 void alpm_option_set_usedelta(unsigned short usedelta);
+void alpm_option_set_totaldownload(unsigned short totaldownload);
 
 pmdb_t *alpm_option_get_localdb();
 alpm_list_t *alpm_option_get_syncdbs();
diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c
index af54949..fed4d9c 100644
--- a/lib/libalpm/handle.c
+++ b/lib/libalpm/handle.c
@@ -65,6 +65,7 @@ pmhandle_t *_alpm_handle_new()
 	handle->lockfile = NULL;
 	handle->logfile = NULL;
 	handle->usedelta = 0;
+	handle->totaldownload = 0;
 
 	return(handle);
 }
@@ -482,4 +483,9 @@ void SYMEXPORT alpm_option_set_usedelta(unsigned short usedelta)
 	handle->usedelta = usedelta;
 }
 
+void SYMEXPORT alpm_option_set_totaldownload(unsigned short totaldownload)
+{
+	handle->totaldownload = totaldownload;
+}
+
 /* vim: set ts=2 sw=2 noet: */
diff --git a/lib/libalpm/handle.h b/lib/libalpm/handle.h
index 0874ecd..f2c0453 100644
--- a/lib/libalpm/handle.h
+++ b/lib/libalpm/handle.h
@@ -62,6 +62,8 @@ typedef struct _pmhandle_t {
 	time_t upgradedelay;      /* Time to wait before upgrading a package */
 	char *xfercommand;        /* External download command */
 	unsigned short usedelta;     /* Download deltas if possible */
+	unsigned short totaldownload;/* When downloading, display the percent
+	                                downloaded of the total download list */
 } pmhandle_t;
 
 /* global handle variable */
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 9c650f2..795f1e0 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -572,6 +572,9 @@ static int _parseconfig(const char *file, const char *givensection,
 				} else if(strcmp(key, "UseDelta") == 0 || strcmp(upperkey, "USEDELTA") == 0) {
 					alpm_option_set_usedelta(1);
 					pm_printf(PM_LOG_DEBUG, "config: usedelta\n");
+				} else if(strcmp(key, "TotalDownload") == 0 || strcmp(upperkey, "TOTALDOWNLOAD") == 0) {
+					alpm_option_set_totaldownload(1);
+					pm_printf(PM_LOG_DEBUG, "config: totaldownload\n");
 				} else {
 					pm_printf(PM_LOG_ERROR, _("config file %s, line %d: directive '%s' not recognized.\n"),
 							file, linenum, key);
-- 
1.5.3.5




More information about the pacman-dev mailing list