From 3d7e1cf403961d03bb08af1332c8226c0b0cef6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Tue, 18 Feb 2020 02:03:55 +0100 Subject: Freed datetime from its srfi-19 prison. --- module/datetime.scm | 632 ++++++++++++++++++++++++++++++ module/datetime/util.scm | 167 ++++++++ module/entry-points/html.scm | 4 +- module/entry-points/ical.scm | 4 +- module/entry-points/server.scm | 6 +- module/entry-points/terminal.scm | 4 +- module/main.scm | 1 - module/output/html.scm | 4 +- module/output/ical.scm | 4 +- module/output/terminal.scm | 4 +- module/srfi/srfi-19/alt.scm | 632 ------------------------------ module/srfi/srfi-19/alt/util.scm | 167 -------- module/vcomponent/datetime.scm | 4 +- module/vcomponent/group.scm | 4 +- module/vcomponent/load.scm | 4 +- module/vcomponent/output.scm | 4 +- module/vcomponent/parse.scm | 7 +- module/vcomponent/recurrence/generate.scm | 5 +- module/vcomponent/recurrence/internal.scm | 2 +- module/vcomponent/recurrence/parse.scm | 4 +- module/vulgar/components.scm | 2 +- 21 files changed, 830 insertions(+), 835 deletions(-) create mode 100644 module/datetime.scm create mode 100644 module/datetime/util.scm delete mode 100644 module/srfi/srfi-19/alt.scm delete mode 100644 module/srfi/srfi-19/alt/util.scm (limited to 'module') diff --git a/module/datetime.scm b/module/datetime.scm new file mode 100644 index 00000000..83f49641 --- /dev/null +++ b/module/datetime.scm @@ -0,0 +1,632 @@ +(define-module (datetime) + :export (date? year month day + hour minute second + time? datetime? + ) + + :use-module (srfi srfi-1) + :use-module (srfi srfi-9) + :use-module (srfi srfi-9 gnu) + :use-module (ice-9 match) + + :use-module (util) + ) + +(define-many define-public + (jan january ) 1 + (feb february ) 2 + (mar mars ) 3 + (apr april ) 4 + (may ) 5 + (jun june ) 6 + (jul july ) 7 + (aug august ) 8 + (sep september ) 9 + (oct october ) 10 + (nov november ) 11 + (dec december ) 12 + ) + + +;;; RECORD TYPES + +;;; DATE + +(define-immutable-record-type + (make-date year month day) + date? + (year year) (month month) (day day)) + +(set-record-type-printer! + + (lambda (r p) + (if (or (not (integer? (year r))) + (not (integer? (month r))) + (not (integer? (day r)))) + (format p "BAD~s-~s-~s" (year r) (month r) (day r)) + (format p "~4'0d-~2'0d-~2'0d" + (year r) (month r) (day r))))) + +(define*-public (date key: (year 0) (month 0) (day 0)) + (make-date year month day)) + +;;; TIME + +(define-immutable-record-type