aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/parse/types.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/vcomponent/parse/types.scm')
-rw-r--r--module/vcomponent/parse/types.scm24
1 files changed, 11 insertions, 13 deletions
diff --git a/module/vcomponent/parse/types.scm b/module/vcomponent/parse/types.scm
index 7e4df6b7..e9c5e811 100644
--- a/module/vcomponent/parse/types.scm
+++ b/module/vcomponent/parse/types.scm
@@ -102,23 +102,21 @@
(define (parse-uri props value)
value)
-(define-immutable-record-type <utc-offset>
- (make-utc-offset pm hour minute second)
- utc-offset?
- (pm offset-pm)
- (hour offset-hour)
- (minute offset-minute)
- (second offset-second))
+(use-modules (datetime timespec))
;; UTC-OFFSET
(define (parse-utc-offset props value)
- (make-utc-offset
+ (make-timespec
+ (time
+ hour: (string->number (substring value 1 3))
+ minute: (string->number (substring value 3 5))
+ second: (if (= 7 (string-length value))
+ (string->number (substring value 5 7))
+ 0))
+ ;; sign
(string->symbol (substring value 0 1))
- (string->number (substring value 1 3))
- (string->number (substring value 3 5))
- (if (= 7 (string-length value))
- (string->number (substring value 5 7))
- 0)))
+ #\z))
+
(define type-parsers (make-hash-table))
(hashq-set! type-parsers 'BINARY parse-binary)