[PATCH 1/2] progress: add update_progress()
- From
- sdaoden@googlemail.com <sdaoden@googlemail.com>
- Date
- Aug 29, 2011, 20:17 UTC
- Message-ID
- <bc530ff857b92ad58bfd6f331cf6732ed86c42b0.1314647163.git.sdaoden@gmail.com>
- In-Reply-To
- <cover.1314647163.git.sdaoden@gmail.com>
From: Steffen Daode Nurpmeso <sdaoden@gmail.com>
Sometimes the task which is tracked via progress is splitted into two parts, e.g. check_updates() in unpack_trees.c updates the working tree by first removing files, followed by checking out files. Whereas it is possible to simply recreate a progress reporter, it's easier to simply call in to update the state of the yet existing one.
Inspired-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Steffen Daode Nurpmeso <sdaoden@gmail.com> --- progress.c | 15 +++++++++++++++ progress.h | 2 ++ 2 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/progress.c b/progress.c index 3971f49..c86f83f 100644 --- a/progress.c +++ b/progress.c @@ -234,6 +234,21 @@ struct progress *start_progress(const char *title, unsigned total) return start_progress_delay(title, total, 0, 0); } +void update_progress(struct progress *progress, const char *title, + unsigned total) +{ + if (!progress) + return; + progress->title = title; + progress->total = total; + progress->last_value = -1; + progress->last_percent = -1; + if (progress->delay < 0) + progress->delay = 0; + clear_progress_signal(); + set_progress_signal(); +} + void stop_progress(struct progress **p_progress) { stop_progress_msg(p_progress, "done"); diff --git a/progress.h b/progress.h index 611e4c4..eed5b58 100644 --- a/progress.h +++ b/progress.h @@ -8,6 +8,8 @@ int display_progress(struct progress *progress, unsigned n); struct progress *start_progress(const char *title, unsigned total); struct progress *start_progress_delay(const char *title, unsigned total, unsigned percent_treshold, unsigned delay); +void update_progress(struct progress *progress, const char *title, + unsigned total); void stop_progress(struct progress **progress); void stop_progress_msg(struct progress **progress, const char *msg);
-- 1.7.7.rc0.dirty