diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-07-08 01:53:26 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-07-08 01:53:26 +0200 |
commit | c8d03f1d166cbaa1f28dc0956a6f7771567a6d03 (patch) | |
tree | 05bcec5f8306854342469e5d941cc5c7bd30b8b2 /module | |
parent | Fixes in add-event. (diff) | |
download | calp-c8d03f1d166cbaa1f28dc0956a6f7771567a6d03.tar.gz calp-c8d03f1d166cbaa1f28dc0956a6f7771567a6d03.tar.xz |
Add remove-event.
Diffstat (limited to 'module')
-rw-r--r-- | module/vcomponent.scm | 23 |
1 files changed, 23 insertions, 0 deletions
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) |