;;;; Name: os.lisp
;;;; Purpose: Operating system interface for UFFI
;;;; Programmer: Kevin M. Rosenberg
-;;;; Date Started: Sep 2002
+;;;; Date Started: Sep 2002
;;;;
-;;;; $Id$
-;;;;
-;;;; This file, part of UFFI, is Copyright (c) 2002-2005 by Kevin M. Rosenberg.
+;;;; This file, part of UFFI, is Copyright (c) 2002-2010 by Kevin M. Rosenberg.
;;;;
;;;; *************************************************************************
#+gcl (si:getenv (string var))
#+lispworks (lw:environment-variable (string var))
#+lucid (lcl:environment-variable (string var))
- #+mcl (ccl::getenv var)
+ #+(or openmcl digitool) (ccl::getenv var)
#+sbcl (sb-ext:posix-getenv var)
- #-(or allegro clisp cmu gcl lispworks lucid mcl sbcl)
+ #-(or allegro clisp cmu gcl lispworks lucid openmcl digitool 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
(let ((command (apply #'format nil control-string args)))
#+sbcl
(sb-impl::process-exit-code
- (sb-ext:run-program
+ (sb-ext:run-program
"/bin/sh"
(list "-c" command)
:input nil :output output))
-
+
#+(or cmu scl)
(ext:process-exit-code
- (ext:run-program
+ (ext:run-program
"/bin/sh"
(list "-c" command)
:input nil :output output))
#+allegro
(excl:run-shell-command command :input nil :output output)
-
+
#+lispworks
(system:call-system-showing-output
command
:shell-type "/bin/sh"
:output-stream output)
-
- #+clisp ;XXX not exactly *trace-output*, I know
+
+ #+clisp ;XXX not exactly *trace-output*, I know
(ext:run-shell-command command :output :terminal :wait t)
#+openmcl
(nth-value 1
- (ccl:external-process-status
- (ccl:run-program "/bin/sh" (list "-c" command)
- :input nil :output output
- :wait t)))
+ (ccl:external-process-status
+ (ccl:run-program "/bin/sh" (list "-c" command)
+ :input nil :output output
+ :wait t)))
#-(or openmcl clisp lispworks allegro scl cmu sbcl)
- (error "RUN-SHELL-PROGRAM not implemented for this Lisp")
+ (error "RUN-SHELL-PROGRAM not implemented for this Lisp.")
))