r3135: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Mon, 21 Oct 2002 15:42:07 +0000 (15:42 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Mon, 21 Oct 2002 15:42:07 +0000 (15:42 +0000)
src/os.lisp

index 0002c1b5b96d6c05ff44331e1c1425b562dd7394..a1b7c87a15cd7edcda39028664839b85d8a3bbb0 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Sep 2002 
 ;;;;
-;;;; $Id: os.lisp,v 1.2 2002/10/14 03:07:41 kevin Exp $
+;;;; $Id: os.lisp,v 1.3 2002/10/21 15:42:07 kevin Exp $
 ;;;;
 ;;;; 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
 (in-package :uffi)
 
 
-;; Take from ASDF -- Copyright Dan Barlow and Contributors
+;; modified from function ASDF -- Copyright Dan Barlow and Contributors
 
-(defun run-shell-command (control-string &rest args)
+(defun run-shell-command ((control-string &key (output *trace-output*))
+                         &rest args)
   "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."
   (let ((command (apply #'format nil control-string args)))
-    (format *trace-output* "; $ ~A~%" command)
     #+sbcl
     (sb-impl::process-exit-code
      (sb-ext:run-program  
       "/bin/sh"
       (list "-c" command)
-      :input nil :output *trace-output*))
+      :input nil :output output))
     
     #+(or cmu scl)
     (ext:process-exit-code
      (ext:run-program  
       "/bin/sh"
       (list "-c" command)
-      :input nil :output *trace-output*))
+      :input nil :output output))
 
     #+allegro
-    (excl:run-shell-command command :input nil :output *trace-output*)
+    (excl:run-shell-command command :input nil :output output)
     
     #+lispworks
     (system:call-system-showing-output
      command
      :shell-type "/bin/sh"
-     :output-stream *trace-output*)
+     :output-stream output)
     
     #+clisp                            ;XXX not exactly *trace-output*, I know
     (ext:run-shell-command  command :output :terminal :wait t)
@@ -60,7 +60,7 @@ output to *trace-output*.  Returns the shell's exit code."
     (nth-value 1
               (ccl:external-process-status
                (ccl:run-program "/bin/sh" (list "-c" command)
-                                :input nil :output *trace-output*
+                                :input nil :output output
                                 :wait t)))
 
     #-(or openmcl clisp lispworks allegro scl cmu sbcl)