diff options
Diffstat (limited to 'third_party/git/progress.c')
-rw-r--r-- | third_party/git/progress.c | 76 |
1 files changed, 15 insertions, 61 deletions
diff --git a/third_party/git/progress.c b/third_party/git/progress.c index 19805ac6461b..277db8afa26d 100644 --- a/third_party/git/progress.c +++ b/third_party/git/progress.c @@ -14,7 +14,6 @@ #include "strbuf.h" #include "trace.h" #include "utf8.h" -#include "config.h" #define TP_IDX_MAX 8 @@ -46,19 +45,6 @@ struct progress { static volatile sig_atomic_t progress_update; -/* - * These are only intended for testing the progress output, i.e. exclusively - * for 'test-tool progress'. - */ -int progress_testing; -uint64_t progress_test_ns = 0; -void progress_test_force_update(void); /* To silence -Wmissing-prototypes */ -void progress_test_force_update(void) -{ - progress_update = 1; -} - - static void progress_interval(int signum) { progress_update = 1; @@ -69,9 +55,6 @@ static void set_progress_signal(void) struct sigaction sa; struct itimerval v; - if (progress_testing) - return; - progress_update = 0; memset(&sa, 0, sizeof(sa)); @@ -89,10 +72,6 @@ static void set_progress_signal(void) static void clear_progress_signal(void) { struct itimerval v = {{0,},}; - - if (progress_testing) - return; - setitimer(ITIMER_REAL, &v, NULL); signal(SIGALRM, SIG_IGN); progress_update = 0; @@ -109,7 +88,6 @@ static void display(struct progress *progress, uint64_t n, const char *done) const char *tp; struct strbuf *counters_sb = &progress->counters_sb; int show_update = 0; - int last_count_len = counters_sb->len; if (progress->delay && (!progress_update || --progress->delay)) return; @@ -137,27 +115,21 @@ static void display(struct progress *progress, uint64_t n, const char *done) if (show_update) { if (is_foreground_fd(fileno(stderr)) || done) { const char *eol = done ? done : "\r"; - size_t clear_len = counters_sb->len < last_count_len ? - last_count_len - counters_sb->len + 1 : - 0; - /* The "+ 2" accounts for the ": ". */ - size_t progress_line_len = progress->title_len + - counters_sb->len + 2; - int cols = term_columns(); + term_clear_line(); if (progress->split) { - fprintf(stderr, " %s%*s", counters_sb->buf, - (int) clear_len, eol); - } else if (!done && cols < progress_line_len) { - clear_len = progress->title_len + 1 < cols ? - cols - progress->title_len - 1 : 0; - fprintf(stderr, "%s:%*s\n %s%s", - progress->title, (int) clear_len, "", - counters_sb->buf, eol); + fprintf(stderr, " %s%s", counters_sb->buf, + eol); + } else if (!done && + /* The "+ 2" accounts for the ": ". */ + term_columns() < progress->title_len + + counters_sb->len + 2) { + fprintf(stderr, "%s:\n %s%s", + progress->title, counters_sb->buf, eol); progress->split = 1; } else { - fprintf(stderr, "%s: %s%*s", progress->title, - counters_sb->buf, (int) clear_len, eol); + fprintf(stderr, "%s: %s%s", progress->title, + counters_sb->buf, eol); } fflush(stderr); } @@ -175,14 +147,6 @@ static void throughput_string(struct strbuf *buf, uint64_t total, strbuf_humanise_rate(buf, rate * 1024); } -static uint64_t progress_getnanotime(struct progress *progress) -{ - if (progress_testing) - return progress->start_ns + progress_test_ns; - else - return getnanotime(); -} - void display_throughput(struct progress *progress, uint64_t total) { struct throughput *tp; @@ -193,7 +157,7 @@ void display_throughput(struct progress *progress, uint64_t total) return; tp = progress->throughput; - now_ns = progress_getnanotime(progress); + now_ns = getnanotime(); if (!tp) { progress->throughput = tp = xcalloc(1, sizeof(*tp)); @@ -268,19 +232,9 @@ static struct progress *start_progress_delay(const char *title, uint64_t total, return progress; } -static int get_default_delay(void) -{ - static int delay_in_secs = -1; - - if (delay_in_secs < 0) - delay_in_secs = git_env_ulong("GIT_PROGRESS_DELAY", 2); - - return delay_in_secs; -} - struct progress *start_delayed_progress(const char *title, uint64_t total) { - return start_progress_delay(title, total, get_default_delay(), 0); + return start_progress_delay(title, total, 2, 0); } struct progress *start_progress(const char *title, uint64_t total) @@ -305,7 +259,7 @@ struct progress *start_sparse_progress(const char *title, uint64_t total) struct progress *start_delayed_sparse_progress(const char *title, uint64_t total) { - return start_progress_delay(title, total, get_default_delay(), 1); + return start_progress_delay(title, total, 2, 1); } static void finish_if_sparse(struct progress *progress) @@ -335,7 +289,7 @@ void stop_progress_msg(struct progress **p_progress, const char *msg) struct throughput *tp = progress->throughput; if (tp) { - uint64_t now_ns = progress_getnanotime(progress); + uint64_t now_ns = getnanotime(); unsigned int misecs, rate; misecs = ((now_ns - progress->start_ns) * 4398) >> 32; rate = tp->curr_total / (misecs ? misecs : 1); |