diff options
author | Ken Murchison <murch@fastmail.com> | 2020-11-06 09:42:00 -0500 |
---|---|---|
committer | Ken Murchison <murch@fastmail.com> | 2020-11-06 09:42:00 -0500 |
commit | 2e7761ad448ab283215660a821976a45efeca810 (patch) | |
tree | 97eceb52def3b7b06bba69f8884b0d4436a6eba4 | |
parent | 2f8c227931f719e8e1a17bc9a0f29cb264dba08b (diff) | |
download | libical-git-byweekno_no_byday.tar.gz |
icalrecur.c: fix handling of BYWEEKNO with no BYDAY to use the day of week from DTSTART rather than day of monthbyweekno_no_byday
-rw-r--r-- | src/libical/icalrecur.c | 4 | ||||
-rw-r--r-- | src/test/icalrecur_test.out | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/libical/icalrecur.c b/src/libical/icalrecur.c index 329718b5..59121d98 100644 --- a/src/libical/icalrecur.c +++ b/src/libical/icalrecur.c @@ -2769,8 +2769,8 @@ static int expand_year_days(icalrecur_iterator *impl, int year) doy = get_day_of_year(impl, year, impl->dtstart.month, impl->dtstart.day, NULL); (void)__icaltime_from_day_of_year(impl, doy, year, &weekno); - if (weekno > doy) weekno = 0; - start_doy = doy - 7 * (weekno - 1); + if (weekno > doy) doy += 7; + start_doy = doy + get_start_of_week(impl); /* Add day of week in each BYWEEKNO to the year days bitmask */ for (i = 0; BYWEEKPTR[i] != ICAL_RECURRENCE_ARRAY_MAX; i++) { diff --git a/src/test/icalrecur_test.out b/src/test/icalrecur_test.out index b9f016c2..ffb3960d 100644 --- a/src/test/icalrecur_test.out +++ b/src/test/icalrecur_test.out @@ -256,8 +256,8 @@ PREV-INSTANCES:20141206T000000Z,20141205T000000Z,20141204T000000Z,20141203T00000 RRULE:FREQ=YEARLY;BYWEEKNO=1,2;UNTIL=20170101T000000Z DTSTART:20130101T000000 -INSTANCES:20130101T000000,20130108T000000,20140101T000000,20140108T000000,20150101T000000,20150108T000000,20160108T000000,20160115T000000 -PREV-INSTANCES:20160115T000000,20160108T000000,20150108T000000,20150101T000000,20140108T000000,20140101T000000,20130108T000000,20130101T000000 +INSTANCES:20130101T000000,20130108T000000,20131231T000000,20140107T000000,20141230T000000,20150106T000000,20160105T000000,20160112T000000 +PREV-INSTANCES:20160112T000000,20160105T000000,20150106T000000,20141230T000000,20140107T000000,20131231T000000,20130108T000000,20130101T000000 RRULE:FREQ=YEARLY;BYYEARDAY=366;UNTIL=20200101T000000 DTSTART:20121231T120000 |