35 lines
1.1 KiB
Scheme
35 lines
1.1 KiB
Scheme
|
;; utilities for surflets
|
||
|
;; Copyright 2002, 2003 Andreas Bernauer
|
||
|
|
||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
;;; from parse-html-forms (cgi-script)
|
||
|
;;; Return the form data as an alist of decoded strings.
|
||
|
;;; So a query string like "button=on&reply=Oh,%20yes" becomes alist
|
||
|
;;; (("button" . "on") ("reply" . "Oh, yes"))
|
||
|
;;; This works only for GET and POST methods.
|
||
|
|
||
|
(define (form-query-list q)
|
||
|
(if q
|
||
|
(parse-html-form-query q)
|
||
|
'()))
|
||
|
|
||
|
;; from uri.scm
|
||
|
(define (rev-append a b) ; (append (reverse a) b)
|
||
|
(let rev-app ((a a) (b b)) ; Should be defined in a list-proc
|
||
|
(if (pair? a) ; package, not here.
|
||
|
(rev-app (cdr a) (cons (car a) b))
|
||
|
b)))
|
||
|
|
||
|
(define (make-callback function)
|
||
|
(call-with-current-continuation
|
||
|
(lambda (exit)
|
||
|
(let* ((req (send/suspend (lambda (new-url)
|
||
|
(exit new-url)))))
|
||
|
(function req)))))
|
||
|
|
||
|
;; FIXME: consider creating small names
|
||
|
(define generate-unique-name
|
||
|
(let ((id 0))
|
||
|
(lambda (type-string)
|
||
|
(set! id (+ 1 id))
|
||
|
(string-append type-string (number->string id)))))
|