diff options
author | Anatol Pomozov <anatol.pomozov@gmail.com> | 2020-03-06 00:09:14 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2020-03-06 00:28:13 +0100 |
commit | e578903b60081bb8a7ddd094ed67946d5e48b719 (patch) | |
tree | ee281dfe477f4f01ef037c197e2b67547d1876a8 | |
parent | aff69f43b1bd9cf602dd5bf2c0b6d1bbe5e336f2 (diff) | |
download | pacman-e578903b60081bb8a7ddd094ed67946d5e48b719.tar.gz pacman-e578903b60081bb8a7ddd094ed67946d5e48b719.tar.xz |
Move flushing 'output' list into separate function
'output' is a list of messages that pacman received but delayed printing
to avoid messing with UI.
Such functionality is useful for the upcoming multi-line progress bar
UI. Let's move it to a separate function.
Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r-- | src/pacman/callback.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/pacman/callback.c b/src/pacman/callback.c index 548e2df2..8fb89b39 100644 --- a/src/pacman/callback.c +++ b/src/pacman/callback.c @@ -160,6 +160,16 @@ static void fill_progress(const int bar_percent, const int disp_percent, fflush(stdout); } +static void flush_output_list(void) { + alpm_list_t *i = NULL; + fflush(stdout); + for(i = output; i; i = i->next) { + fputs((const char *)i->data, stderr); + } + fflush(stderr); + FREELIST(output); +} + static int number_length(size_t n) { int digits = 1; @@ -610,14 +620,8 @@ void cb_progress(alpm_progress_t event, const char *pkgname, int percent, fill_progress(percent, percent, cols - infolen); if(percent == 100) { - alpm_list_t *i = NULL; + flush_output_list(); on_progress = 0; - fflush(stdout); - for(i = output; i; i = i->next) { - fputs((const char *)i->data, stderr); - } - fflush(stderr); - FREELIST(output); } else { on_progress = 1; } |