summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSalvador Fandino <sfandino@yahoo.com>2011-07-27 09:20:29 -0700
committerDominic Hargreaves <dom@earth.li>2012-09-07 23:18:21 +0100
commit21fda8acd781016029f4703450f5ba20e7bc66a9 (patch)
treef6403d6595e6450370716f842b284c6551af9bfe
parente58f7f23d940a35655fb047a754e573c0d80cc51 (diff)
downloadperl-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.pm5
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+$!;