| line |
true |
false |
branch |
|
38
|
6478 |
1436 |
unless &Scalar::Util::reftype($_[0]) |
|
52
|
0 |
4 |
$status == -1 ? : |
|
54
|
0 |
4 |
if 'threads'->can('exit') |
|
62
|
0 |
40 |
NON_UNIX ? : |
|
63
|
0 |
0 |
$1 eq '"' ? : |
|
65
|
0 |
0 |
$x =~ /[\[\](){}<>'"`~!\@^&+=|;,\s]/ ? : |
|
79
|
1 |
6 |
if tainted $v |
|
83
|
1 |
27 |
if tainted($ENV{$v}) |
|
87
|
2 |
2 |
if (@bad_args or @bad_env) |
|
103
|
20 |
6 |
$n <= 2 ? : |
|
111
|
4 |
1167 |
if $] >= 5.008 and ${^TAINT} |
|
113
|
45 |
1124 |
if @_ == 0 |
|
116
|
45 |
1079 |
if @_ == 1 and _reftype($_[0]) eq 'CODE' |
|
119
|
325 |
735 |
@_ ? : |
|
138
|
14 |
1046 |
if (_reftype($opt_ref) eq 'HASH') |
|
145
|
0 |
1060 |
defined $opt{'binmode_io'} ? : |
|
154
|
12 |
1048 |
if ($opt{'stdin'}) |
|
156
|
0 |
12 |
unless pipe $FOR_STDIN, $TO_STDIN |
|
161
|
12 |
0 |
if $opt{'autoflush'} |
|
166
|
6 |
1054 |
if ($opt{'stderr'}) |
|
168
|
0 |
6 |
unless pipe $FROM_STDERR, $BY_STDERR |
|
173
|
6 |
0 |
if $opt{'autoflush'} |
|
178
|
252 |
808 |
if _reftype($_[0]) eq 'CODE' |
|
179
|
833 |
227 |
if _reftype($_[-1]) eq 'CODE' |
|
184
|
291 |
769 |
if (@redirs) |
|
187
|
0 |
291 |
if $Preexec |
|
191
|
0 |
9 |
if $old_preexec |
|
200
|
26 |
1034 |
if (grep {not defined $_;} @cmd_list) |
|
208
|
0 |
1034 |
unless defined $Preexec or @cmd_list |
|
212
|
0 |
1034 |
NON_UNIX ? : |
|
|
0 |
1034 |
unless NON_UNIX ? open($ORIGSTDIN, '<&=STDIN') : open($ORIGSTDIN, '<&STDIN') |
|
223
|
0 |
1034 |
unless ($defined_child) |
|
230
|
990 |
44 |
if ($gotchild) { } |
|
234
|
9 |
981 |
if $FOR_STDIN |
|
235
|
4 |
986 |
if $BY_STDERR |
|
238
|
0 |
990 |
if (defined $IPC::Exe::_binmode_io and index($IPC::Exe::_binmode_io, ':') == 0) |
|
243
|
0 |
0 |
if ($opt{'stdin'}) |
|
245
|
0 |
0 |
unless binmode $TO_STDIN, $layer |
|
250
|
0 |
0 |
unless binmode $EXE_READ, $layer |
|
257
|
798 |
192 |
if ($Reader) { } |
|
|
187 |
5 |
elsif (not $opt{'stdout'}) { } |
|
263
|
5 |
793 |
$IPC::Exe::_stdin ? : |
|
|
0 |
798 |
unless $IPC::Exe::_stdin ? open(*STDIN, '<&=', $EXE_READ) : open(*STDIN, '<&', $EXE_READ) |
|
280
|
44 |
737 |
$failed ? : |
|
283
|
0 |
781 |
NON_UNIX ? : |
|
|
0 |
781 |
unless NON_UNIX ? open(*STDIN, '<&=', $ORIGSTDIN) : open(*STDIN, '<&', $ORIGSTDIN) |
|
288
|
44 |
737 |
if $failed |
|
301
|
920 |
0 |
unless ($IPC::Exe::_stdin or $opt{'stdout'} or $opt{'stderr'}) |
|
310
|
187 |
5 |
unless ($Reader or $opt{'stdout'}) |
|
319
|
232 |
697 |
if ($status[0] == -1 or $status[0] == 65280) |
|
325
|
100 |
132 |
if not $Reader || $opt{'stdout'} and $reap == $gotchild || $reap == -1 || $reap == 0 and $ret[0] = -1 or $reap == $gotchild |
|
333
|
0 |
127 |
if ($status[0] == -1 and $Reader and $reap == $gotchild and @ret) |
|
340
|
3 |
926 |
if _reftype($opt{'pid'}) eq 'SCALAR' |
|
341
|
0 |
929 |
if _reftype($opt{'stdin'}) eq 'SCALAR' |
|
342
|
0 |
929 |
if _reftype($opt{'stdout'}) eq 'SCALAR' |
|
343
|
3 |
926 |
if _reftype($opt{'stderr'}) eq 'SCALAR' |
|
346
|
926 |
3 |
_reftype($opt{'pid'}) ne 'SCALAR' ? : |
|
|
8 |
921 |
$opt{'stdin'} && _reftype($opt{'stdin'}) ne 'SCALAR' ? : |
|
|
5 |
924 |
$opt{'stdout'} && _reftype($opt{'stdout'}) ne 'SCALAR' ? : |
|
|
4 |
925 |
$opt{'stderr'} && _reftype($opt{'stderr'}) ne 'SCALAR' ? : |
|
354
|
737 |
192 |
@status_reader ? : |
|
372
|
3 |
41 |
if $TO_STDIN |
|
373
|
2 |
42 |
if $FROM_STDERR |
|
376
|
3 |
41 |
if ($FOR_STDIN) |
|
378
|
0 |
3 |
unless open *STDIN, '<&=', $FOR_STDIN |
|
383
|
2 |
42 |
if ($BY_STDERR) |
|
385
|
0 |
2 |
unless open *STDERR, '>&=', $BY_STDERR |
|
390
|
0 |
44 |
if (defined $IPC::Exe::_binmode_io and index($IPC::Exe::_binmode_io, ':') == 0) |
|
395
|
0 |
0 |
unless binmode *STDIN, $layer and binmode *STDOUT, $layer |
|
403
|
21 |
23 |
if ($Preexec) |
|
406
|
5 |
16 |
$_args ? : |
|
411
|
44 |
0 |
if _is_fh(*STDERR) |
|
412
|
44 |
0 |
if _is_fh(*STDOUT) |
|
415
|
4 |
40 |
unless (@cmd_list) |
|
418
|
0 |
4 |
if (NON_UNIX and _is_fh($EXE_GO)) |
|
431
|
13 |
8 |
if (ref $_) |
|
435
|
12 |
1 |
if (_reftype($_) =~ /REF|SCALAR/) |
|
442
|
1 |
12 |
if (_reftype($_) eq 'ARRAY') |
|
447
|
1 |
0 |
if (not $is_sysopen and defined $args[0]) |
|
451
|
1 |
0 |
if (defined $op) |
|
453
|
0 |
0 |
index($op, '<') == -1 ? : |
|
|
0 |
1 |
if $src eq '' |
|
462
|
0 |
1 |
$is_sysopen ? : |
|
|
1 |
0 |
$FH_name ? : |
|
|
1 |
0 |
$FH_name ? : |
|
471
|
0 |
1 |
$is_sysopen ? : |
|
|
0 |
1 |
if $is_sysopen ? @args < 3 || @args > 4 : @args == 0 |
|
476
|
0 |
0 |
@args == 4 ? : |
|
|
1 |
0 |
@args >= 2 ? : |
|
|
0 |
1 |
@args >= 3 ? : |
|
|
0 |
1 |
$is_sysopen ? : |
|
|
0 |
1 |
unless $is_sysopen ? @args == 4 ? sysopen($args[0], $args[1], $args[2], $args[3]) : sysopen($args[0], $args[1], $args[2]) : open($args[0], @args >= 2 ? $args[1] : (), @args >= 3 ? $args[2] : (), @args[3 .. $#args]) |
|
493
|
0 |
20 |
unless defined $_ |
|
496
|
0 |
20 |
if (/^\s*([012])\s*(:.*)$/) |
|
500
|
0 |
0 |
if $layer eq ':' |
|
502
|
0 |
0 |
unless binmode +(*STDIN, *STDOUT, *STDERR)[$1], $layer |
|
510
|
11 |
9 |
if (/^\s*(\d*)\s*>\s*(?:null|#)\s*$/) |
|
512
|
1 |
10 |
$1 eq '' ? : |
|
515
|
0 |
11 |
unless open $FH, '>', $DEVNULL |
|
523
|
0 |
9 |
if (/^\s*(\d+)\s*><\s*(\d+)\s*$/) |
|
530
|
0 |
0 |
unless _is_fh($FH1) and _is_fh($FH2) and open $SWAP, '>&', $FH1 and open $FH1, '>&', $FH2 and open $FH2, '>&=', $SWAP |
|
544
|
8 |
1 |
if (defined $op) |
|
546
|
0 |
0 |
index($op, '<') == -1 ? : |
|
|
0 |
8 |
if $src eq '' |
|
551
|
2 |
6 |
if ($tgt eq '-') |
|
553
|
0 |
2 |
unless close $FH1 |
|
562
|
0 |
6 |
unless _is_fh($FH2) and open $FH1, $op, $FH2 |
|
569
|
0 |
1 |
if ($_ =~ /^\s*(\d*)\s*(\+?[<>].*)/) |
|
588
|
0 |
40 |
$restore_fh ? : |
|
|
0 |
0 |
unless $restore_fh ? print($EXE_GO "exe_with_exec\n") : 1 and exec do {
$cmd[0]
} @cmd |
|
596
|
45 |
0 |
if @_ == 0 |
|
599
|
0 |
0 |
@_ ? : |
|
614
|
0 |
0 |
if (_reftype($opt_ref) eq 'HASH') |
|
622
|
0 |
0 |
if _reftype($_[0]) eq 'CODE' |
|
625
|
0 |
0 |
unless defined $Background |
|
629
|
0 |
0 |
if (defined $opt{'wait'} and $opt{'wait'} >= 0) |
|
636
|
0 |
0 |
unless open $ORIGSTDOUT, '>&STDOUT' |
|
648
|
0 |
0 |
unless ($defined_child) |
|
650
|
0 |
0 |
if ($bg_fallback) { } |
|
656
|
0 |
0 |
if carp('IPC::Exe::bg() cannot fork child', "\n ", $!) |
|
661
|
0 |
0 |
if ($gotchild) { } |
|
669
|
0 |
0 |
$status ? : |
|
674
|
0 |
0 |
NON_UNIX ? : |
|
680
|
0 |
0 |
if ($defined_child) { } |
|
682
|
0 |
0 |
unless $defined_grand |
|
689
|
0 |
0 |
if ($defined_grand) { } |
|
691
|
0 |
0 |
if $gotgrand |
|
707
|
0 |
0 |
if ($defined_grand and $gotgrand) |
|
709
|
0 |
0 |
if ($defined_child) { } |
|
723
|
0 |
0 |
if (not $gotgrand) { } |
|
|
0 |
0 |
elsif (not $defined_child) { } |
|
734
|
0 |
0 |
unless open *STDOUT, '>&=', $ORIGSTDOUT |
|
738
|
0 |
0 |
if (NON_UNIX) |
|
740
|
0 |
0 |
if (_is_fh($BG_GO2)) |
|
746
|
0 |
0 |
if (_is_fh($BG_GO1)) |
|
755
|
0 |
0 |
$_args ? : |
|
770
|
0 |
0 |
if $defined_child and $defined_grand |
|
771
|
0 |
0 |
if $defined_child and not $defined_grand |
|
772
|
0 |
0 |
if not $defined_child and $defined_grand and not $gotgrand |
|
786
|
0 |
1034 |
if $^O =~ /^(?:VMS|dos|MacOS|riscos|amigaos|vmesa)$/ |
|
788
|
0 |
1034 |
if (NON_UNIX) { } |
|
793
|
0 |
0 |
unless open $ORIGSTDIN, '<&STDIN' |
|
797
|
0 |
0 |
unless open $ORIGSTDOUT, '>&STDOUT' |
|
801
|
0 |
0 |
unless open $ORIGSTDERR, '>&STDERR' |
|
806
|
0 |
0 |
unless pipe $_[0], my $WRITE |
|
809
|
0 |
0 |
unless pipe my $READY, $_[1] |
|
813
|
0 |
0 |
if (defined($pid = fork)) |
|
815
|
0 |
0 |
if ($pid) { } |
|
827
|
0 |
0 |
if defined $IPC::Exe::_preexec_wait |
|
833
|
0 |
0 |
unless open *STDIN, '<&=', $ORIGSTDIN |
|
836
|
0 |
0 |
unless open *STDOUT, '>&=', $ORIGSTDOUT |
|
839
|
0 |
0 |
unless open *STDERR, '>&=', $ORIGSTDERR |
|
848
|
0 |
0 |
unless open *STDOUT, '>&=', $WRITE |