The (www cgi) module parses query-string/form-data without performing an
url-decode on names. Values are url-decoded.
Module: www cgi
Version: 2.9
Example:
http://gnu.org?with%26amper=
should parse to (withamper . '()). But, incorrectly parses to
(with%26amper . '()).
Suggested patch:
cgi.scm
guile-www-2.9 (www cgi) captures the CGI Environment once. If the
containing process is called to serve a subsequent request, the values
will usually be wrong. The current implementation is not friendly to
mod-lisp/fastcgi uses (or testing!).
Module: www cgi
Version: 2.9
The *env-alist*
The (www cgi) module parses query-string/form-data parameters but loses
the order of the name/value pairs.
Module: www cgi
Version: 2.9
Specifically, it reverses the order of the names (and values when a name
appears more than once). This behavior is not documented (and thus not
guaranteed).
The (www cgi) module parses query-string/form-data parameters
incorrectly, thus cgi:value, cgi-values, cgi:names, and cgi:form-data?
will give incorrect results.
Module: www cgi
Version: 2.9
The low-level split function, separate-fields-discarding-char,
discards a key if there is no value.
From: Alan Grover [EMAIL PROTECTED]
Date: Mon, 11 Apr 2005 19:10:24 -0400
cgi.scm
286c286
(and p (subs pair 0 p
---
(and p (url-coding:decode (subs pair 0 p)
thanks, installed.
here is the ChangeLog entry i used:
2005-04-12 Alan Grover [EMAIL
It appears that module (ice-9 optargs-kw) is renamed (ice-9 optargs) in
guile 1.6.4?
Module (www cgi)
Version 2.9
I do not know when the ice-9 module was renamed. I didn't investigate
further than to see that (www cgi) will load and parse urls. Perhaps I
didn't investigate far enough to
Fixes the following:
* Change a use-module statement to (ice-9 optargs) instead of (ice-9
optargs-kw). Not deeply investigated.
* Tolerates query-strings without a = for empty names. Thus:
http://gnu.org?a=1b will give two names (a and b), where b has the
value .
* Tolerates query-strings where
$B###!V(B1$B1_!WJ,L5NA%]%$%s%HB#Dh%-%c%s%Z!%sB;\Cf!*###(B
$B$3$N=U$N=P2q$$$r6/NO$K;Y1g$7$^$9!*(B
$B:#$9$0EPO?$7$FD:$$$?J}$K$O!;O$a$K(B1$B1_J,$N%]%$%s%H$rL5NA$G:9$7e$2$^$9!*(B
$B!(B1$B1_L5NA%]%$%s%H$H?7$7$$=P2q$$(BGET$B!(B
http://awg.qsv20.com/?springd