Branch Coverage

blib/lib/Astro/App/Satpass2.pm
Criterion Covered Total %
branch 630 1346 46.8


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'}
3458 0 0 unless exists $opt->{'raw'}
3464 0 0 unless not $method =~ / \A _ /msx and $object->can($method) or $handler{$method}
3469 0 0 if $opt->{'start_epoch'}
3472 0 0 if $opt->{'end_epoch'}
3474 0 0 if (defined(my $df = $default_format{$method})) { }
3476 0 0 unless defined $opt->{'format'}
3484 0 0 if ($handler{$method}) { }
3492 0 0 unless $rslt->is_success
3498 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) { }
3502 0 0 if $verbose
3508 0 0 if $verbose
3517 0 0 if defined $output
3528 0 0 if ('localize' eq $func) { }
3532 0 0 unless exists $self->{'frame'}[-1]{'spacetrack'}{$key}
3547 0 34 unless defined $self->{'height'} and defined $self->{'latitude'} and defined $self->{'longitude'}
3568 1 2 unless @args
3572 0 3 if ($verb eq "iridium")
3579 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') { }
3583 1 0 if $tle->get("id") == $args[0]
3596 0 1 if $opt->{'name'}
3628 4 1 if ($mutator{$_}) { }
3629 0 4 if (defined $stdout and -t $stdout) { }
3639 0 2 if ('ARRAY' eq ref $_) { }
3640 0 1 unless &$have_time_hires()
3650 1 0 unless $self->_in_unsatisfied_if
3655 0 0 'HASH' eq ref $_[1] ? :
3663 0 4 if @args and not $opt->{'choose'}
3667 0 1 unless $Astro::App::Satpass2::a->[1] <=> $Astro::App::Satpass2::b->[1]
3697 0 1 if $pass_start >= $pass_end
3700 0 1 unless @{$self->{'bodies'};}
3707 1 1 if $tle->validate($opt, $pass_start, $pass_end)
3748 10 0 if embodies($body, "Astro::Coord::ECI::TLE")
3751 0 0 unless defined $id
3779 8 128 if (exists $opt->{$key})
3782 0 8 if $invert
3783 6 2 $opt->{$key} ? :
3789 0 44 if 1 == $state and @keys == $found
3793 128 8 unless exists $opt->{$key}
3813 1280 0 if exists $accessor{$name} and !$level1_attr{$name} || $self->{'frame'}[-1]{'level1'}
3815 0 0 unless $arg{'query'}
3858 34 9 unless $accessor{$attr}
3861 2 7 if (defined $sub)
3863 0 2 unless $rslt and my $code = $special{$attr}
3914 7 38 'HASH' eq ref $args[0] ? :
3916 40 5 unless defined $choice
3918 0 45 unless "ARRAY" eq ref $choice
3924 0 5 unless my $code = $chooser{$ref}
3931 6 39 if $opt->{'bodies'}
3933 4 41 if $opt->{'sky'}
3935 43 8 if ('ARRAY' eq ref $_) { }
3938 36 4 wantarray ? :
40 5 unless @selector
3941 0 10 if "ARRAY" eq ref $tle
3947 6 4 unless &$sel($tle, $context)
3953 4 6 if $match
3956 2 3 wantarray ? :
4000 0 1277 unless $deprecate{$type}
4001 1277 0 unless $deprecate{$type}{$name}
4003 0 0 $deprecate{$type}{$name} > 2 ? :
4004 0 0 if defined $repl
4006 0 0 if $deprecate{$type}{$name} >= 3
4008 0 0 if warnings::enabled("deprecated")
4011 0 0 if $deprecate{$type}{$name} == 1
4017 0 0 unless $deprecate{$type}
4028 0 1 unless defined(my $inx = $self->_find_in_sky($name))
4046 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)
4052 1 0 if ($mode =~ / \A (?: [+>] | [|] - ) /msx)
4055 1 0 if (defined $layers and "" ne $layers)
4056 0 1 unless binmode $fh, $layers
4096 2 28 if (&openhandle($file))
4098 1 1 unless $opt->{'glob'}
4104 0 28 unless my $code = $self->can("_file_reader_$ref")
4118 17 0 if defined $file
4121 0 17 if (not defined $file or not ref $file and "" eq $file)
4122 0 0 if $opt->{'optional'}
4126 2 15 if ($self->_file_reader__validate_url($file)) { }
4130 0 2 unless ($resp->is_success)
4131 0 0 if $opt->{'optional'}
4143 4 11 unless (open my $fh, "<$encoding", $self->expand_tilde($file))
4144 1 3 if $opt->{'optional'}
4148 4 7 unless $opt->{'glob'}
4168 0 17 unless load_package("LWP::UserAgent")
4171 0 17 unless load_package("URI")
4174 0 17 unless load_package("LWP::Protocol")
4177 0 17 unless my $obj = "URI"->new($url)
4179 0 17 unless $obj->can("authority")
4182 14 3 unless defined(my $scheme = $obj->scheme)
4184 1 2 unless LWP::Protocol::implementor($scheme)
4195 4 1 unless $opt->{'glob'}
4199 0 5 unless $buffer =~ / \n \z /msx
4208 1 1 unless $opt->{'glob'}
4213 0 5 unless $buffer =~ / \n \z /msx
4224 0 4 unless (open my $fh, "<$encoding", $file)
4225 0 0 if $opt->{'optional'}
4229 2 2 unless $opt->{'glob'}
4243 1 7 if $self->{'sky'}[$inx]->get("name") =~ /$re/
4277 52 7 $frames ? :
4283 22 37 exists $opt->{'condition'} ? :
4325 22 31 if @args > 1
4328 26 27 @args && defined $args[0] ? :
4330 0 52 unless my $frame = pop @{$$self{"frame"};}
4335 1 1 if (exists $self->{$name} and not $force_set{$name}) { }
4348 0 52 if $frame->{'spacetrack'} and %{$frame->{'spacetrack'};}
4350 0 53 if (delete $self->{'pending'})
4369 0 0 unless defined $val
4370 0 0 unless defined $val and "" ne $val
4373 0 0 unless 1 eq $val
4406 0 0 unless $kode{$mod}
4439 0 41 $opt && $opt->{'dump'} ? :
4455 0 0 unless (exists $self->{'geocoder'})
4457 0 0 if $class = &$default_geocoder()
4508 1 0 if ($self->_get_interactive) { }
4510 0 1 unless load_package("Term::ReadLine")
4512 1 0 unless ($rl)
4514 0 1 if ("Term::ReadLine::Perl" eq $rl->ReadLine)
4529 0 0 unless defined $buffer
4533 0 0 unless defined $buffer
4538 0 1 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]); } } }
4541 0 0 unless defined $buffer
4554 0 0 unless $start
4562 0 0 if not $cmd =~ s/ \A core [.] //msx and ref $app and $app->{'macro'}{$cmd}
4565 0 0 if ('CODE' eq ref $code) { }
0 0 elsif (my $macro = $app->{'macro'}{$cmd}) { }
4570 0 0 if (my $method = $app->__get_attr($code, "Tweak", {})->{'completion'})
4573 0 0 if $rslt = $app->$method($code, $text, $line, $start)
4579 0 0 if $rslt = $app->_readline_complete_options($code, $text, $line, $start) and @{$rslt;}
4586 0 0 if $rslt = $macro->completion($text)
4590 0 0 if (1 == @files) { }
0 0 elsif ($readline::var_CompleteAddsuffix) { }
4591 0 0 -d $files[0] ? :
4594 0 0 if (-l $_) { }
0 0 elsif (-d $_) { }
0 0 elsif (-x _) { }
0 0 elsif (-S _ or -p _) { }
4613 0 0 unless (@builtins)
4617 0 0 if $sym =~ / \A _ /msx
4619 0 0 unless my $code = $app->can($sym)
4621 0 0 unless $app->__get_attr($code, "Verb")
4628 0 0 if ($text =~ s/ \A core [.] //msx) { }
4634 0 0 ref $app ? :
4636 0 0 if 1 == @rslt and $rslt[0] =~ / \W \z /msx
4646 0 0 unless $text =~ / \A ( --? ) ( .* ) /msx
4653 0 0 if ref $_
4659 0 0 if @rslt
4668 0 0 if (my $code = $app->can("_$part[0]_sub"))
4672 0 0 if (2 == @part)
4677 0 0 if $key =~ /$re/msx
4683 0 0 unless my $code = $app->can("_$part[0]_sub_$part[1]")
4687 0 0 if $r = $app->_readline_complete_options($code, $text, $line, $start)
4692 0 0 unless my $complete = $app->__get_attr($code, "Tweak", {})->{'completion'}
4694 0 0 if $r = $app->$complete($code, $text, $line, $start)
4703 0 0 unless ref $app
4706 0 0 unless 3 == @part
4711 0 0 if /$re/msx
4720 0 0 unless ref $app
4723 0 0 unless 3 == @part
4728 0 0 if ((my $name = $body->get('name')) =~ /$re/) { }
0 0 elsif ((my $id = $body->get('id')) =~ /$re/) { }
4746 0 0 if @parts
4763 7 0 unless exists $self->{'spacetrack'}
4774 7 0 unless &$have_astro_spacetrack()
4784 4 6 unless defined $day
4787 10 0 $gmt ? :
4790 10 0 $gmt ? :
4795 21 21 unless defined $day
4798 42 0 $gmt ? :
4802 42 0 $gmt ? :
4812 0 9 unless my $object = $self->get($attribute)
4853 9 0 unless exists $opt->{'raw'}
4855 0 9 unless defined $method
4858 0 9 if "config" eq $method
4862 0 9 unless not $method =~ / \A _ /msx and $object->can($method)
4868 1 4 if @args and $parse_input{$name} and $parse_input{$name}{$method}
4870 4 5 if delete $opt->{'raw'}
4873 3 2 if instance($rslt[0], ref $object)
4874 0 2 if ref $rslt[0]
4886 0 0 if $opt->{'raw'}
4903 0 0 unless ($status)
4906 0 0 unless $rslt->is_success
4909 0 0 if ('ARRAY' eq ref $status) { }
4938 0 0 if exists $os{$^O}
4952 38 1696 if "Astro::App::Satpass2::dispatch" eq $info[3]
4976 0 0 if "ARRAY" eq ref $module[0]
4977 0 0 unless @module
4980 0 0 unless (load_package($module))
4985 0 0 if ($version{$module} and $modver = $module->VERSION)
4987 0 0 if ($modver < $version{$module})
4998 0 0 if $clr[3] eq "(eval)"
5000 0 0 if substr($raw[-1], 0, 1) eq "_"
5018 0 19 unless $self->{'macro'}{$name}
5024 1 18 unless my $ok = eval { do { $output = $macro->execute($name, @args); 1 } }
5029 1 18 unless $ok
5048 0 9 unless defined $part
5051 0 9 $part =~ / [.] ( [0-9]+ ) /msx ? :
5054 3 0 if (my $mag = sprintf("%d", $circle / 360))
5064 7 33 'HASH' eq ref $args[0] ? :
5066 7 33 unless defined $angle
5068 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) { }
5088 0 1 if $sgn and "-" eq $sgn
5093 0 30 unless $opt->{'accept'} or &looks_like_number($angle)
5113 0 3 unless defined $dfdist
5114 3 0 $dfdist =~ s/ ( [[:alpha:]]+ ) \z //msx ? :
5115 0 3 $string =~ s/ \s* ( [[:alpha:]]+ ) \z //msx ? :
5117 0 3 unless $units{$units}
5119 0 3 unless $string ne ""
5120 0 3 unless &looks_like_number($string)
5131 0 55 unless my $pt = $self->{'time_parser'}
5132 0 55 if $self->{'time_parser'}->can("station")
5135 55 0 if (defined(my $time = $pt->parse($time, $default)))
5148 21 311 unless defined(my $pt = $self->{'time_parser'})
5181 1 14 unless ($in and defined(my $more = &$in(my $prompt = $self->get("continuation_prompt"))))
5182 0 1 unless $error
5183 0 1 if ref $error eq "CODE"
5187 0 14 if $self->{'echo'}
5188 4 10 unless $more =~ / \n \z /msx
5200 0 0 unless $new_obj or $self->{'sky_class'}{CORE::fc $name}
5202 0 0 unless defined(my $inx = $self->_find_in_sky($name))
5285 7 12 unless defined $buffer
5287 0 12 if $buffer =~ / \A \s* \z /msx
5289 0 12 if $buffer =~ s/ \A \s* [#] 2 [#] \s* //msx
5291 0 12 if $buffer =~ / \A \s* [#] /msx
5294 12 0 unless (defined $command)
5295 1 11 unless $buffer =~ / \A \s* ( \w+ ) /msx
5300 8 3 if $buffer =~ s/ ( \s* \\? \n ) //msx
5303 0 11 if $append =~ / \\ /msx
5309 9 13 if (not defined $start_pos) { }
9 4 elsif ($1 eq $this_quote) { }
5322 8 3 unless my $code = $level1_map{$command}
5450 7 1 if (/ ( \S+ ) /msx and !$self->{'macro'}{$1} || $1 eq $name and my $code = $filter{$1}) { }
5461 7 1 $rewrote ? :
5503 0 0 unless my(@rslt) = $simbad->script(qq[format obj "$fmt"\nquery id $query\n])
5508 0 0 if @rslt > 1
5510 0 0 if ($rslt[0]{$_} eq '~') { }
5512 0 0 unless $rslt[0] and $rslt[1]
5514 0 0 $rslt[2] ? :
5515 0 0 if $rslt[3]
5516 0 0 if $rslt[4]
5517 0 0 wantarray ? :
5526 5 0 $opt_value ? :
5533 24 0 if ($fmtr->can("__list_templates"))
5535 668 52 unless $_ =~ /$re/
5544 0 0 unless $valid_format{$opt_value}
5548 24 0 if @rslt
5677 379 2 'HASH' eq ref $parms[0] ? :
5680 346 35 unless $buffer =~ / \n \z /msx
5702 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 '#') { }
5703 0 621 if ($char eq '\\') { }
34 587 elsif ($char eq q[']) { }
5704 0 0 if ((my $next = substr($buffer, $inx, 1)) =~ / ['\\] /msx) { }
5715 2 585 if ($inx >= $len)
5727 2 8 if ($inx >= $len) { }
7 1 elsif ($relquote) { }
5728 0 2 if ($relquote) { }
5734 2 0 unless $opt->{'single'}
5738 6 1 if (my $code = $case_ctl{$next}) { }
5763 22 22 unless $relquote = !$relquote
5784 34 38 if ($name eq '{' and $inx < $len) { }
21 17 elsif ($name =~ / \A [[:alpha:]_] \z /msx) { }
5790 0 369 if ($char eq '{') { }
33 336 elsif ($char eq '}') { }
5793 33 0 unless --$nest
5797 1 33 unless $char eq "}"
5810 21 0 if ($buffer =~ / \G ( \w* (?: [.] \w+ )? ) /cgmsx)
5820 33 38 if $brkt
5825 28 43 if ($name =~ / (.*?) ( [:]? [\-\+\=\?] | [:] ) (.*) /msx) { }
5830 0 28 if $indirect
5862 4 24 ref $value ? :
5867 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 '') { }
5868 2 2 $defined ? :
5876 10 6 if ($flag eq "")
5881 0 10 if @pos > 2
5885 0 18 unless / \A [-+]? [0-9]+ \z /msx
5890 4 6 if (ref $value) { }
5891 4 0 if (@pos > 1) { }
5896 2 2 if $pos[1] > $value->$#*
5902 2 4 @pos == 1 ? :
5921 0 3 if ($special{$name} or not $name =~ / \D /msx) { }
0 3 elsif (exists $mutator{$name}) { }
5962 3 40 if $indirect
5971 49 7 defined $value ? :
56 13 unless ref $value
5975 12 57 if ($relquote) { }
5989 58 11 if (@{$value;})
6010 4 2 $char eq '<' ? :
0 6 $char eq '|' ? :
6018 0 11 if $next =~ / \s /msx
6019 6 5 if ($next eq $char) { }
6021 1 5 if length $rslt[-1]{'mode'} > 2
6030 4 1 if ("<<" eq $rslt[-1]{'mode'})
6037 2 60 if ($next =~ / \s /msx) { }
6038 2 0 unless $quote
6044 4 2 unless "" eq $rslt[-1]{'token'} and $next =~ / ['"] /msx and $quote = $next
6047 2 32 if $quote and $next eq $quote and $rslt[-1]{'token'} ne ""
6051 2 2 if $quote
6059 4 5 if $buffer eq $look_for
6062 3 1 if ($quote ne "'")
6100 2 374 if ($inx >= $len and $absquote || $relquote)
6101 0 2 $absquote ? :
6116 0 376 if $absquote
6117 0 376 if $relquote
6123 0 376 if (defined $rslt[0]{'token'} and $rslt[0]{'token'} =~ s/ \A ( $command_equiv_re ) //msx)
6125 0 0 if ($rslt[0]{'token'} eq '') { }
0 0 elsif ($opt->{'single'}) { }
6143 252 124 if (defined $rslt[0]{'token'} and my $kode = $self->can($rslt[0]{'token'}))
6145 2 250 if (my $hash = $self->__get_attr($kode, "Tokenize"))
6150 352 966 unless exists $_->{'token'}
6151 1 965 if ($_->{'redirect'}) { }
12 953 elsif ($expand_tildes and $_->{'tilde'}) { }
6152 0 1 if ($_->{'mode'} eq '<') { }
6161 1 0 $_->{'expand'} ? :
6174 31 0 if $opt->{'single'} and $opt->{'noredirect'}
6179 0 341 if $opt->{'noredirect'}
6192 0 0 $indirect ? :
0 74 unless defined $name and $name ne ""
6195 19 55 if ($special{$name})
6197 0 19 $indirect && ref $val ? :
6200 15 40 unless $name =~ / \D /msx
6204 6 34 unless "Null" eq ref $value
6208 2 32 if exists $self->{'exported'}{$name}
6211 18 14 if defined $ENV{$name}
6215 3 14 if defined $frame->{'define'}{$name}
6230 12 3748 if $self->{'_case_mod'}{'case'}
6233 2 3758 if $code = delete $self->{'_case_mod'}{'single'}
6256 1 0 if ($self->get('error_out')) { }