Display ??:??:?? when a time estimate gets too big.

This commit is contained in:
Wayne Davison
2022-01-13 08:11:50 -08:00
parent 8c4ceb3b86
commit 6130c4fa3c
2 changed files with 5 additions and 7 deletions

View File

@@ -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:

View File

@@ -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);
}