diff options
author | Salvador Fandino <sfandino@yahoo.com> | 2011-07-27 09:20:29 -0700 |
---|---|---|
committer | Dominic Hargreaves <dom@earth.li> | 2012-09-07 23:18:21 +0100 |
commit | 21fda8acd781016029f4703450f5ba20e7bc66a9 (patch) | |
tree | f6403d6595e6450370716f842b284c6551af9bfe | |
parent | e58f7f23d940a35655fb047a754e573c0d80cc51 (diff) | |
download | perl-21fda8acd781016029f4703450f5ba20e7bc66a9.tar.gz |
IPC::Open3::open3(..., '-') broken
IPC::Open3::open3($in, $out, $err, '-') is broken in 5.14.1
Because the old "return 0" used to return to user code now is wrapped inside and eval block.
This patch solves the problem.
-rw-r--r-- | ext/IPC-Open3/lib/IPC/Open3.pm | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/IPC-Open3/lib/IPC/Open3.pm b/ext/IPC-Open3/lib/IPC/Open3.pm index 7015d27a78..e23852811a 100644 --- a/ext/IPC-Open3/lib/IPC/Open3.pm +++ b/ext/IPC-Open3/lib/IPC/Open3.pm @@ -284,11 +284,14 @@ sub _open3 { } else { xopen \*STDERR, ">&STDOUT" if fileno(STDERR) != fileno(STDOUT); } - return 0 if ($cmd[0] eq '-'); + return 1 if ($cmd[0] eq '-'); exec @cmd or do { local($")=(" "); croak "$Me: exec of @cmd failed"; }; + } and do { + close $stat_w; + return 0; }; my $bang = 0+$!; |