'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.pomo...@gmail.com>
---
 src/pacman/callback.c | 18 +++++++++++-------
 1 file 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;
        }
-- 
2.25.1

Reply via email to