Branch Coverage

blib/lib/Term/Shell.pm
Criterion Covered Total %
branch 56 208 26.9


line true false branch
42 0 3 $^O eq 'MSWin32' ? :
53 0 3 if ($o->{'API'}{'readline'} eq 'Term::ReadLine::Gnu') { }
0 3 elsif ($o->{'API'}{'readline'} eq 'Term::ReadLine::Perl') { }
78 0 0 if ($o->line =~ /\S/u) { }
82 0 0 unless ($o->{'command'}{'run'}{'found'})
85 0 0 if (@c and $o->{'API'}{'match_uniq'}) { }
111 0 0 if $o->{'stop'}
123 0 0 if $o->{'API'}{'check_idle'} == 0 or not defined $o->{'term'}->IN
140 0 0 if ('IO::Select'->new($o->{'fh'})->can_read($timeout)) { }
181 1 0 if ($lines < $maxlines or $maxlines == 0 or $pager eq 'none') { }
0 0 elsif ($pager and $pager ne 'internal') { }
194 0 0 unless system($pager, $name) == 0
211 0 0 if $ret == -1
232 0 0 if $line >= $maxlines - 1
240 0 0 if ($o->have_readkey) { }
249 0 0 if ($lines_left > 0)
256 0 0 if $o->have_readkey
257 0 0 if $ans =~ /q/iu or not $o->have_readkey
258 0 0 if $ans =~ /q/iu
280 0 0 unless $o->{'command'}{'comp'}{'found'}
306 64 434 if (my($ret) = (shift()) =~ /\A(run|help|smry|comp|catch|alias)_/u)
316 217 32 unless defined $t
320 26 6 if (length $s)
331 217 32 unless defined $t
335 26 6 if (length $s)
340 0 32 if ($o->has_aliases($s))
368 0 0 unless $hnd =~ /^(run|help|smry|comp|catch|alias)_/ou
373 0 0 if (length $a)
408 0 3 unless $TERM
412 0 3 if ($TERM and $o->{'API'}{'readline'} eq "Term::ReadLine::Gnu")
418 0 3 if ($^O eq "MSWin32" and eval { do { require Win32::Console } })
430 0 3 if (eval { do { require Term::Size } })
433 0 0 if (@x == 2 and $x[0])
440 0 3 if (eval { do { require Term::Screen } })
447 3 0 if (eval { do { require Term::ReadKey } })
453 3 0 unless $@
456 0 0 if ($ENV{'LINES'} or $ENV{'ROWS'} or $ENV{'COLUMNS'})
465 0 0 if (open my $STTY, "-|", "stty", "size")
480 0 0 unless $o->{'readkey'}
487 0 0 if $o->{'have_readkey'}
489 0 0 if (eval { do { require Term::InKey } }) { }
0 0 elsif ($^O eq 'MSWin32' and eval { do { require Win32::Console } }) { }
0 0 elsif (eval { do { require Term::ReadKey } }) { }
503 0 0 unless my $mode = my $orig = $o->{'win32_stdin'}->Mode
505 0 0 unless $o->{'win32_stdin'}->Mode($mode)
507 0 0 unless $o->{'win32_stdin'}->Flush
509 0 0 unless defined $c
510 0 0 unless $o->{'win32_stdin'}->Mode($orig)
512 0 0 if $@
544 0 0 $gh ? :
545 0 0 if $sh
547 0 0 if !defined($line) || $line =~ /^\s*$/u and defined $default
552 0 0 if $sh
562 0 0 if ($term and $term->ReadLine eq 'Term::ReadLine::Gnu') { }
0 0 elsif ($term and $term->ReadLine eq 'Term::ReadLine::Perl') { }
591 0 2 if ($wrap)
597 0 0 if ($@)
599 0 0 if $^W
611 0 3 unless defined $vals[$i]
613 3 0 $left ? :
614 3 0 $left ? :
617 0 3 $wrap ? :
629 0 2 wantarray ? :
647 0 0 if $c eq "\\"
648 0 0 if $c eq $q
664 0 0 if ($c eq '\\') { }
689 0 0 unless $o->{'line_args'}
704 0 0 if ($c =~ /\S/u and @args == 1)
708 0 0 if ($c =~ /['"]/u) { }
0 0 elsif ($c =~ /\s/u) { }
712 0 0 defined $arg ? :
723 0 0 if defined $arg
731 0 0 if defined $arg
753 3 0 if $o->{'API'}{'match_uniq'}
761 4 2 unless @handlers == 1
762 0 2 if $add_cmd_name and not $preserve_args
776 0 0 unless defined $casei
777 0 0 $casei ? :
812 2 1 defined $handler ? :
820 2 1 if (defined $handler)
841 0 0 if $seen{$_}-- == 1
850 0 8 $o->{'API'}{'case_ignore'} ? :
862 0 4 $o->{'API'}{'case_ignore'} ? :
866 2 2 unless @key == 1
874 0 0 exists $o->{'handlers'}{$action}{'alias'} ? :
882 0 32 @a ? :
891 32 0 unless $hndlr
903 0 2 unless $type
905 2 0 unless exists $o->{'aliases'}{$cmd}
948 0 0 if ($start == 0 or substr($line, 0, $start) =~ /^\s*$/u) { }
951 0 0 if $o->{'command'}{'comp'}{'found'}
960 0 0 if $o->{'command'}{'comp'}{'found'}
997 0 0 if @words > 2 or @words == 2 and $start == length $line
1006 0 1 if ($cmd) { }
1009 0 0 if ($o->{'command'}{'help'}{'found'}) { }
1016 0 0 if (@c and $o->{'API'}{'match_uniq'}) { }
1040 1 3 unless length $h
1042 0 3 unless grep {defined $o->{'handlers'}{$h}{$_};} "run", "smry", "help"
1044 3 0 exists $o->{'handlers'}{$h}{'run'} ? :
1045 2 1 $x ? :
1050 2 0 exists $o->{'handlers'}{$h}{'smry'} ? :
2 1 exists $o->{'handlers'}{$h}{'help'} ? :
1057 1 0 if %cmds
1064 0 1 if %docs