aboutsummaryrefslogtreecommitdiff
path: root/vcalendar.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-03-08 14:49:57 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-03-08 14:49:57 +0100
commit58b2524b89d4db614aadbd8497b6e791e0d999cf (patch)
treeeba5a635e302b998751810920184fa4c72b25be7 /vcalendar.scm
parentFix error when looking at cloned events. (diff)
downloadcalp-58b2524b89d4db614aadbd8497b6e791e0d999cf.tar.gz
calp-58b2524b89d4db614aadbd8497b6e791e0d999cf.tar.xz
Move stuff between modules.
Diffstat (limited to 'vcalendar.scm')
-rw-r--r--vcalendar.scm22
1 files changed, 14 insertions, 8 deletions
diff --git a/vcalendar.scm b/vcalendar.scm
index 03817957..c664c1aa 100644
--- a/vcalendar.scm
+++ b/vcalendar.scm
@@ -6,7 +6,7 @@
#:use-module (util))
(define (parse-dates! cal)
-;;; Parse all start times into scheme date objects.
+ "Parse all start times into scheme date objects."
(for-each-in (children cal 'VEVENT)
(lambda (ev)
(transform-attr! ev "DTSTART" parse-datetime)
@@ -45,8 +45,8 @@
childs)))
(export children)
-(define-public set-attr! %vcomponent-set-attribute!)
-(define-public get-attr %vcomponent-get-attribute)
+(define set-attr! %vcomponent-set-attribute!)
+(define get-attr %vcomponent-get-attribute)
;; Enables symmetric get and set:
;; (set! (attr ev "KEY") 10)
@@ -59,11 +59,6 @@
(define-public (transform-attr! ev field transformer)
"Apply transformer to field in ev, and store the result back."
- #;
- (set-attr! ev field
- (transformer
- (get-attr ev field)))
-
;; TODO make transform C primitive.
;; Halfing the lookups.
(set! (attr ev field)
@@ -72,3 +67,14 @@
;; { (attr ev field) := (transformer (attr ev field)) }
(define-public copy-vcomponent %vcomponent-shallow-copy)
+
+(define-public (search cal term)
+ (cdr (let ((events (filter (lambda (ev) (eq? 'VEVENT (type ev)))
+ (children cal))))
+ (find (lambda (ev) (string-contains-ci (car ev) term))
+ (map cons (map (cut get-attr <> "SUMMARY")
+ events)
+ events)))))
+
+(define-public (extract field)
+ (cut get-attr <> field))