Bug 799156 - normalize_struct_tm() does not normalize seconds,...

minutes, and hours correctly.

Fix proposed by Sherlock.
This commit is contained in:
John Ralls 2023-12-08 13:45:04 -08:00
parent 5005c3cac8
commit 966cef19aa

View File

@ -126,7 +126,7 @@ gnc_localtime_r (const time64 *secs, struct tm* time)
}
static void
normalize_time_component (int *inner, int *outer, unsigned int divisor,
normalize_time_component (int *inner, int *outer, int divisor,
int base)
{
while (*inner < base)
@ -134,7 +134,7 @@ normalize_time_component (int *inner, int *outer, unsigned int divisor,
--(*outer);
*inner += divisor;
}
while (*inner > static_cast<gint>(divisor))
while (*inner >= divisor + base)
{
++(*outer);
*inner -= divisor;