aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/datetime
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-06-23 03:23:44 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2022-06-23 03:48:22 +0200
commit1976980d4a272fb7fc3694c734bfc6825edfc721 (patch)
tree8460db1176c64895e9968447588953fac85fe7d6 /module/vcomponent/datetime
parentRemove all inline use-modules. (diff)
downloadcalp-1976980d4a272fb7fc3694c734bfc6825edfc721.tar.gz
calp-1976980d4a272fb7fc3694c734bfc6825edfc721.tar.xz
Centralize (almost) all exports to :export in define-module.
Diffstat (limited to '')
-rw-r--r--module/vcomponent/datetime.scm34
-rw-r--r--module/vcomponent/datetime/output.scm14
2 files changed, 32 insertions, 16 deletions
diff --git a/module/vcomponent/datetime.scm b/module/vcomponent/datetime.scm
index bb4fe50e..5fb1148c 100644
--- a/module/vcomponent/datetime.scm
+++ b/module/vcomponent/datetime.scm
@@ -12,8 +12,20 @@
event-overlaps?
overlapping?
event-contains?
- ev-time<?)
- )
+ event-zero-length?
+ ev-time<?
+
+ event-length
+ event-length/clamped
+ event-length/day
+
+ long-event?
+ really-long-event?
+
+ events-between
+
+ zoneinfo->vtimezone
+ ))
;;; date time pointer
#;
@@ -50,16 +62,16 @@ Event must have the DTSTART and DTEND protperty set."
(end (add-day start)))
(event-overlaps? ev start end)))
-(define-public (event-zero-length? ev)
+(define (event-zero-length? ev)
(and (datetime? (prop ev 'DTSTART))
(not (prop ev 'DTEND))))
-(define-public (ev-time<? a b)
+(define (ev-time<? a b)
(date/-time<? (prop a 'DTSTART)
(prop b 'DTSTART)))
;; Returns length of the event @var{e}, as a time-duration object.
-(define-public (event-length e)
+(define (event-length e)
(if (not (prop e 'DTEND))
(if (date? (prop e 'DTSTART))
(date day: 1)
@@ -75,7 +87,7 @@ Event must have the DTSTART and DTEND protperty set."
;; |X| part of event within that time (X)
;;
;; Returns the length of the interval (X).
-(define-public (event-length/clamped start-date end-date e)
+(define (event-length/clamped start-date end-date e)
(let ((end (or (prop e 'DTEND)
(if (date? (prop e 'DTSTART))
(date+ (prop e 'DTSTART) (date day: 1))
@@ -94,7 +106,7 @@ Event must have the DTSTART and DTEND protperty set."
;; starting at the time @var{start-of-day}.
;; currently the secund argument is a date, but should possibly be changed
;; to a datetime to allow for more explicit TZ handling?
-(define-public (event-length/day date e)
+(define (event-length/day date e)
(if (not (prop e 'DTEND))
(if (date? (prop e 'DTSTART))
(time hour: 24)
@@ -121,7 +133,7 @@ Event must have the DTSTART and DTEND protperty set."
;; or if the total length of the event is greater than 24h.
;; For practical purposes, an event being long means that it shouldn't be rendered as a part
;; of a regular day.
-(define-public (long-event? ev)
+(define (long-event? ev)
(if (date? (prop ev 'DTSTART))
#t
(aif (prop ev 'DTEND)
@@ -129,7 +141,7 @@ Event must have the DTSTART and DTEND protperty set."
(datetime-difference it (prop ev 'DTSTART)))
#f)))
-(define-public (really-long-event? ev)
+(define (really-long-event? ev)
(let ((start (prop ev 'DTSTART))
(end (prop ev 'DTEND)))
(if (date? start)
@@ -153,7 +165,7 @@ Event must have the DTSTART and DTEND protperty set."
#f))))
;; date, date, [sorted-stream events] → [sorted-stream events]
-(define-public (events-between start-date end-date events)
+(define (events-between start-date end-date events)
(define (overlaps e)
(timespan-overlaps? start-date (date+ end-date (date day: 1))
(prop e 'DTSTART) (or (prop e 'DTEND)
@@ -212,7 +224,7 @@ Event must have the DTSTART and DTEND protperty set."
(<= (rule-from rule) start-y (rule-to rule))])))
;; event is for limiter
-(define-public (zoneinfo->vtimezone zoneinfo zone-name event)
+(define (zoneinfo->vtimezone zoneinfo zone-name event)
(define vtimezone (make-vcomponent 'VTIMEZONE))
(define last-until (datetime date: (date month: 1 day: 1)))
(define last-offset (timespec-zero))
diff --git a/module/vcomponent/datetime/output.scm b/module/vcomponent/datetime/output.scm
index b75fd564..614438da 100644
--- a/module/vcomponent/datetime/output.scm
+++ b/module/vcomponent/datetime/output.scm
@@ -5,11 +5,15 @@
:use-module (text util)
:use-module (calp translation)
:use-module ((hnh util exceptions) :select (warning))
- )
+ :export (format-recurrence-rule
+ format-summary
+ format-description
+ fmt-time-span
+ ))
;; ev → sxml
;; TODO translation
-(define-public (format-recurrence-rule ev)
+(define (format-recurrence-rule ev)
;; [FRR]
;; Part of the sentance "Repeated [every two weeks], except on ~a, ~a & ~a"
;; See everything tagged [FRR]
@@ -37,11 +41,11 @@
(map value it)))))
"."))
-(define-public (format-summary ev str)
+(define (format-summary ev str)
((@ (calp html filter) summary-filter) ev str))
;; NOTE this should have information about context (html/term/...)
-(define-public (format-description ev str)
+(define (format-description ev str)
(catch #t (lambda () ((@ (calp html filter) description-filter)
ev str))
(lambda (err . args)
@@ -53,7 +57,7 @@
;; Takes an event, and returns a pretty string for the time interval
;; the event occupies.
-(define-public (fmt-time-span ev)
+(define (fmt-time-span ev)
(cond [(prop ev 'DTSTART) date?
=> (lambda (s)
(cond [(prop ev 'DTEND)