Commit e578903b authored by Anatol Pomozov's avatar Anatol Pomozov Committed by Allan McRae
Browse files

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's avatarAnatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae's avatarAllan McRae <allan@archlinux.org>
parent aff69f43
......@@ -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;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment