aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-06-13 02:37:20 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-06-13 02:37:20 +0200
commitaccd3cc7cf5c008cecabf5cea07799569a9bfbed (patch)
tree83178645dd8f5e0ff9e91e7c0efcbb92e096bec0
parentProof-read all the generated test sets. (diff)
downloadcalp-accd3cc7cf5c008cecabf5cea07799569a9bfbed.tar.gz
calp-accd3cc7cf5c008cecabf5cea07799569a9bfbed.tar.xz
Fix unless-clauses in make-extenders.
-rw-r--r--module/vcomponent/recurrence/generate.scm7
-rw-r--r--tests/recurrence.scm36
2 files changed, 36 insertions, 7 deletions
diff --git a/module/vcomponent/recurrence/generate.scm b/module/vcomponent/recurrence/generate.scm
index acc45b33..0b49f96b 100644
--- a/module/vcomponent/recurrence/generate.scm
+++ b/module/vcomponent/recurrence/generate.scm
@@ -51,8 +51,8 @@
[('unless pred field)
`(let ((yearday (,(by-proc 'yearday) ,rr))
(monthday (,(by-proc 'monthday) ,rr)))
- ,(if pred #f
- (it field)))]
+ (if ,pred #f
+ ,(self field)))]
[field
`(and=> (,(by-proc field) ,rr)
,(if extender?
@@ -74,7 +74,8 @@
(define (all-extenders rrule)
(make-extenders
rrule
- [YEARLY || month weekno yearday monthday (unless (or yearday monthday) day)
+ [YEARLY || month weekno yearday monthday
+ (unless (or yearday monthday) day)
hour minute second]
[MONTHLY || monthday (unless monthday day) hour minute second]
[WEEKLY || day hour minute second]
diff --git a/tests/recurrence.scm b/tests/recurrence.scm
index ea203713..a96584a3 100644
--- a/tests/recurrence.scm
+++ b/tests/recurrence.scm
@@ -701,7 +701,7 @@
(datetime #:date #1999-03-13 #:time #09:00:00)))
(vevent
- summary: "Every Tuesday, every other month NOTE SHOULD WILL FAIL DUE TO FEW EXAMPLES"
+ summary: "Every Tuesday, every other month"
dtstart: "19970902T090000"
rrule: "FREQ=MONTHLY;INTERVAL=2;BYDAY=TU"
x-summary: "varje tisdag varannan månad"
@@ -713,7 +713,18 @@
(datetime #:date #1997-11-04 #:time #09:00:00)
(datetime #:date #1997-11-11 #:time #09:00:00)
(datetime #:date #1997-11-18 #:time #09:00:00)
- (datetime #:date #1997-11-25 #:time #09:00:00)))
+ (datetime #:date #1997-11-25 #:time #09:00:00)
+ (datetime #:date #1998-01-06 #:time #09:00:00)
+ (datetime #:date #1998-01-13 #:time #09:00:00)
+ (datetime #:date #1998-01-20 #:time #09:00:00)
+ (datetime #:date #1998-01-27 #:time #09:00:00)
+ (datetime #:date #1998-03-03 #:time #09:00:00)
+ (datetime #:date #1998-03-10 #:time #09:00:00)
+ (datetime #:date #1998-03-17 #:time #09:00:00)
+ (datetime #:date #1998-03-24 #:time #09:00:00)
+ (datetime #:date #1998-03-31 #:time #09:00:00)
+ (datetime #:date #1998-05-05 #:time #09:00:00)
+ (datetime #:date #1998-05-12 #:time #09:00:00)))
(vevent
summary: "Yearly in June and July for 10 occurrences:
@@ -766,13 +777,30 @@ onents are specified, the day is gotten from \"DTSTART\""
(datetime #:date #2006-01-01 #:time #09:00:00)))
(vevent
- summary: "Every 20th Monday of the year, forever NOTE WILL FAIL DUE TO FEW EXAMPLES"
+ summary: "Every 20th Monday of the year, forever"
dtstart: "19970519T090000"
rrule: "FREQ=YEARLY;BYDAY=20MO"
x-summary: "tjugonde måndagen, årligen"
x-set: (list (datetime #:date #1997-05-19 #:time #09:00:00)
(datetime #:date #1998-05-18 #:time #09:00:00)
- (datetime #:date #1999-05-17 #:time #09:00:00)))
+ (datetime #:date #1999-05-17 #:time #09:00:00)
+ (datetime #:date #2000-05-15 #:time #09:00:00)
+ (datetime #:date #2001-05-14 #:time #09:00:00)
+ (datetime #:date #2002-05-20 #:time #09:00:00)
+ (datetime #:date #2003-05-19 #:time #09:00:00)
+ (datetime #:date #2004-05-17 #:time #09:00:00)
+ (datetime #:date #2005-05-16 #:time #09:00:00)
+ (datetime #:date #2006-05-15 #:time #09:00:00)
+ (datetime #:date #2007-05-14 #:time #09:00:00)
+ (datetime #:date #2008-05-19 #:time #09:00:00)
+ (datetime #:date #2009-05-18 #:time #09:00:00)
+ (datetime #:date #2010-05-17 #:time #09:00:00)
+ (datetime #:date #2011-05-16 #:time #09:00:00)
+ (datetime #:date #2012-05-14 #:time #09:00:00)
+ (datetime #:date #2013-05-20 #:time #09:00:00)
+ (datetime #:date #2014-05-19 #:time #09:00:00)
+ (datetime #:date #2015-05-18 #:time #09:00:00)
+ (datetime #:date #2016-05-16 #:time #09:00:00)))
(vevent
summary: "Monday of week number 20 (where the default start of the week is Monday), forever"