aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/recurrence/parse.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/vcomponent/recurrence/parse.scm')
-rw-r--r--module/vcomponent/recurrence/parse.scm3
1 files changed, 3 insertions, 0 deletions
diff --git a/module/vcomponent/recurrence/parse.scm b/module/vcomponent/recurrence/parse.scm
index 1c974727..a4724918 100644
--- a/module/vcomponent/recurrence/parse.scm
+++ b/module/vcomponent/recurrence/parse.scm
@@ -71,17 +71,20 @@
(FREQ (memv symb intervals) => (set! (freq o) symb))
(WKST (memv symb weekdays) => (set! (wkst o) symb))
+ ;; Always positive
(BYSECOND (every (lambda (n) (<= 0 n 60)) nums) => (set! (bysecond o) nums))
(BYMINUTE (every (lambda (n) (<= 0 n 59)) nums) => (set! (byminute o) nums))
(BYHOUR (every (lambda (n) (<= 0 n 23)) nums) => (set! (byhour o) nums))
(BYMONTH (every (lambda (n) (<= 1 n 12)) nums) => (set! (byweekno o) nums))
+ ;; May be negative
(BYDAY (every (lambda (p) (memv (cdr p) weekdays)) days) => (set! (byday o) days))
(BYMONTHDAY (every (lambda (n) (and (!= n 0) (<= -31 n 31))) nums) => (set! (bymonthday o) nums))
(BYYEARDAY (every (lambda (n) (and (!= n 0) (<= -366 n 366))) nums) => (set! (byyearday o) nums))
(BYSETPOS (every (lambda (n) (and (!= n 0) (<= -366 n 366))) nums) => (set! (bysetpos o) nums))
(BYWEEKNO (every (lambda (n) (and (!= n 0) (<= -53 n 53))) nums) => (set! (byweekno o) nums))
+
(else o)))))
;; obj