aboutsummaryrefslogtreecommitdiff
path: root/module
diff options
context:
space:
mode:
Diffstat (limited to 'module')
-rw-r--r--module/vcomponent.scm16
-rw-r--r--module/vcomponent/primitive.scm2
-rw-r--r--module/vcomponent/timezone.scm2
3 files changed, 13 insertions, 7 deletions
diff --git a/module/vcomponent.scm b/module/vcomponent.scm
index d1a0abff..1bb5c264 100644
--- a/module/vcomponent.scm
+++ b/module/vcomponent.scm
@@ -40,6 +40,7 @@
(set! (attr ev "DTSTART") (date->time-utc date)
(attr ev "DTEND") (date->time-utc end-date))
+ #;
(when (prop (attr* ev 'DTSTART) 'TZID)
(set! (zone-offset date) (get-tz-offset ev)
(attr ev 'DTSTART) (date->time-utc date)
@@ -65,9 +66,9 @@
component
(as-symb attr)))
-(define (set-attr! component attr value)
- (set! (car (get-attr component (as-string attr)))
- value))
+;; (define (set-attr! component attr value)
+;; (set! (car (get-attr component (as-string attr)))
+;; value))
(define-public value caar)
(define-public next cdr)
@@ -87,11 +88,14 @@
(define-public attr* get-attr)
(define (get-first c a)
- (and=> (car (get-attr c a)) car))
+ (and=> (get-attr c a) caar))
(define (set-first! c a v)
- (and=> (car (get-attr c a))
- (lambda (f) (set! (car f) v))))
+ (let ((g (get-attr c a)))
+ (if g
+ (set! (caar g) v)
+ (hashq-set! (%vcomponent-get-hash-table c)
+ a (list (cons v (make-hash-table)))))))
(define-public attr
(make-procedure-with-setter
diff --git a/module/vcomponent/primitive.scm b/module/vcomponent/primitive.scm
index 53d73652..433e31ed 100644
--- a/module/vcomponent/primitive.scm
+++ b/module/vcomponent/primitive.scm
@@ -13,6 +13,8 @@
%vcomponent-get-attribute
%vcomponent-attribute-list
+ %vcomponent-get-hash-table
+
%vcomponent-shallow-copy))
diff --git a/module/vcomponent/timezone.scm b/module/vcomponent/timezone.scm
index 5b262f1c..1498639c 100644
--- a/module/vcomponent/timezone.scm
+++ b/module/vcomponent/timezone.scm
@@ -81,7 +81,7 @@
(and (time<=? start (attr ev 'DTSTART))
(time<? (attr ev 'DTSTART) end))))
(attr (find-tz (parent ev)
- (car (prop (attr* ev 'DTSTART) 'TZID)))
+ (prop (attr* ev 'DTSTART) 'TZID))
'X-HNH-TZSET))))
(if (not ret)
0 (parse-offset (attr (car ret) 'TZOFFSETTO)))))