aboutsummaryrefslogtreecommitdiff
path: root/module/web/query.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/web/query.scm')
-rw-r--r--module/web/query.scm15
1 files changed, 8 insertions, 7 deletions
diff --git a/module/web/query.scm b/module/web/query.scm
index a70903bc..2d62b45d 100644
--- a/module/web/query.scm
+++ b/module/web/query.scm
@@ -1,6 +1,7 @@
(define-module (web query)
:use-module (hnh util)
:use-module (srfi srfi-1)
+ :use-module (srfi srfi-71)
:use-module (web uri))
(define*-public (parse-query query-string optional: (encoding "UTF-8"))
@@ -8,12 +9,12 @@
(fold (lambda (str list)
;; only split on the first equal.
;; Does HTTP allow multiple equal signs in a data field?
- (let* ((key val
- (cond ((string-index str #\=)
- => (lambda (idx)
- (values (uri-decode (substring str 0 idx) encoding: encoding)
- (uri-decode (substring str (1+ idx)) encoding: encoding))))
- (else (let ((v (uri-decode str encoding: encoding)))
- (values v v))))))
+ (let ((key val
+ (cond ((string-index str #\=)
+ => (lambda (idx)
+ (values (uri-decode (substring str 0 idx) encoding: encoding)
+ (uri-decode (substring str (1+ idx)) encoding: encoding))))
+ (else (let ((v (uri-decode str encoding: encoding)))
+ (values v v))))))
(cons* (-> key string->symbol symbol->keyword) val list)))
'() (string-split query-string #\&))))