diff options
author | Wayne Davison <wayne@opencoder.net> | 2022-01-13 08:11:50 -0800 |
---|---|---|
committer | Wayne Davison <wayne@opencoder.net> | 2022-01-13 08:22:25 -0800 |
commit | 6130c4fa3c92803d508f947e555fcd4e325f6178 (patch) | |
tree | 0c19248117750ef0f05924b6a9a5dcf7674c80be | |
parent | 8c4ceb3b86749523573fec0df38a3b315575735c (diff) | |
download | rsync-6130c4fa3c92803d508f947e555fcd4e325f6178.tar.gz |
Display ??:??:?? when a time estimate gets too big.
-rw-r--r-- | NEWS.md | 6 | ||||
-rw-r--r-- | progress.c | 6 |
2 files changed, 5 insertions, 7 deletions
@@ -88,10 +88,8 @@ check to see if the allowed time is over, which should make rsync exit more consistently. - - Tweak the snprintf() in progress.c that turns the remaining time into a - HHHH:MM:SS value to avoid putting a -8 into the SS or MM spots when the - remaining seconds is so large that it overflows the integer arithmetic - trying to perform a modulus. + - Tweak --progress to display "??:??:??" when the time-remaining value is + so large as to be meaningless. ### ENHANCEMENTS: @@ -115,11 +115,11 @@ static void rprint_progress(OFF_T ofs, OFF_T size, struct timeval *now, int is_l units = "kB/s"; } - if (remain < 0) + if (remain < 0 || remain > 9999.0 * 3600.0) strlcpy(rembuf, " ??:??:??", sizeof rembuf); else { - snprintf(rembuf, sizeof rembuf, "%4lu:%02u:%02u", - (unsigned long) (remain / 3600.0), + snprintf(rembuf, sizeof rembuf, "%4u:%02u:%02u", + (unsigned int) (remain / 3600.0), (unsigned int) (remain / 60.0) % 60, (unsigned int) remain % 60); } |