X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Frun-program.lisp;h=1b9b310dff7ed770e7f57cb3c9d9fe8ddd55da90;hb=65b5ab7e713d04e0d76bc0ee196374f6e57b922f;hp=04b5d6a5b0cac638fd7d3ae2fd3e44e997869903;hpb=1e7fc4730aa0cafb0aba5278e8cdbdba566b8725;p=sbcl.git diff --git a/src/code/run-program.lisp b/src/code/run-program.lisp index 04b5d6a..1b9b310 100644 --- a/src/code/run-program.lisp +++ b/src/code/run-program.lisp @@ -440,7 +440,7 @@ status slot." (error "could not find a pty")))))) #-win32 -(defun open-pty (pty cookie) +(defun open-pty (pty cookie &key (external-format :default)) (when pty (multiple-value-bind (master slave name) @@ -452,7 +452,7 @@ status slot." (unless new-fd (error "couldn't SB-UNIX:UNIX-DUP ~W: ~A" master (strerror errno))) (push new-fd *close-on-error*) - (copy-descriptor-to-stream new-fd pty cookie))) + (copy-descriptor-to-stream new-fd pty cookie external-format))) (values name (sb-sys:make-fd-stream master :input t :output t :element-type :default @@ -759,7 +759,7 @@ Users Manual for details about the PROCESS structure."#-win32" (if search 1 0) environment-vec pty-name (if wait 1 0)))) - (when (plusp child) + (unless (= child -1) (setf proc (apply #'make-process