;;;; *************************************************************************
;;;; FILE IDENTIFICATION
;;;;
-;;;; Name: os.cl
+;;;; Name: os.lisp
;;;; Purpose: Operating system interface for UFFI
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Sep 2002
;;;;
-;;;; $Id: os.lisp,v 1.3 2002/10/21 15:42:07 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
;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
;;;; *************************************************************************
-(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
-(in-package :uffi)
-
+(in-package #:uffi)
;; modified from function ASDF -- Copyright Dan Barlow and Contributors
-(defun run-shell-command ((control-string &key (output *trace-output*))
- &rest args)
+(defun run-shell-command (control-string &rest args &key output)
"Interpolate ARGS into CONTROL-STRING as if by FORMAT, and
synchronously execute the result using a Bourne-compatible shell, with
output to *trace-output*. Returns the shell's exit code."
+ (unless output
+ (setq output *trace-output*))
+
(let ((command (apply #'format nil control-string args)))
#+sbcl
(sb-impl::process-exit-code