aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2011-02-10 23:35:52 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2011-02-10 23:35:52 +0100
commit838d4bb0cd0805e1671073627d86baf100af021b (patch)
tree5d1fcba7e3f5e301dd418d9f7f60aa69549a26fb
parentf836f01cc3eb39e5e4c7186f50b456b57fae2010 (diff)
downloadbusybox-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.c10
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}