diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2011-02-10 23:35:52 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2011-02-10 23:35:52 +0100 |
commit | 838d4bb0cd0805e1671073627d86baf100af021b (patch) | |
tree | 5d1fcba7e3f5e301dd418d9f7f60aa69549a26fb | |
parent | f836f01cc3eb39e5e4c7186f50b456b57fae2010 (diff) | |
download | busybox-w32-838d4bb0cd0805e1671073627d86baf100af021b.tar.gz busybox-w32-838d4bb0cd0805e1671073627d86baf100af021b.tar.bz2 busybox-w32-838d4bb0cd0805e1671073627d86baf100af021b.zip |
progress meter: display >999 hours ETA correctly
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | libbb/progress.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libbb/progress.c b/libbb/progress.c index a490b8390..3999e0f38 100644 --- a/libbb/progress.c +++ b/libbb/progress.c | |||
@@ -156,7 +156,7 @@ void FAST_FUNC bb_progress_update(bb_progress_t *p, | |||
156 | kiloscale++; | 156 | kiloscale++; |
157 | } | 157 | } |
158 | /* see http://en.wikipedia.org/wiki/Tera */ | 158 | /* see http://en.wikipedia.org/wiki/Tera */ |
159 | fprintf(stderr, "%6u%c ", (unsigned)beg_and_transferred, " kMGTPEZY"[kiloscale]); | 159 | fprintf(stderr, "%6u%c", (unsigned)beg_and_transferred, " kMGTPEZY"[kiloscale]); |
160 | #define beg_and_transferred dont_use_beg_and_transferred_below() | 160 | #define beg_and_transferred dont_use_beg_and_transferred_below() |
161 | 161 | ||
162 | if (transferred != p->lastsize) { | 162 | if (transferred != p->lastsize) { |
@@ -173,9 +173,9 @@ void FAST_FUNC bb_progress_update(bb_progress_t *p, | |||
173 | elapsed -= p->start_sec; /* now it's "elapsed since start" */ | 173 | elapsed -= p->start_sec; /* now it's "elapsed since start" */ |
174 | 174 | ||
175 | if (since_last_update >= STALLTIME) { | 175 | if (since_last_update >= STALLTIME) { |
176 | fprintf(stderr, " - stalled -"); | 176 | fprintf(stderr, " - stalled -"); |
177 | } else if (!totalsize || !transferred || (int)elapsed <= 0) { | 177 | } else if (!totalsize || !transferred || (int)elapsed <= 0) { |
178 | fprintf(stderr, "--:--:-- ETA"); | 178 | fprintf(stderr, " --:--:-- ETA"); |
179 | } else { | 179 | } else { |
180 | unsigned eta, secs, hours; | 180 | unsigned eta, secs, hours; |
181 | 181 | ||
@@ -188,8 +188,10 @@ void FAST_FUNC bb_progress_update(bb_progress_t *p, | |||
188 | * totalsize * elapsed / transferred - elapsed | 188 | * totalsize * elapsed / transferred - elapsed |
189 | */ | 189 | */ |
190 | eta = totalsize * elapsed / transferred - elapsed; | 190 | eta = totalsize * elapsed / transferred - elapsed; |
191 | if (eta >= 1000*60*60) | ||
192 | eta = 1000*60*60 - 1; | ||
191 | secs = eta % 3600; | 193 | secs = eta % 3600; |
192 | hours = eta / 3600; | 194 | hours = eta / 3600; |
193 | fprintf(stderr, "%02u:%02u:%02u ETA", hours, secs / 60, secs % 60); | 195 | fprintf(stderr, "%3u:%02u:%02u ETA", hours, secs / 60, secs % 60); |
194 | } | 196 | } |
195 | } | 197 | } |