return cache != 0;
}
-void draw_progress_bar_impl(const char *prefix, double percentage) {
+void draw_progress_bar_unbuffered(const char *prefix, double percentage) {
fputc('\r', stderr);
if (prefix) {
fputs(prefix, stderr);
fputs(ANSI_ERASE_TO_END_OF_LINE, stderr);
fputc('\r', stderr);
-
}
-void clear_progress_bar_impl(const char *prefix) {
+void clear_progress_bar_unbuffered(const char *prefix) {
fputc('\r', stderr);
if (terminal_is_dumb())
* unbuffered by default. Let's temporarily turn on full buffering, so that this is passed to the tty
* as a single buffer, to make things more efficient. */
WITH_BUFFERED_STDERR;
- draw_progress_bar_impl(prefix, percentage);
+ draw_progress_bar_unbuffered(prefix, percentage);
}
void clear_progress_bar(const char *prefix) {
WITH_BUFFERED_STDERR;
- clear_progress_bar_impl(prefix);
+ clear_progress_bar_unbuffered(prefix);
}
void draw_progress_bar(const char *prefix, double percentage);
void clear_progress_bar(const char *prefix);
-void draw_progress_bar_impl(const char *prefix, double percentage);
-void clear_progress_bar_impl(const char *prefix);
+void draw_progress_bar_unbuffered(const char *prefix, double percentage);
+void clear_progress_bar_unbuffered(const char *prefix);
static inline FILE* enable_buffering(FILE *f, char *buffer, size_t size) {
assert(f);
int progress = PTR_TO_INT(p);
if (progress == UPDATE_PROGRESS_FAILED) {
- clear_progress_bar_impl(target);
+ clear_progress_bar_unbuffered(target);
fprintf(stderr, "%s: %s Unknown failure\n", target, RED_CROSS_MARK());
total += 100;
} else if (progress == -EALREADY) {
- clear_progress_bar_impl(target);
+ clear_progress_bar_unbuffered(target);
fprintf(stderr, "%s: %s Already up-to-date\n", target, GREEN_CHECK_MARK());
n--; /* Don't consider this target in the total */
} else if (progress < 0) {
- clear_progress_bar_impl(target);
+ clear_progress_bar_unbuffered(target);
fprintf(stderr, "%s: %s %s\n", target, RED_CROSS_MARK(), STRERROR(progress));
total += 100;
} else if (progress == UPDATE_PROGRESS_DONE) {
- clear_progress_bar_impl(target);
+ clear_progress_bar_unbuffered(target);
fprintf(stderr, "%s: %s Done\n", target, GREEN_CHECK_MARK());
total += 100;
} else {
- draw_progress_bar_impl(target, progress);
+ draw_progress_bar_unbuffered(target, progress);
fputs("\n", stderr);
total += progress;
}
if (n > 1) {
if (exiting)
- clear_progress_bar_impl(target);
+ clear_progress_bar_unbuffered(target);
else {
- draw_progress_bar_impl("Total", (double) total / n);
+ draw_progress_bar_unbuffered("Total", (double) total / n);
if (terminal_is_dumb())
fputs("\n", stderr);
}