aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-06-25 22:36:15 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-06-25 22:36:15 +0200
commit72f41620c8c674fe1232f07bedd91bf0d7874ea2 (patch)
tree3f5b271831092967c07bc4a6c7515a6628084316
parentMove stuff from output/ical to output/common./ (diff)
downloadcalp-72f41620c8c674fe1232f07bedd91bf0d7874ea2.tar.gz
calp-72f41620c8c674fe1232f07bedd91bf0d7874ea2.tar.xz
Fix GEO output.
-rw-r--r--module/output/ical.scm6
-rw-r--r--module/vcomponent/geo.scm11
-rw-r--r--module/vcomponent/parse/component.scm6
3 files changed, 17 insertions, 6 deletions
diff --git a/module/output/ical.scm b/module/output/ical.scm
index 013de5fb..b10e0c56 100644
--- a/module/output/ical.scm
+++ b/module/output/ical.scm
@@ -65,7 +65,11 @@
(get-writer 'INTEGER)]
[(memv key '(GEO))
- (error "Fuck you")]
+ (lambda (_ v)
+ (define fl (get-writer 'FLOAT))
+ (format #f "~a:~a"
+ (fl (geo-latitude v))
+ (fl (geo-longitude v))))]
[(memv key '(RRULE))
(get-writer 'RECUR)]
diff --git a/module/vcomponent/geo.scm b/module/vcomponent/geo.scm
new file mode 100644
index 00000000..2a343ed9
--- /dev/null
+++ b/module/vcomponent/geo.scm
@@ -0,0 +1,11 @@
+(define-module (vcomponent geo)
+ :use-module (util)
+ :use-module (srfi srfi-9 gnu))
+
+(define-immutable-record-type <geographical-position>
+ (make-geo latitude longitude)
+ geo-pos?
+ (latitude geo-latitude)
+ (longitude geo-longitude))
+
+(export make-geo geo-pos? geo-latitude geo-longitude)
diff --git a/module/vcomponent/parse/component.scm b/module/vcomponent/parse/component.scm
index f7dbdf71..6f522e8f 100644
--- a/module/vcomponent/parse/component.scm
+++ b/module/vcomponent/parse/component.scm
@@ -8,6 +8,7 @@
:use-module (srfi srfi-9 gnu)
:use-module (srfi srfi-26)
:use-module (vcomponent parse types)
+ :use-module (vcomponent geo)
)
(define-public (parse-calendar port)
@@ -20,11 +21,6 @@
(file get-file)
(line get-line))
-(define-immutable-record-type <geographical-position>
- (make-geo latitude longitude)
- geo-pos?
- (latitude geo-latitude)
- (longitude geo-longitude))
;; port → (list <line>)
(define (read-file port)