mirror of
https://github.com/systemd/systemd.git
synced 2024-11-04 13:51:24 +03:00
calendarspec: fix find_next skipping times
reset usec when bumping hours/minutes
This commit is contained in:
parent
357726c8be
commit
a022d76e6a
@ -1029,7 +1029,7 @@ static int find_next(const CalendarSpec *spec, struct tm *tm, usec_t *usec) {
|
||||
|
||||
r = find_matching_component(spec->hour, &c.tm_hour);
|
||||
if (r > 0)
|
||||
c.tm_min = c.tm_sec = 0;
|
||||
c.tm_min = c.tm_sec = tm_usec = 0;
|
||||
if (r < 0 || tm_out_of_bounds(&c, spec->utc)) {
|
||||
c.tm_mday ++;
|
||||
c.tm_hour = c.tm_min = c.tm_sec = tm_usec = 0;
|
||||
@ -1038,7 +1038,7 @@ static int find_next(const CalendarSpec *spec, struct tm *tm, usec_t *usec) {
|
||||
|
||||
r = find_matching_component(spec->minute, &c.tm_min);
|
||||
if (r > 0)
|
||||
c.tm_sec = 0;
|
||||
c.tm_sec = tm_usec = 0;
|
||||
if (r < 0 || tm_out_of_bounds(&c, spec->utc)) {
|
||||
c.tm_hour ++;
|
||||
c.tm_min = c.tm_sec = tm_usec = 0;
|
||||
|
@ -137,6 +137,7 @@ int main(int argc, char* argv[]) {
|
||||
test_next("2015-11-13 09:11:23.42", "EET", 12345, 1447398683420000);
|
||||
test_next("2015-11-13 09:11:23.42/1.77", "EET", 1447398683420000, 1447398685190000);
|
||||
test_next("2015-11-13 09:11:23.42/1.77", "EET", 1447398683419999, 1447398683420000);
|
||||
test_next("Sun 16:00:00", "CET", 1456041600123456, 1456066800000000);
|
||||
|
||||
assert_se(calendar_spec_from_string("test", &c) < 0);
|
||||
assert_se(calendar_spec_from_string("", &c) < 0);
|
||||
|
Loading…
Reference in New Issue
Block a user