New improved route finding algorithm
[spider.git] / cmd / show / route.pl
1 #
2 # show the routing to a node or station
3 #
4 # Copyright (c) 2001 Dirk Koopman G1TLH
5 #
6 #
7 #
8
9 my ($self, $line) = @_;
10 my @list = map { uc } split /\s+/, $line;           # list of callsigns of nodes
11 my @out;
12
13 return (1, $self->msg('e6')) unless @list;
14
15 my $l;
16 foreach $l (@list) {
17         my $ref = Route::get($l);
18         if ($ref) {
19                 my $parents = $ref->isa('Route::Node') ? $l : join(',', $ref->parents);
20                 push @out, $self->msg('route', $l, $parents,  join(',', map {$_->call} Route::findroutes($l)));
21         } else {
22                 push @out, $self->msg('e7', $l);
23         }
24 }
25
26 return (1, @out);