From: Kevin M. Rosenberg Date: Fri, 4 Nov 2005 19:02:52 +0000 (+0000) Subject: r10799: 2005-11-07 Kevin Rosenberg (kevin@rosenberg.net) X-Git-Tag: v1.6.1~36 X-Git-Url: http://git.kpe.io/?p=uffi.git;a=commitdiff_plain;h=1eef42e18bc87785aec91ce4710085d30898b160 r10799: 2005-11-07 Kevin Rosenberg (kevin@rosenberg.net) * Version 1.5.5 * src/os.lisp: Add support for getenv getter and setter --- diff --git a/ChangeLog b/ChangeLog index d9a6410..d9aafe3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +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 diff --git a/debian/changelog b/debian/changelog index b9afaf9..0264cfe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cl-uffi (1.5.5-1) unstable; urgency=low + + * New upstream + + -- Kevin M. Rosenberg Fri, 4 Nov 2005 11:59:50 -0700 + cl-uffi (1.5.4-1) unstable; urgency=low * New upstream diff --git a/src/os.lisp b/src/os.lisp index bcbf658..075be96 100644 --- a/src/os.lisp +++ b/src/os.lisp @@ -15,6 +15,37 @@ (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) diff --git a/src/package.lisp b/src/package.lisp index 7aa665f..abaad46 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -76,6 +76,7 @@ ;; OS #:run-shell-command + #:getenv )) diff --git a/uffi.asd b/uffi.asd index 84b60d1..3f17945 100644 --- a/uffi.asd +++ b/uffi.asd @@ -25,7 +25,7 @@ :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