aboutsummaryrefslogtreecommitdiff
path: root/module/calp/webdav/property.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/calp/webdav/property.scm')
-rw-r--r--module/calp/webdav/property.scm21
1 files changed, 13 insertions, 8 deletions
diff --git a/module/calp/webdav/property.scm b/module/calp/webdav/property.scm
index 4e235f81..3c919e2e 100644
--- a/module/calp/webdav/property.scm
+++ b/module/calp/webdav/property.scm
@@ -42,7 +42,7 @@
;; @example
;; `((,(xml ns tag) "Content"))
;; @end example
- propstat-property
+ (propstat-property type: (list-of xml-element?))
;; See [WEBCAL] propstat XML element
(propstat-error keyword: error)
@@ -87,10 +87,15 @@
;; `((d:responsedescription ,it)))))
(define (propstat->namespaced-sxml propstat)
- `(,(xml webdav 'propstat)
- (,(xml webdav 'prop) ,@(propstat-property propstat))
- (,(xml webdav 'status) ,(http-status-line (propstat-status-code propstat)))
- ,@(awhen (propstat-error propstat)
- `((,(xml webdav 'error) ,it)))
- ,@(awhen (propstat-response-description propstat)
- `((,(xml webdav 'responsedescription) ,it)))))
+ (apply (xml webdav 'propstat)
+ (append
+
+ (list
+ (apply (xml webdav 'prop) (propstat-property propstat))
+ ((xml webdav 'status) (http-status-line (propstat-status-code propstat))))
+
+ (awhen (propstat-error propstat)
+ (list ((xml webdav 'error) it)))
+
+ (awhen (propstat-response-description propstat)
+ (list ((xml webdav 'responsedescription) it))))))