+2005-11-07 Kevin Rosenberg (kevin@rosenberg.net)
+ * Version 1.5.5
+ * src/os.lisp: Add support for getenv getter and setter
+
2005-09-17 Kevin Rosenberg (kevin@rosenberg.net)
* Version 1.5.4
* src/objects.lisp: prepend _ character for entry
(in-package #:uffi)
+
+(defun getenv (var)
+ "Return the value of the environment variable."
+ #+allegro (sys::getenv (string var))
+ #+clisp (sys::getenv (string var))
+ #+cmu (cdr (assoc (string var) ext:*environment-list* :test #'equalp
+ :key #'string))
+ #+gcl (si:getenv (string var))
+ #+lispworks (lw:environment-variable (string var))
+ #+lucid (lcl:environment-variable (string var))
+ #+mcl (ccl::getenv var)
+ #+sbcl (sb-ext:posix-getenv var)
+ #-(or allegro clisp cmu gcl lispworks lucid mcl sbcl)
+ (error 'not-implemented :proc (list 'getenv var)))
+
+(defun (setf getenv) (val var)
+ "Set an environment variable."
+ #+allegro (setf (sys::getenv (string var)) (string val))
+ #+clisp (setf (sys::getenv (string var)) (string val))
+ #+cmu (let ((cell (assoc (string var) ext:*environment-list* :test #'equalp
+ :key #'string)))
+ (if cell
+ (setf (cdr cell) (string val))
+ (push (cons (intern (string var) "KEYWORD") (string val)) ext:*environment-list*)))
+ #+gcl (si:setenv (string var) (string val))
+ #+lispworks (setf (lw:environment-variable (string var)) (string val))
+ #+lucid (setf (lcl:environment-variable (string var)) (string val))
+ #-(or allegro clisp cmu gcl lispworks lucid)
+ (error 'not-implemented :proc (list '(setf getenv) var)))
+
+
;; modified from function ASDF -- Copyright Dan Barlow and Contributors
(defun run-shell-command (control-string &rest args &key output)
:licence "Lessor Lisp General Public License"
:description "Universal Foreign Function Library for Common Lisp"
:long-description "UFFI provides a universal foreign function interface (FFI) for Common Lisp. UFFI supports CMUCL, Lispworks, and AllegroCL."
-
+
:components
((:module :src
:components