diff options
Diffstat (limited to 'progressmeter.c')
-rw-r--r-- | progressmeter.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/progressmeter.c b/progressmeter.c index e7380a8ff..948d361d2 100644 --- a/progressmeter.c +++ b/progressmeter.c | |||
@@ -203,6 +203,7 @@ draw_progress_meter() | |||
203 | 203 | ||
204 | nspaces = MIN(get_tty_width() - 79, sizeof(spaces) - 1); | 204 | nspaces = MIN(get_tty_width() - 79, sizeof(spaces) - 1); |
205 | 205 | ||
206 | #ifdef HAVE_LONG_LONG_INT | ||
206 | snprintf(buf, sizeof(buf), | 207 | snprintf(buf, sizeof(buf), |
207 | "\r%-45.45s%.*s%3d%% %4lld%c%c %3lld.%01d%cB/s", | 208 | "\r%-45.45s%.*s%3d%% %4lld%c%c %3lld.%01d%cB/s", |
208 | curfile, | 209 | curfile, |
@@ -216,6 +217,22 @@ draw_progress_meter() | |||
216 | (int)((bytespersec % 1024) * 10 / 1024), | 217 | (int)((bytespersec % 1024) * 10 / 1024), |
217 | prefixes[bi] | 218 | prefixes[bi] |
218 | ); | 219 | ); |
220 | #else | ||
221 | /* XXX: Handle integer overflow? */ | ||
222 | snprintf(buf, sizeof(buf), | ||
223 | "\r%-45.45s%.*s%3d%% %4lu%c%c %3lu.%01d%cB/s", | ||
224 | curfile, | ||
225 | nspaces, | ||
226 | spaces, | ||
227 | ratio, | ||
228 | (u_long)abbrevsize, | ||
229 | prefixes[ai], | ||
230 | ai == 0 ? ' ' : 'B', | ||
231 | (u_long)(bytespersec / 1024), | ||
232 | (int)((bytespersec % 1024) * 10 / 1024), | ||
233 | prefixes[bi] | ||
234 | ); | ||
235 | #endif | ||
219 | 236 | ||
220 | if (cursize <= 0 || elapsed <= 0.0 || cursize > totalbytes) { | 237 | if (cursize <= 0 || elapsed <= 0.0 || cursize > totalbytes) { |
221 | snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), | 238 | snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), |