X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fos.lisp;h=075be960a80da83749c49669fdaa04fb3c23758d;hb=1eef42e18bc87785aec91ce4710085d30898b160;hp=3e3a60b1d9676d0dc3ddfa975c48ed53cdb727cb;hpb=51a8e53201f8883fbd093fe45936d98128a8a5fe;p=uffi.git diff --git a/src/os.lisp b/src/os.lisp index 3e3a60b..075be96 100644 --- a/src/os.lisp +++ b/src/os.lisp @@ -7,19 +7,45 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Sep 2002 ;;;; -;;;; $Id: os.lisp,v 1.5 2003/06/06 21:59:18 kevin Exp $ +;;;; $Id$ ;;;; -;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg. -;;;; Much of this code was taken from other open source project and copyright -;;;; for that code is noted below where appropriate. +;;;; This file, part of UFFI, is Copyright (c) 2002-2005 by Kevin M. Rosenberg. ;;;; -;;;; UFFI users are granted the rights to distribute and use this software -;;;; as governed by the terms of the Lisp Lesser GNU Public License -;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. ;;;; ************************************************************************* (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)