diff options
Diffstat (limited to 'module/vcomponent')
-rw-r--r-- | module/vcomponent/datetime.scm | 1 | ||||
-rw-r--r-- | module/vcomponent/parse/types.scm | 24 |
2 files changed, 12 insertions, 13 deletions
diff --git a/module/vcomponent/datetime.scm b/module/vcomponent/datetime.scm index 057b9ca1..f4f517eb 100644 --- a/module/vcomponent/datetime.scm +++ b/module/vcomponent/datetime.scm @@ -2,6 +2,7 @@ #:use-module (srfi srfi-1) #:use-module (vcomponent base) #:use-module (datetime) + #:use-module (datetime timespec) #:use-module (datetime util) #:use-module (datetime zic) #:use-module (util) 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) |