diff options
Diffstat (limited to 'http-cgi.scm')
-rw-r--r-- | http-cgi.scm | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/http-cgi.scm b/http-cgi.scm index 02aade3..517e312 100644 --- a/http-cgi.scm +++ b/http-cgi.scm @@ -1,5 +1,5 @@ ;;; "http-cgi.scm" service HTTP or CGI requests. -*-scheme-*- -; Copyright 1997, 1998, 2000, 2001 Aubrey Jaffer +; Copyright 1997, 1998, 2000, 2001, 2003 Aubrey Jaffer ; ;Permission to copy this software, to modify it, to redistribute it, ;to distribute modified versions, and to use it for any purpose is @@ -8,7 +8,7 @@ ;1. Any copy made of this software must include this copyright notice ;in full. ; -;2. I have made no warrantee or representation that the operation of +;2. I have made no warranty or representation that the operation of ;this software will be error-free, and I am under no obligation to ;provide any services, by way of maintenance, update, or otherwise. ; @@ -25,6 +25,10 @@ (require 'html-form) (require 'parameters) (require 'string-case) +(require 'string-port) +(require 'string-search) +(require 'database-commands) +(require 'common-list-functions) ; position ;;@code{(require 'http)} or @code{(require 'cgi)} ;;@ftindex http @@ -342,22 +346,20 @@ reply)))) (define (coerce->list str type) - (case type - ((expression) - (slib:warn 'coerce->list 'unsafe 'read) - (do ((tok (read port) (read port)) - (lst '() (cons tok lst))) - ((or (null? tok) (eof-object? tok)) lst))) - ((symbol) - (call-with-input-string str - (lambda (port) + (call-with-input-string str + (lambda (port) + (case type + ((expression) + (slib:warn 'coerce->list 'unsafe 'read) + (do ((tok (read port) (read port)) + (lst '() (cons tok lst))) + ((or (null? tok) (eof-object? tok)) lst))) + ((symbol) (do ((tok (scanf-read-list " %s" port) (scanf-read-list " %s" port)) (lst '() (cons (string-ci->symbol (car tok)) lst))) - ((or (null? tok) (eof-object? tok)) lst))))) - (else - (call-with-input-string str - (lambda (port) + ((or (null? tok) (eof-object? tok)) lst))) + (else (do ((tok (scanf-read-list " %s" port) (scanf-read-list " %s" port)) (lst '() (cons (coerce (car tok) type) lst))) @@ -411,7 +413,7 @@ (define comnam #f) (define find-command? (lambda (cname) - (define tryp (parameter-list-ref query-alist cname)) + (define tryp (and query-alist (parameter-list-ref query-alist cname))) (cond ((not tryp) #f) (comnam (set! query-alist (remove-parameter cname query-alist))) |