Branch Coverage

blib/lib/Astro/App/Satpass2.pm
Criterion Covered Total %
branch 625 1338 46.7


line true false branch
69 0 20 if load_package("Time::y2038")
73 0 20 unless (eval { do { "Time::y2038"->import if load_package("Time::y2038"); 1 } })
129 0 0 unless my $pkg = load_package($geocoder)
131 0 0 unless load_package($pkg->GEOCODER_CLASS)
216 0 20 unless exists $opt->{'expand_tilde'}
242 0 320 unless ($gol->getoptionsfromarray(_attr_list($arg), \%opt, @legal))
250 0 1624 unless defined(local $_ = $_[0])
258 0 1235 unless defined $code
261 0 1235 unless defined $name
263 611 624 if exists $attr{$code}{$name}
446 0 7 if ref $class
473 301 0 unless exists $args{$name}
492 0 1 unless embodies($body, "Astro::Coord::ECI::TLE")
503 2 3 if (@args) { }
527 0 3 if $almanac_start >= $almanac_end
541 0 3 unless my(@sky) = $self->__choose($opt->{'choose'}, $self->{'sky'})
544 0 6 unless ($body->can("almanac"))
591 0 5 @args ? :
600 0 20 if $ENV{'SATPASS2_LEVEL1'}
608 1 1 if (defined $dir) { }
609 0 1 unless chdir $dir
611 0 1 unless chdir "File::HomeDir"->my_home
620 0 2 if ($opt->{'epoch'})
629 2 0 if (@args)
630 0 2 unless my(@bodies) = @{$self->__choose(\@args, $self->{'bodies'});}
646 0 289 unless defined $verb
650 19 270 if ($self->{'macro'}{$verb})
651 0 19 if $unsatisfied
658 1 269 unless $code = $self->can($verb) and $self->__get_attr($code, "Verb")
665 257 12 unless $unsatisfied and not $self->__get_attr($code, "Tweak", {})->{'unsatisfied'}
667 145 116 if defined $rslt
671 238 23 unless delete $self->{'frame'}[-1]{'post_dispatch'}
674 1 22 if defined($append = &$code($self))
697 19 4 unless my $code = $special{$disp}
707 0 1 unless @args
710 0 1 unless my(@bodies) = @{$self->__choose({"invert", 1}, \@args, $self->{'bodies'});}
726 0 0 unless @arg
731 0 0 if ref $_
734 0 0 if / \A frames? \z /imsx
736 0 0 if / \A tokens? \z /imsx
741 0 0 if / \A twilight \z /imsx
744 0 0 if (defined(my $inx = $self->_find_in_sky($_)))
748 0 0 if @stuff
758 44 0 unless $opt->{'n'}
768 0 2 unless @{$self->{'frame'};} > 1 and "begin" eq $self->{'frame'}[-1]{'type'} and "if" eq $self->{'frame'}[-2]{'type'}
770 0 2 if $self->{'frame'}[-1]{'in_else'}++
802 0 5 unless $self->{'frame'}[-1]{'type'} eq "begin"
811 0 1 unless @arg
827 13 251 if ('CODE' eq ref $args[0]) { }
831 13 8 if @args
839 0 280 if $self->{'echo'}
840 3 277 if / \A \s* [#] /msx
857 6 267 unless $self->{'execute_filter'}->($self, $args)
858 1 266 unless @{$args;}
859 1 265 if ($redirect->{'>'})
881 251 5 if $#{$$self{"frame"};} >= $frame_depth
883 6 250 defined $stdout ? :
886 10 246 if $extern
900 0 0 'CODE' eq ref $args[0] ? :
903 0 0 unless eval { do { $self->execute($in, shift @args); 1 } }
917 104 152 unless defined $output
919 0 152 if (not defined $stdout) { }
149 3 elsif ('SCALAR' eq $ref) { }
2 1 elsif ('CODE' eq $ref) { }
1 0 elsif ('ARRAY' eq $ref) { }
949 1 3 if ($mutator{$name}) { }
950 1 0 if @args
953 1 2 unless @args
969 0 0 if $pass_start >= $pass_end
979 0 0 $self->{'formatter'}->gmt ? :
0 0 exists $opt->{'tz'} ? :
995 0 0 unless $tle->can_flare($opt->{'questionable'})
1013 0 0 unless @active
1020 0 0 unless (eval { do { push @flares, $tle->flare($pass_start, $pass_end); 1 } })
1021 0 0 if $@ =~ / \Q$interrupted\E /mosx
1022 0 0 unless $opt->{'quiet'}
1030 0 0 $_->{'type'} eq 'day' ? :
1038 0 9 'HASH' eq ref $_[1] ? :
1048 0 0 if (@arg == 2)
1057 0 0 if $fmtr->can("__list_templates")
1062 0 0 unless my $code = $app->can("_formatter_complete_$arg[1]")
1066 0 0 if $r = $app->_readline_complete_options($code, $text, $line, $start)
1091 0 0 if (defined $loc) { }
1102 0 0 if (@rslt == 1) { }
1104 0 0 if $set_loc
1107 0 0 $set_loc ? :
1109 0 0 if ($self->get("autoheight"))
1125 0 0 unless @_ == 5
1158 0 0 unless @args
1161 0 0 if ($eq->is_valid($rslt)) { }
1165 0 0 unless $opt->{'geocoding'}
1175 0 0 unless defined $arg
1178 0 0 if defined $self->{'_help_module'}{$arg}
1179 0 0 if (my $cmd = $self->_get_browser_command) { }
1180 0 0 $arg =~ / - /msx ? :
1186 0 0 if (__PACKAGE__->can($os_specific)) { }
0 0 elsif (load_package('Pod::Usage')) { }
1190 0 0 if (defined(my $path = find_package_pod($arg)))
1194 0 0 if (&openhandle($stdout) and not -t $stdout)
1479 0 2 unless @args
1484 0 2 unless @{$self->{'frame'};} > 1 and "begin" eq $self->{'frame'}[-1]{'type'} and "if" eq $self->{'frame'}[-2]{'type'}
1494 0 2 if $self->{'frame'}[-2]{'condition'}
1501 0 22 unless @args
1513 0 0 'HASH' eq ref $args[0] ? :
1518 0 0 defined $init_file ? :
1523 0 0 unless -e $init_file and not -d _
1539 0 0 unless my $reader = $self->_file_reader($fn, {"optional", 1})
1556 0 0 unless (defined $init_dir)
1557 0 0 if $opt->{'quiet'}
1567 290 0 @{$self->{'frame'};} ? :
1606 0 24 unless @tokens
1612 24 0 if $def->{'done'}
1618 0 61 unless @{$tokens;}
1621 57 4 if (my $info = $def->{'oper'}{$tkn}) { }
4 0 elsif ($def->{'val'}) { }
1623 55 2 if $info->{'validation'}
1642 0 0 $^O eq 'MSWin32' || $^O eq 'VMS' || $^O eq 'MacOS' ? :
1648 0 0 $ENV{'USERPROFILE'} ? :
0 0 $ENV{'LOGDIR'} ? :
0 0 $ENV{'HOME'} ? :
0 0 $^O eq 'MacOS' ? :
0 0 $^O eq 'VMS' ? :
1649 0 0 wantarray ? :
1657 0 7 if @args and not $opt->{'choose'}
1661 5 2 if @bodies
1665 0 2 if $self->{'warn_on_empty'}
1672 0 6 unless @names
1681 0 6 if $opt->{'verbose'}
1696 0 1 if ($opt->{'all'})
1712 2 0 exists $self->{$key} ? :
1714 0 2 ref $val ? :
0 2 builtin::blessed($val) && $val->can('clone') ? :
1719 2 0 if (exists $self->{$key}) { }
1772 0 29 if (not @args) { }
8 21 elsif ($self->{'frame'}[-1]{'level1'}) { }
1775 0 8 if ($mac_cmd{$args[0]}) { }
8 0 elsif (@args > 1) { }
1783 0 21 unless defined($cmd = $mac_cmd{$args[0]})
1788 0 29 unless my $code = $self->can("_macro_sub_$cmd")
1799 0 3 @args ? :
1800 1 0 if $self->{'macro'}{$name}
1808 0 16 unless defined $name
1811 0 16 unless @args
1813 0 16 if $name =~ / \W /msx or $name =~ / \A _ /msx
1837 0 9 if (my $comp = $self->completion) { }
1853 1 0 @args ? :
1862 8 1 @args ? :
1863 0 9 unless $self->{'macro'}{$name}
1873 0 0 unless defined $name
1882 0 0 if exists $opt->{'lib'}
1885 0 0 @args ? :
1887 0 0 if $obj->implements($mn, "required", 1)
1889 0 0 if ($opt->{'verbose'})
1895 0 0 if $obj->implements("after_load", "required", 0)
1903 0 0 if ($self->has_lib)
1905 0 0 if $self->relative
1919 0 0 unless @args
1925 0 0 if ($verb eq 'show' or $verb eq 'list') { }
1948 1 19 if $opt->{'ephemeris'}
1953 3 17 if $opt->{'almanac'} and not defined $opt->{'ephemeris'}
1958 0 1 unless $opt->{'am'} or $opt->{'pm'}
1962 0 20 if $pass_start >= $pass_end
1967 0 20 unless my(@bodies) = $self->__choose($opt->{'choose'}, $self->{'bodies'})
1997 0 20 if ($opt->{'brightest'}) { }
0 20 elsif (exists $opt->{'brightest'}) { }
2012 39 0 $tle->get('inertial') ? :
2028 0 39 $self->{'verbose'} ? :
2035 0 39 unless (eval { do { push @accumulate, $self->_pass_select_event($opt, $tle->pass($pass_start, $pass_end, $self->{'sky'})); 1 } })
2036 0 0 if $@ =~ / \Q$interrupted\E /mosx
2037 0 0 unless $opt->{'quiet'}
2044 3 17 if $opt->{'chronological'}
2052 4 16 if ($opt->{'almanac'})
2071 12 12 $evt->{'time'} >= $noon ? :
2078 0 6 $pass->{'time'} >= $noon ? :
2082 3 3 if ($opt->{'ephemeris'})
2088 2 2 unless ($opt->{'ephemeris'})
2091 3 0 unless $pass->{'_pm'}
2094 0 0 unless $almanac{$noon}{$illum}[1]
2103 0 3 if $pass->{'_pm'}
2106 0 3 unless $almanac{$noon}{$illum}[0]
2125 18 2 unless $opt->{'am'} xor $opt->{'pm'}
2172 38 0 if @{$$pass{"events"};} = grep({_pass_select_event_code($opt, $_->{'event'});} @{$$pass{"events"};})
2188 0 136 unless &isdual($event) or not $event =~ / \D /msx
2191 0 136 if $event == ""
2199 0 2 unless defined $file
2202 0 2 if $opt->{'setup'}
2205 1 1 unless $opt->{'eval'}
2208 1 1 $opt->{'eval'} ? :
2215 1 1 if $@
2218 1 0 unless instance($rslt, "Astro::App::Satpass2")
2229 0 1 unless my(@sky) = $self->__choose($opt->{'choose'}, $self->{'sky'})
2241 4 0 if (defined $time) { }
2258 4 9 if ($body->represents("Astro::Coord::ECI::TLE"))
2269 4 0 if $body->get("inertial")
2275 3 10 unless (eval { do { $body->universal($time); push @good, $body; 1 } })
2276 0 3 if $@ =~ / \Q$interrupted\E /mosx
2277 3 0 unless $opt->{'quiet'}
2309 0 1 unless my(@sky) = $self->__choose($opt->{'choose'}, $self->{'sky'})
2319 0 2 unless $body->can("next_quarter_hash")
2324 2 5 if $hash->{'time'} > $end
2325 0 5 unless $$opt{$quarter_name[$hash->{'almanac'}{'detail'}]}
2365 0 0 unless ref $self
2375 0 0 if "CODE" eq ref $args[0]
2381 0 0 unless $go->getoptionsfromarray(\@args, \%opt, ("echo!", "filter!", "gmt!", "help", "initialization_file|initfile=s", "level1!", "version"))
2392 0 0 if ($opt{'version'})
2398 0 0 if ($opt{'help'})
2409 0 0 if exists $opt{$name}
2413 0 0 if not $self->get("filter") and $self->_get_interactive
2417 0 0 unless eval { do { $self->_execute_output($self->init({"level1", delete $opt{'level1'}}, delete $opt{'initialization_file'}), $self->get("stdout")); 1 } }
2426 0 0 if %opt
2445 0 0 unless defined $fn
2447 0 0 if ($fn ne "-" and -e $fn)
2448 0 0 unless -f $fn
2450 0 0 unless ($opt->{'overwrite'})
2453 0 0 unless "y" eq lc substr($rslt, 0, 1)
2459 0 0 if ($opt->{'changes'})
2476 0 0 if ($self->{'_perl'})
2492 0 0 unless my $obj = $self->get($attribute)
2493 0 0 $obj->can('class_name_of_record') ? :
2506 0 0 if ($fn ne "-")
2507 0 0 unless my $fh = "IO::File"->new($fn, ">:encoding(utf-8)")
2529 0 0 if $opt->{'changes'} and $sky_class{$body} and $sky_class{$body} eq $self->{'sky_class'}{$body}
2534 0 0 unless $self->{'sky_class'}{$body}
2539 0 0 if ($opt->{'changes'}) { }
2543 0 0 unless defined $self->_find_in_sky($name)
2550 0 0 if $exclude{ref $body}
2564 28 323 if (_is_interactive())
2565 1 27 if $nointeractive{$name}
2568 0 27 if defined $value and $value eq "undef"
2571 350 0 if ($mutator{$name}) { }
2584 7 0 &looks_like_number($parsed) ? :
2608 15 16 if (my $code = $validate{$name})
2609 0 0 defined $value ? :
0 15 unless defined $angle
2611 0 15 unless &$code($angle)
2621 6 15 if defined $value and "undef" ne $value
2626 0 11 unless "CODE" eq ref $_[2]
2651 0 14 if (ref $arg{'value'}) { }
2653 0 0 unless builtin::blessed($arg{'value'})
2656 0 0 if $obj->can("warner")
2658 14 0 if (defined $arg{'default'})
2661 0 14 unless defined $arg{'value'} and "" ne $arg{'value'}
2663 0 14 if (not defined $arg{'value'} or $arg{'value'} eq "")
2665 0 0 unless $arg{'undefined'}
2672 0 14 unless $arg{'prefix'}
2673 0 14 if not $cls->can("init") and _is_case_tolerant()
2679 7 7 if $cls->can("parent")
2686 0 14 unless $obj = $cls->new("warner", $self->{'_warner'}, @args)
2690 0 14 if defined $arg{'class'} and not $obj->isa($arg{'class'})
2693 0 0 if builtin::blessed($old) and not $arg{'nocopy'} and $old->can("copy")
2700 2 7 defined $_[2] ? :
2744 0 7 if ref $class
2745 7 0 if (defined $class) { }
2747 0 7 unless $class->isa($want_class)
2762 0 7 unless "Astro::Coord::ECI::TLE"->is_valid_model($val)
2774 7 0 if (defined $val and "" ne $val)
2775 0 7 unless open my $fh, ">$val", "File::Spec"->devnull
2804 7 1 if ($val =~ / \A (?: 0 x? ) [0-9]* \z /msx) { }
1 0 elsif (not $val =~ / \A [0-9]+ \z /msx) { }
2815 0 1 unless $go->getoptionsfromarray(\@args, "none", sub { $val = 0; } , map({$_, sub { my($name, $value) = @_; my $mask = $variant_def{$name}; if ($value) { $val |= $mask; } else { $val &= ~$mask; } ; return; } ;} @option_names))
2818 0 1 if ($value) { }
2836 0 5 if $val & $variant_def{$key}
2840 1 0 unless @options
2846 0 138 unless $variant_def{$variant}
2856 0 0 if (defined $val)
2857 0 0 unless instance($val, "Astro::SpaceTrack")
2861 0 0 unless $version >= "0.105"
2871 15 0 if $self->{'frame'}
2884 0 7 if ('CODE' eq ref $val) { }
0 7 elsif (defined $val and my $macro = $self->{'macro'}{$val}) { }
2906 0 14 if defined $val and $val eq "undef"
2924 9 0 if (my $key = $twilight_abbr{lc $val}) { }
2929 0 0 unless &looks_like_number($angle)
2950 0 0 if defined $val and $val eq "undef"
2958 0 7 if (my $st = $self->get("spacetrack"))
2969 46 0 unless exists $opt->{$name}
2973 0 23 unless (@args)
2975 0 0 unless $self->_attribute_exists($name, "query", 1)
2977 0 0 if $nointeractive{$name}
2981 0 0 unless exists $mutator{$name} or $opt->{'readonly'}
2985 0 0 if $depr = $self->_deprecation_in_progress("attribute", $name) and !$opt->{'deprecated'} || $depr >= 3
2992 0 23 unless exists $shower{$name}
2996 0 23 if ($opt->{'changes'})
2998 0 0 if $static{$name} eq $val[-1]
3001 0 23 unless exists $mutator{$name}
3026 0 0 unless @arg > 1
3042 0 0 if (my $back_end = $obj->back_end)
3063 0 8 if (embodies($body, 'Astro::Coord::ECI::TLE')) { }
1 7 elsif ($body->isa('Astro::Coord::ECI::Star')) { }
3085 12 0 if (my $code = $self->can("_sky_sub_$verb")) { }
3098 0 0 unless my $info = $self->{'sky_class'}{CORE::fc $name}
3107 0 0 if wantarray
3117 7 5 unless defined $opt{'fatal'}
3118 10 2 if (my $info = $self->{'sky_class'}{CORE::fc $name}) { }
0 2 elsif ($opt{'fatal'}) { }
3132 0 5 unless my $name = shift @args
3134 0 5 if defined $self->_find_in_sky($name)
3136 3 2 if (my $obj = $self->_sky_object($name, 'fatal', 0)) { }
3139 1 1 unless @args >= 2
3144 1 0 @args ? :
3147 1 0 @args ? :
3149 1 0 unless $angle =~ s/ s \z //imsx
3153 1 0 @args ? :
3154 1 0 @args ? :
3169 0 0 if $opt->{'add'} and $opt->{'delete'}
3171 0 0 if ($opt->{'delete'}) { }
0 0 elsif (@arg < 2) { }
3173 0 0 if $name =~ / \A sun \z /imsx
3175 0 0 if defined $self->_find_in_sky($name)
3181 0 0 unless @arg
3188 0 0 $name =~ / \A sun \z /imsx ? :
3191 0 0 unless embodies($class, $want_class)
3195 0 0 if {@attr}->{'name'}
3204 0 0 unless $self->_replace_in_sky($folded_name, $obj)
3206 0 0 if ($obj->isa("Astro::Coord::ECI::Sun"))
3228 0 1 unless @args
3246 0 8 if ($opt->{'verbose'})
3250 1 4 unless (@{$self->{'sky'};})
3252 0 1 if $self->{'warn_on_empty'}
3264 0 0 unless open my $fh, "<", $fn
3276 0 0 if defined $self->_find_in_sky($name)
3306 0 0 if $extant{$id}
3317 1 6 unless my $reader = $self->_file_reader($src, $opt)
3324 2 19 if @level1_cache
3329 4 2 $opt->{'level1'} ? :
3337 0 6 unless my $ok = eval { do { while (defined(my $input = &$fetcher())) { do { if (defined(my $buffer = $self->execute($fetcher, $input))) { $output .= $buffer; } }; } ; 1 } }
3338 2 11 if (defined(my $buffer = $self->execute($fetcher, $input)))
3347 0 6 unless $ok
3349 4 2 if $opt->{'level1'}
3411 0 0 unless exists $opt->{'raw'}
3417 0 0 unless not $method =~ / \A _ /msx and $object->can($method) or $handler{$method}
3422 0 0 if $opt->{'start_epoch'}
3425 0 0 if $opt->{'end_epoch'}
3428 0 0 if ($handler{$method}) { }
3436 0 0 unless $rslt->is_success
3442 0 0 if ($content_type eq 'orbit') { }
0 0 elsif ($content_type eq 'iridium-status') { }
0 0 elsif (not $suppress_output{$content_type} or $verbose) { }
3446 0 0 if $verbose
3452 0 0 if $verbose
3461 0 0 if defined $output
3472 0 0 if ('localize' eq $func) { }
3476 0 0 unless exists $self->{'frame'}[-1]{'spacetrack'}{$key}
3491 0 34 unless defined $self->{'height'} and defined $self->{'latitude'} and defined $self->{'longitude'}
3512 1 2 unless @args
3516 0 3 if ($verb eq "iridium")
3523 1 2 if ($verb eq 'add' or $verb eq 'drop') { }
1 1 elsif ($verb eq 'clear') { }
1 0 elsif ($verb eq 'show' or $verb eq 'list') { }
3527 1 0 if $tle->get("id") == $args[0]
3540 0 1 if $opt->{'name'}
3572 4 1 if ($mutator{$_}) { }
3573 0 4 if (defined $stdout and -t $stdout) { }
3583 0 2 if ('ARRAY' eq ref $_) { }
3584 0 1 unless &$have_time_hires()
3594 1 0 unless $self->_in_unsatisfied_if
3599 0 0 'HASH' eq ref $_[1] ? :
3607 0 4 if @args and not $opt->{'choose'}
3611 0 1 unless $Astro::App::Satpass2::a->[1] <=> $Astro::App::Satpass2::b->[1]
3641 0 1 if $pass_start >= $pass_end
3644 0 1 unless @{$self->{'bodies'};}
3651 1 1 if $tle->validate($opt, $pass_start, $pass_end)
3692 10 0 if embodies($body, "Astro::Coord::ECI::TLE")
3695 0 0 unless defined $id
3723 8 128 if (exists $opt->{$key})
3726 0 8 if $invert
3727 6 2 $opt->{$key} ? :
3733 0 44 if 1 == $state and @keys == $found
3737 128 8 unless exists $opt->{$key}
3757 1280 0 if exists $accessor{$name} and !$level1_attr{$name} || $self->{'frame'}[-1]{'level1'}
3759 0 0 unless $arg{'query'}
3802 34 9 unless $accessor{$attr}
3805 2 7 if (defined $sub)
3807 0 2 unless $rslt and my $code = $special{$attr}
3858 7 38 'HASH' eq ref $args[0] ? :
3860 40 5 unless defined $choice
3862 0 45 unless "ARRAY" eq ref $choice
3868 0 5 unless my $code = $chooser{$ref}
3875 6 39 if $opt->{'bodies'}
3877 4 41 if $opt->{'sky'}
3879 43 8 if ('ARRAY' eq ref $_) { }
3882 36 4 wantarray ? :
40 5 unless @selector
3885 0 10 if "ARRAY" eq ref $tle
3891 6 4 unless &$sel($tle, $context)
3897 4 6 if $match
3900 2 3 wantarray ? :
3944 0 1277 unless $deprecate{$type}
3945 1277 0 unless $deprecate{$type}{$name}
3947 0 0 $deprecate{$type}{$name} > 2 ? :
3948 0 0 if defined $repl
3950 0 0 if $deprecate{$type}{$name} >= 3
3952 0 0 if warnings::enabled("deprecated")
3955 0 0 if $deprecate{$type}{$name} == 1
3961 0 0 unless $deprecate{$type}
3972 0 1 unless defined(my $inx = $self->_find_in_sky($name))
3990 0 1 $name =~ / \A & ( [12] ) \z /msx ? :
0 1 unless my $fh = $name =~ / \A & ( [12] ) \z /msx ? [undef, $self->{'frame'}[-1]{'localout'} || \*STDOUT, \*STDERR]->[$1] : "IO::File"->new($name, $mode)
3996 1 0 if ($mode =~ / \A (?: [+>] | [|] - ) /msx)
3999 1 0 if (defined $layers and "" ne $layers)
4000 0 1 unless binmode $fh, $layers
4040 2 28 if (&openhandle($file))
4042 1 1 unless $opt->{'glob'}
4048 0 28 unless my $code = $self->can("_file_reader_$ref")
4062 17 0 if defined $file
4065 0 17 if (not defined $file or not ref $file and "" eq $file)
4066 0 0 if $opt->{'optional'}
4070 2 15 if ($self->_file_reader__validate_url($file)) { }
4074 0 2 unless ($resp->is_success)
4075 0 0 if $opt->{'optional'}
4087 4 11 unless (open my $fh, "<$encoding", $self->expand_tilde($file))
4088 1 3 if $opt->{'optional'}
4092 4 7 unless $opt->{'glob'}
4112 0 17 unless load_package("LWP::UserAgent")
4115 0 17 unless load_package("URI")
4118 0 17 unless load_package("LWP::Protocol")
4121 0 17 unless my $obj = "URI"->new($url)
4123 0 17 unless $obj->can("authority")
4126 14 3 unless defined(my $scheme = $obj->scheme)
4128 1 2 unless LWP::Protocol::implementor($scheme)
4139 4 1 unless $opt->{'glob'}
4143 0 5 unless $buffer =~ / \n \z /msx
4152 1 1 unless $opt->{'glob'}
4157 0 5 unless $buffer =~ / \n \z /msx
4168 0 4 unless (open my $fh, "<$encoding", $file)
4169 0 0 if $opt->{'optional'}
4173 2 2 unless $opt->{'glob'}
4187 1 7 if $self->{'sky'}[$inx]->get("name") =~ /$re/
4221 52 7 $frames ? :
4227 22 37 exists $opt->{'condition'} ? :
4269 22 31 if @args > 1
4272 26 27 @args && defined $args[0] ? :
4274 0 52 unless my $frame = pop @{$$self{"frame"};}
4279 1 1 if (exists $self->{$name} and not $force_set{$name}) { }
4292 0 52 if $frame->{'spacetrack'} and %{$frame->{'spacetrack'};}
4294 0 53 if (delete $self->{'pending'})
4313 0 0 unless defined $val
4314 0 0 unless defined $val and "" ne $val
4317 0 0 unless 1 eq $val
4350 0 0 unless $kode{$mod}
4383 0 41 $opt && $opt->{'dump'} ? :
4399 0 0 unless (exists $self->{'geocoder'})
4401 0 0 if $class = &$default_geocoder()
4452 0 1 if ($self->_get_interactive) { }
4454 0 0 unless load_package("Term::ReadLine")
4456 0 0 unless ($rl)
4458 0 0 if ("Term::ReadLine::Perl" eq $rl->ReadLine)
4473 0 0 unless defined $buffer
4477 0 0 unless defined $buffer
4482 0 0 unless eval { do { return unless load_package("Term::ReadLine"); unless ($rl) { $rl = "Term::ReadLine"->new("satpass2"); if ("Term::ReadLine::Perl" eq $rl->ReadLine) { $readline_word_break_re ||= qr/ [\Q$readline::rl_completer_word_break_characters\E]+ /msx; BEGIN {${^WARNING_BITS} = "\x55\x55\x55\x45\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"} $readline::rl_completion_function = sub { my($text, $line, $start) = @_; return $self->__readline_completer($text, $line, $start); } ; } ; } ; sub { return $buffer unless defined $buffer; return $buffer = $rl->readline($_[0]); } } }
4485 0 0 unless defined $buffer
4498 0 0 unless $start
4506 0 0 if not $cmd =~ s/ \A core [.] //msx and ref $app and $app->{'macro'}{$cmd}
4509 0 0 if ('CODE' eq ref $code) { }
0 0 elsif (my $macro = $app->{'macro'}{$cmd}) { }
4514 0 0 if (my $method = $app->__get_attr($code, "Tweak", {})->{'completion'})
4517 0 0 if $rslt = $app->$method($code, $text, $line, $start)
4523 0 0 if $rslt = $app->_readline_complete_options($code, $text, $line, $start) and @{$rslt;}
4530 0 0 if $rslt = $macro->completion($text)
4534 0 0 if (1 == @files) { }
0 0 elsif ($readline::var_CompleteAddsuffix) { }
4535 0 0 -d $files[0] ? :
4538 0 0 if (-l $_) { }
0 0 elsif (-d $_) { }
0 0 elsif (-x _) { }
0 0 elsif (-S _ or -p _) { }
4557 0 0 unless (@builtins)
4561 0 0 if $sym =~ / \A _ /msx
4563 0 0 unless my $code = $app->can($sym)
4565 0 0 unless $app->__get_attr($code, "Verb")
4572 0 0 if ($text =~ s/ \A core [.] //msx) { }
4578 0 0 ref $app ? :
4580 0 0 if 1 == @rslt and $rslt[0] =~ / \W \z /msx
4590 0 0 unless $text =~ / \A ( --? ) ( .* ) /msx
4597 0 0 if ref $_
4603 0 0 if @rslt
4612 0 0 if (my $code = $app->can("_$part[0]_sub"))
4616 0 0 if (2 == @part)
4621 0 0 if $key =~ /$re/msx
4627 0 0 unless my $code = $app->can("_$part[0]_sub_$part[1]")
4631 0 0 if $r = $app->_readline_complete_options($code, $text, $line, $start)
4636 0 0 unless my $complete = $app->__get_attr($code, "Tweak", {})->{'completion'}
4638 0 0 if $r = $app->$complete($code, $text, $line, $start)
4647 0 0 unless ref $app
4650 0 0 unless 3 == @part
4655 0 0 if /$re/msx
4664 0 0 unless ref $app
4667 0 0 unless 3 == @part
4672 0 0 if ((my $name = $body->get('name')) =~ /$re/) { }
0 0 elsif ((my $id = $body->get('id')) =~ /$re/) { }
4690 0 0 if @parts
4707 7 0 unless exists $self->{'spacetrack'}
4718 7 0 unless &$have_astro_spacetrack()
4728 4 6 unless defined $day
4731 10 0 $gmt ? :
4734 10 0 $gmt ? :
4739 21 21 unless defined $day
4742 42 0 $gmt ? :
4746 42 0 $gmt ? :
4756 0 9 unless my $object = $self->get($attribute)
4797 9 0 unless exists $opt->{'raw'}
4799 0 9 unless defined $method
4802 0 9 if "config" eq $method
4806 0 9 unless not $method =~ / \A _ /msx and $object->can($method)
4812 1 4 if @args and $parse_input{$name} and $parse_input{$name}{$method}
4814 4 5 if delete $opt->{'raw'}
4817 3 2 if instance($rslt[0], ref $object)
4818 0 2 if ref $rslt[0]
4830 0 0 if $opt->{'raw'}
4847 0 0 unless ($status)
4850 0 0 unless $rslt->is_success
4853 0 0 if ('ARRAY' eq ref $status) { }
4882 0 0 if exists $os{$^O}
4896 38 1696 if "Astro::App::Satpass2::dispatch" eq $info[3]
4920 0 0 if "ARRAY" eq ref $module[0]
4921 0 0 unless @module
4924 0 0 unless (load_package($module))
4929 0 0 if ($version{$module} and $modver = $module->VERSION)
4931 0 0 if ($modver < $version{$module})
4942 0 0 if $clr[3] eq "(eval)"
4944 0 0 if substr($raw[-1], 0, 1) eq "_"
4962 0 19 unless $self->{'macro'}{$name}
4968 1 18 unless my $ok = eval { do { $output = $macro->execute($name, @args); 1 } }
4973 1 18 unless $ok
4992 0 9 unless defined $part
4995 0 9 $part =~ / [.] ( [0-9]+ ) /msx ? :
4998 3 0 if (my $mag = sprintf("%d", $circle / 360))
5008 7 33 'HASH' eq ref $args[0] ? :
5010 7 33 unless defined $angle
5012 2 31 if ($angle =~ / : /msx) { }
1 30 elsif ($angle =~ / \A ( [-+] )? ( [0-9]* ) d ( [0-9]* (?: [.] [0-9]* )? ) (?: m ( [0-9]* (?: [.] [0-9]* )? ) s? )? \z /imsx) { }
5032 0 1 if $sgn and "-" eq $sgn
5037 0 30 unless $opt->{'accept'} or &looks_like_number($angle)
5057 0 3 unless defined $dfdist
5058 3 0 $dfdist =~ s/ ( [[:alpha:]]+ ) \z //msx ? :
5059 0 3 $string =~ s/ \s* ( [[:alpha:]]+ ) \z //msx ? :
5061 0 3 unless $units{$units}
5063 0 3 unless $string ne ""
5064 0 3 unless &looks_like_number($string)
5075 0 55 unless my $pt = $self->{'time_parser'}
5076 0 55 if $self->{'time_parser'}->can("station")
5079 55 0 if (defined(my $time = $pt->parse($time, $default)))
5092 21 311 unless defined(my $pt = $self->{'time_parser'})
5125 1 14 unless ($in and defined(my $more = &$in(my $prompt = $self->get("continuation_prompt"))))
5126 0 1 unless $error
5127 0 1 if ref $error eq "CODE"
5131 0 14 if $self->{'echo'}
5132 4 10 unless $more =~ / \n \z /msx
5144 0 0 unless $new_obj or $self->{'sky_class'}{CORE::fc $name}
5146 0 0 unless defined(my $inx = $self->_find_in_sky($name))
5229 7 12 unless defined $buffer
5231 0 12 if $buffer =~ / \A \s* \z /msx
5233 0 12 if $buffer =~ s/ \A \s* [#] 2 [#] \s* //msx
5235 0 12 if $buffer =~ / \A \s* [#] /msx
5238 12 0 unless (defined $command)
5239 1 11 unless $buffer =~ / \A \s* ( \w+ ) /msx
5244 8 3 if $buffer =~ s/ ( \s* \\? \n ) //msx
5247 0 11 if $append =~ / \\ /msx
5253 9 13 if (not defined $start_pos) { }
9 4 elsif ($1 eq $this_quote) { }
5266 8 3 unless my $code = $level1_map{$command}
5394 7 1 if (/ ( \S+ ) /msx and !$self->{'macro'}{$1} || $1 eq $name and my $code = $filter{$1}) { }
5405 7 1 $rewrote ? :
5447 0 0 unless my(@rslt) = $simbad->script(qq[format obj "$fmt"\nquery id $query\n])
5452 0 0 if @rslt > 1
5454 0 0 if ($rslt[0]{$_} eq '~') { }
5456 0 0 unless $rslt[0] and $rslt[1]
5458 0 0 $rslt[2] ? :
5459 0 0 if $rslt[3]
5460 0 0 if $rslt[4]
5461 0 0 wantarray ? :
5469 5 0 $opt_value ? :
5475 24 0 if ($fmtr->can("__list_templates"))
5477 628 44 unless $_ =~ /$re/
5610 379 2 'HASH' eq ref $parms[0] ? :
5613 346 35 unless $buffer =~ / \n \z /msx
5635 621 5692 if ($absquote) { }
10 5682 elsif ($char eq '\\') { }
35 5647 elsif ($char eq q['] and not $relquote) { }
44 5603 elsif ($char eq '"') { }
937 4666 elsif ($char =~ / \s /msx and not $relquote and not $opt->{'single'}) { }
72 4594 elsif ($char eq '$' and $inx < $len) { }
6 4588 elsif ($char =~ / [<>|] /msx) { }
3745 843 elsif (exists $rslt[-1]{'token'} or $relquote) { }
12 831 elsif ($char eq '~') { }
2 829 elsif ($char eq '#') { }
5636 0 621 if ($char eq '\\') { }
34 587 elsif ($char eq q[']) { }
5637 0 0 if ((my $next = substr($buffer, $inx, 1)) =~ / ['\\] /msx) { }
5648 2 585 if ($inx >= $len)
5660 2 8 if ($inx >= $len) { }
7 1 elsif ($relquote) { }
5661 0 2 if ($relquote) { }
5667 2 0 unless $opt->{'single'}
5671 6 1 if (my $code = $case_ctl{$next}) { }
5696 22 22 unless $relquote = !$relquote
5717 34 38 if ($name eq '{' and $inx < $len) { }
21 17 elsif ($name =~ / \A [[:alpha:]_] \z /msx) { }
5723 0 369 if ($char eq '{') { }
33 336 elsif ($char eq '}') { }
5726 33 0 unless --$nest
5730 1 33 unless $char eq "}"
5743 21 0 if ($buffer =~ / \G ( \w* (?: [.] \w+ )? ) /cgmsx)
5753 33 38 if $brkt
5758 28 43 if ($name =~ / (.*?) ( [:]? [\-\+\=\?] | [:] ) (.*) /msx) { }
5763 0 28 if $indirect
5795 4 24 ref $value ? :
5800 4 24 if ($flag eq '+') { }
16 8 elsif ($defined) { }
2 6 elsif ($flag eq '-') { }
3 3 elsif ($flag eq '=') { }
2 1 elsif ($flag eq '?') { }
1 0 elsif ($flag eq '') { }
5801 2 2 $defined ? :
5809 10 6 if ($flag eq "")
5814 0 10 if @pos > 2
5818 0 18 unless / \A [-+]? [0-9]+ \z /msx
5823 4 6 if (ref $value) { }
5824 4 0 if (@pos > 1) { }
5829 2 2 if $pos[1] > $value->$#*
5835 2 4 @pos == 1 ? :
5854 0 3 if ($special{$name} or not $name =~ / \D /msx) { }
0 3 elsif (exists $mutator{$name}) { }
5895 3 40 if $indirect
5904 49 7 defined $value ? :
56 13 unless ref $value
5908 12 57 if ($relquote) { }
5922 58 11 if (@{$value;})
5943 4 2 $char eq '<' ? :
0 6 $char eq '|' ? :
5951 0 11 if $next =~ / \s /msx
5952 6 5 if ($next eq $char) { }
5954 1 5 if length $rslt[-1]{'mode'} > 2
5963 4 1 if ("<<" eq $rslt[-1]{'mode'})
5970 2 60 if ($next =~ / \s /msx) { }
5971 2 0 unless $quote
5977 4 2 unless "" eq $rslt[-1]{'token'} and $next =~ / ['"] /msx and $quote = $next
5980 2 32 if $quote and $next eq $quote and $rslt[-1]{'token'} ne ""
5984 2 2 if $quote
5992 4 5 if $buffer eq $look_for
5995 3 1 if ($quote ne "'")
6033 2 374 if ($inx >= $len and $absquote || $relquote)
6034 0 2 $absquote ? :
6049 0 376 if $absquote
6050 0 376 if $relquote
6056 0 376 if (defined $rslt[0]{'token'} and $rslt[0]{'token'} =~ s/ \A ( $command_equiv_re ) //msx)
6058 0 0 if ($rslt[0]{'token'} eq '') { }
0 0 elsif ($opt->{'single'}) { }
6076 252 124 if (defined $rslt[0]{'token'} and my $kode = $self->can($rslt[0]{'token'}))
6078 2 250 if (my $hash = $self->__get_attr($kode, "Tokenize"))
6083 352 966 unless exists $_->{'token'}
6084 1 965 if ($_->{'redirect'}) { }
12 953 elsif ($expand_tildes and $_->{'tilde'}) { }
6085 0 1 if ($_->{'mode'} eq '<') { }
6094 1 0 $_->{'expand'} ? :
6107 31 0 if $opt->{'single'} and $opt->{'noredirect'}
6112 0 341 if $opt->{'noredirect'}
6125 0 0 $indirect ? :
0 74 unless defined $name and $name ne ""
6128 19 55 if ($special{$name})
6130 0 19 $indirect && ref $val ? :
6133 15 40 unless $name =~ / \D /msx
6137 6 34 unless "Null" eq ref $value
6141 2 32 if exists $self->{'exported'}{$name}
6144 18 14 if defined $ENV{$name}
6148 3 14 if defined $frame->{'define'}{$name}
6163 12 3748 if $self->{'_case_mod'}{'case'}
6166 2 3758 if $code = delete $self->{'_case_mod'}{'single'}
6189 1 0 if ($self->get('error_out')) { }