From c8d03f1d166cbaa1f28dc0956a6f7771567a6d03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Wed, 8 Jul 2020 01:53:26 +0200 Subject: Add remove-event. --- module/vcomponent.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/module/vcomponent.scm b/module/vcomponent.scm index de816886..7ae9adae 100644 --- a/module/vcomponent.scm +++ b/module/vcomponent.scm @@ -100,6 +100,29 @@ (prop event 'UID)) +(define-public (remove-event event) + + (let ((events (getf 'events))) + (setf 'events (delete event events))) + + (if (repeating? event) + (let ((repeating (getf 'repeating-events))) + (setf 'repeating-events (delete event repeating))) + (let ((regular (getf 'fixed-events))) + (setf 'fixed-events (delete event regular)))) + + (let ((event-set (getf 'event-set))) + (setf 'event-set + (stream-remove + (lambda (ev) + (equal? (prop ev 'UID) + (prop event 'UID))) + event-set))) + + (hash-set! (getf 'uid-map) (prop event 'UID) + #f)) + + (define / file-name-separator-string) (define-public (save-event event) -- cgit v1.2.3