Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnatol Pomozov <anatol.pomozov@gmail.com>2020-05-05 18:28:49 -0700
committerAllan McRae <allan@archlinux.org>2020-05-09 11:58:21 +1000
commit64c4669f579dc5ad8d05329abffbd752ad0ed8f2 (patch)
treede8625be678a7fe5414961a0c92134a27728ea8c /src
parent6a331af27fe6dc7842725d067fd2fb4a1c60c139 (diff)
Introduce event types for start/end database list download
Multiplexed database/files downloads will use multiple progress bars. The UI logic is quite complicated and printing error messages while handling multiple progress bars is going to be challenging. Instead we are going to save all ALPM error messages to a list and flush it at the end of the download process. Use on_progress variable that blocks error messages printing. Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'src')
-rw-r--r--src/pacman/callback.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/pacman/callback.c b/src/pacman/callback.c
index 8fb89b39..a129758b 100644
--- a/src/pacman/callback.c
+++ b/src/pacman/callback.c
@@ -280,8 +280,12 @@ void cb_event(alpm_event_t *event)
case ALPM_EVENT_SCRIPTLET_INFO:
fputs(event->scriptlet_info.line, stdout);
break;
- case ALPM_EVENT_RETRIEVE_START:
+ case ALPM_EVENT_DB_RETRIEVE_START:
+ on_progress = 1;
+ break;
+ case ALPM_EVENT_PKG_RETRIEVE_START:
colon_printf(_("Retrieving packages...\n"));
+ on_progress = 1;
break;
case ALPM_EVENT_DISKSPACE_START:
if(config->noprogressbar) {
@@ -338,6 +342,13 @@ void cb_event(alpm_event_t *event)
}
}
break;
+ case ALPM_EVENT_DB_RETRIEVE_DONE:
+ case ALPM_EVENT_DB_RETRIEVE_FAILED:
+ case ALPM_EVENT_PKG_RETRIEVE_DONE:
+ case ALPM_EVENT_PKG_RETRIEVE_FAILED:
+ flush_output_list();
+ on_progress = 0;
+ break;
/* all the simple done events, with fallthrough for each */
case ALPM_EVENT_FILECONFLICTS_DONE:
case ALPM_EVENT_CHECKDEPS_DONE:
@@ -349,8 +360,6 @@ void cb_event(alpm_event_t *event)
case ALPM_EVENT_KEY_DOWNLOAD_DONE:
case ALPM_EVENT_LOAD_DONE:
case ALPM_EVENT_DISKSPACE_DONE:
- case ALPM_EVENT_RETRIEVE_DONE:
- case ALPM_EVENT_RETRIEVE_FAILED:
case ALPM_EVENT_HOOK_DONE:
case ALPM_EVENT_HOOK_RUN_DONE:
/* we can safely ignore those as well */