From: Sam S. <sd...@gn...> - 2006-10-09 19:19:27
|
cli...@li... wrote: > +; ENV > +(defun env () > + "(FASTCGI::ENV) - Returns the entire set of environment variables as an array of two-element arrays, each of which is a pair #(VAR VAL)" please consider using an interface similar to the one already used by CLISP: http://clisp.cons.org/impnotes/getenv.html specifically: 1. you do not need a separate ENV function, just make GETENV argument optional 2. return an alist, not a vector of vectors. > + (check-active-request "ENV") > + (do* ((kv (fcgi_env)) > + (nkv (length kv)) > + (result (make-array (/ nkv 2))) > + (i 0 (+ i 2)) > + (ir 0 (1+ ir))) > + ((>= i nkv) result) > + (let ((pair (make-array 2))) > + (setf (aref pair 0) (aref kv i)) > + (setf (aref pair 1) (aref kv (1+ i))) > + (setf (aref result ir) pair)))) > + you can also just write (setf (aref result ir) (vector (aref kv i) (aref kv (1+ i))) |