X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Frun-program.lisp;fp=src%2Fcode%2Frun-program.lisp;h=0f31a0fa9e8115a274969cd8f5ad6aec3d1186a2;hb=6bc7c19167d7bf98ff6cdf45e4ccd9998311bdd8;hp=e85e2cc259360393a7536e5f5136a8ea5b782806;hpb=dd9f2ab664c9d6d7546d5f403bda5157fc4b960b;p=sbcl.git diff --git a/src/code/run-program.lisp b/src/code/run-program.lisp index e85e2cc..0f31a0f 100644 --- a/src/code/run-program.lisp +++ b/src/code/run-program.lisp @@ -938,7 +938,9 @@ Users Manual for details about the PROCESS structure."#-win32" (cond ((eq object t) ;; No new descriptor is needed. (values -1 nil)) - ((eq object nil) + ((or (eq object nil) + (and (typep object 'broadcast-stream) + (not (broadcast-stream-streams object)))) ;; Use /dev/null. (multiple-value-bind (fd errno) @@ -1051,7 +1053,10 @@ Users Manual for details about the PROCESS structure."#-win32" (loop with buf = (make-array 256 :element-type '(unsigned-byte 8)) for p = (read-sequence buf object) until (zerop p) - do (sb-unix:unix-write fd buf 0 p)))) + do (sb-unix:unix-write fd buf 0 p))) + (t + (error "Don't know how to copy from stream of element-type ~S" + et))) (sb-unix:unix-lseek fd 0 sb-unix:l_set) (push fd *close-in-parent*) (return (values fd nil)))))