aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-03-21 01:17:20 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-03-21 01:53:21 +0100
commit5d5b2cc1ac7d999d1495a1563cce7e306d3dc956 (patch)
treeb148fc7bb20d43d09c0488b4b549bfd7d7b08ef8
parentFix up fetch to use better abstractions. (diff)
downloadcalp-5d5b2cc1ac7d999d1495a1563cce7e306d3dc956.tar.gz
calp-5d5b2cc1ac7d999d1495a1563cce7e306d3dc956.tar.xz
Update utility functions.
-rw-r--r--util.scm9
-rw-r--r--vcalendar.scm4
-rw-r--r--vcalendar/recur.scm5
3 files changed, 15 insertions, 3 deletions
diff --git a/util.scm b/util.scm
index 672f1ddc..d19bdc85 100644
--- a/util.scm
+++ b/util.scm
@@ -3,7 +3,7 @@
#:export (destructure-lambda let-multi fold-lists catch-let
for-each-in
define-quick-record define-quick-record!
- mod! sort*)
+ mod! sort* sort*!)
#:replace (let*)
)
@@ -119,3 +119,10 @@
(sort items (lambda (a b)
(comperator (get a)
(get b)))))
+
+;;; This function borrowed from web-ics (calendar util)
+(define* (sort*! items comperator #:optional (get identity))
+ "A sort function more in line with how python's sorted works"
+ (sort! items (lambda (a b)
+ (comperator (get a)
+ (get b)))))
diff --git a/vcalendar.scm b/vcalendar.scm
index 1145b16e..3f7ba6ba 100644
--- a/vcalendar.scm
+++ b/vcalendar.scm
@@ -1,9 +1,11 @@
(define-module (vcalendar)
#:use-module (vcalendar primitive)
#:use-module (vcalendar datetime)
+ #:use-module (vcalendar recur)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
- #:use-module (util))
+ #:use-module (util)
+ #:re-export (repeating?))
(define (parse-dates! cal)
"Parse all start times into scheme date objects."
diff --git a/vcalendar/recur.scm b/vcalendar/recur.scm
index ccdb3aa7..9ae60fb7 100644
--- a/vcalendar/recur.scm
+++ b/vcalendar/recur.scm
@@ -10,7 +10,7 @@
#:use-module (vcalendar datetime)
#:use-module (util)
- #:export (recur-event))
+ #:export (recur-event repeating?))
;; (build-recur-rules "FREQ=HOURLY")
;; ;; => #<<recur-rule> freq: HOURLY until: #f count: #f interval: #f>
@@ -22,6 +22,9 @@
;; ;; => #<<recur-rule> freq: HOURLY until: #f count: #f interval: #f>
;; (build-recur-rules "FREQ=HOURLY;COUNT=-1")
;; ;; => #<<recur-rule> freq: HOURLY until: #f count: #f interval: #f>
+(define (repeating? ev)
+ "Does this event repeat?"
+ (attr ev 'RRULE))
(define-quick-record recur-rule
freq until count interval bysecond byminute byhour