Subject: Re: Environment variables? (Unix)
From: Erik Naggum <erik@naggum.no>
Date: 1995/04/28
Newsgroups: comp.lang.lisp
Message-ID: <19950428T113646Z.enag@naggum.no>

[Peter Seibel]

|   Is it possible to access Unix environment variables in Common Lisp.

only on Unix implementations.

|   I looked through CLtL2 and couldn't quite find anything that made it
|   clear to me.

system-dependent issues wouldn't be described in CLtL2.

|   If so how does one access them.

well, first you need find the function.  (apropos "getenv") would be a
start.  (list-all-packages) will list all packages, and you may be able to
focus apropos printout if you limit it to a particular package, as in
(apropos "environment" :extensions).

unfortunately, the three Lisps that I just tested on have not agreed on how
to do it.  here's a unified version

(defun get-environment-variable (var)
  "Return the value of environment variable VAR, or NIL if none."
  (declare (string var))
  (prog1
    #+(and :unix :cmu17) (cdr (assoc (intern var :keyword) *environment-list*))
    #+(and :unix :kcl)   (system:getenv var)	;also AKCL, GCL
    #+(and :unix :clisp) (system::getenv var)
    nil))

can others add to this for their implementation?  it would be nice to have
a fully portable function among Unix systems.

#<Erik>
--
sufficiently advanced political correctness is indistinguishable from sarcasm