[pacman-dev] [PATCH 3/3] callback.c: Move --noprogressbar handling from cb_dl_progress to cb_event

ivy.foster at gmail.com ivy.foster at gmail.com
Mon Jul 4 01:54:34 UTC 2016


From: Ivy Foster <ivy.foster at gmail.com>

Signed-off-by: Ivy Foster <ivy.foster at gmail.com>
---
 src/pacman/callback.c | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/src/pacman/callback.c b/src/pacman/callback.c
index ab3e14f..9c29e6d 100644
--- a/src/pacman/callback.c
+++ b/src/pacman/callback.c
@@ -173,6 +173,8 @@ static int number_length(size_t n)
 /* callback to handle messages/notifications from libalpm transactions */
 void cb_event(alpm_event_t *event)
 {
+	const unsigned short cols = getcols();
+
 	if(config->print) {
 		return;
 	}
@@ -344,6 +346,22 @@ void cb_event(alpm_event_t *event)
 				}
 			}
 			break;
+		case ALPM_EVENT_PKGDOWNLOAD_START:
+			{
+				if(config->noprogressbar || cols == 0) {
+					alpm_event_pkgdownload_t *e = &event->pkgdownload;
+					printf(_("downloading %s...\n"), e->file);
+				}
+			}
+			break;
+		case ALPM_EVENT_DATABASE_REFRESH_START:
+			{
+				if(config->noprogressbar || cols == 0) {
+					alpm_event_database_refresh_t *e = &event->database_refresh;
+					printf(_("downloading %s...\n"), e->dbname);
+				}
+			}
+			break;
 		/* all the simple done events, with fallthrough for each */
 		case ALPM_EVENT_FILECONFLICTS_DONE:
 		case ALPM_EVENT_CHECKDEPS_DONE:
@@ -362,9 +380,10 @@ void cb_event(alpm_event_t *event)
 		case ALPM_EVENT_HOOK_DONE:
 		case ALPM_EVENT_HOOK_RUN_DONE:
 		/* we can safely ignore those as well */
-		case ALPM_EVENT_PKGDOWNLOAD_START:
 		case ALPM_EVENT_PKGDOWNLOAD_DONE:
 		case ALPM_EVENT_PKGDOWNLOAD_FAILED:
+		case ALPM_EVENT_DATABASE_REFRESH_DONE:
+		case ALPM_EVENT_DATABASE_REFRESH_FAILED:
 			/* nothing */
 			break;
 	}
@@ -679,10 +698,6 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total)
 	const unsigned short cols = getcols();
 
 	if(config->noprogressbar || cols == 0 || file_total == -1) {
-		if(file_xfered == 0) {
-			printf(_("downloading %s...\n"), filename);
-			fflush(stdout);
-		}
 		return;
 	}
 
-- 
2.9.0


More information about the pacman-dev mailing list