Update of /project/clhp/cvsroot/clhp In directory common-lisp.net:/tmp/cvs-serv18549
Modified Files: cgi.lisp ChangeLog Log Message: (a-list-value): Convenience macro for getting the values of a-lists
Date: Thu Oct 2 13:43:06 2003 Author: aventimiglia
Index: clhp/cgi.lisp diff -u clhp/cgi.lisp:1.3 clhp/cgi.lisp:1.4 --- clhp/cgi.lisp:1.3 Wed Oct 1 10:32:45 2003 +++ clhp/cgi.lisp Thu Oct 2 13:43:06 2003 @@ -1,5 +1,5 @@ (ext:file-comment - "$Id: cgi.lisp,v 1.3 2003/10/01 14:32:45 aventimiglia Exp $") + "$Id: cgi.lisp,v 1.4 2003/10/02 17:43:06 aventimiglia Exp $") ;; ;; CLHP the Common Lisp Hypertext Preprocessor ;; (C) 2003 Anthony J Ventimiglia @@ -42,6 +42,10 @@ ex: (EXPLODE-STRING ("Hello") --> (#\H #\e #\l #\l #\o)" `(concatenate 'list ,string))
+(defmacro a-list-value (key a-list) + "returns the value from a (KEY . VALUE) A-LIST" + `(cdr (assoc ,key ,a-list))) + ;; External Symbol section
(defvar *server-env* nil @@ -89,7 +93,8 @@ (setf *server-env* ext:*environment-list* *query-vars* (let ((request-method (make-keyword - (cdr (assoc :REQUEST_METHOD *server-env*))))) + (a-list-value :REQUEST_METHOD + *server-env*)))) (cond ((eql request-method :POST) (query-to-a-list (post-data))) @@ -147,8 +152,7 @@
(defun get-data () "Returns GET data (QUERY_STRING) as an exploded string" - (explode-string - (cdr (assoc :QUERY_STRING *server-env*)))) + (explode-string (a-list-value :QUERY_STRING *server-env*)))
;; The closure makes sure we don't try to read from stdin twice (let ((get-switch nil) @@ -161,7 +165,7 @@ get-switch t post-char-list (read-n-chars (read-from-string - (cdr (assoc :CONTENT_LENGTH *server-env*))))) + (a-list-value :CONTENT_LENGTH *server-env*)))) post-char-list) post-char-list)))
Index: clhp/ChangeLog diff -u clhp/ChangeLog:1.5 clhp/ChangeLog:1.6 --- clhp/ChangeLog:1.5 Wed Oct 1 15:12:21 2003 +++ clhp/ChangeLog Thu Oct 2 13:43:06 2003 @@ -1,3 +1,8 @@ +2003-10-02 ant@afghan.dogpound + + * cgi.lisp (a-list-value): Convenience macro for getting the + values of a-lists + 2003-10-01 ant@afghan.dogpound
* tests/cgi-test.lisp: Beginning tests for CGI package, right now