@@ -212,6 +212,7 @@ type Process <: AbstractPipe
212212 exitnotify:: Condition
213213 closecb:: Callback
214214 closenotify:: Condition
215+ openstream:: Symbol # for open(cmd) deprecation
215216 function Process (cmd:: Cmd , handle:: Ptr{Void} , in:: RawOrBoxedHandle , out:: RawOrBoxedHandle , err:: RawOrBoxedHandle )
216217 if ! isa (in, AsyncStream) || in === DevNull
217218 in= DevNull
@@ -236,7 +237,9 @@ immutable ProcessChain <: AbstractPipe
236237 in:: Redirectable
237238 out:: Redirectable
238239 err:: Redirectable
240+ openstream:: Symbol # for open(cmd) deprecation
239241 ProcessChain (stdios:: StdIOSet ) = new (Process[], stdios[1 ], stdios[2 ], stdios[3 ])
242+ ProcessChain (chain:: ProcessChain , openstream:: Symbol ) = new (chain. processes, chain. in, chain. out, chain. err, openstream) # for open(cmd) deprecation
240243end
241244
242245function _jl_spawn (cmd, argv, loop:: Ptr{Void} , pp:: Process ,
@@ -477,11 +480,21 @@ function open(cmds::AbstractCmd, mode::AbstractString="r", other::AsyncStream=De
477480 out = Pipe ()
478481 processes = spawn (cmds, (in,out,STDERR))
479482 close (out. in)
483+ if isa (processes,ProcessChain) # for open(cmd) deprecation
484+ processes = ProcessChain (processes, :out )
485+ else
486+ processes. openstream = :out
487+ end
480488 elseif mode == " w"
481489 in = Pipe ()
482490 out = other
483491 processes = spawn (cmds, (in,out,STDERR))
484492 close (in. out)
493+ if isa (processes,ProcessChain) # for open(cmd) deprecation
494+ processes = ProcessChain (processes, :in )
495+ else
496+ processes. openstream = :in
497+ end
485498 else
486499 throw (ArgumentError (" mode must be \" r\" or \" w\" , not \" $mode \" " ))
487500 end
0 commit comments