Fix initial set of bugs pointed on mailing list
[spider.git] / perl / DXCommandmode.pm
index 6d5225bc2d7cc6ecf79676eaec3c5aabcbe4b9d2..3eb9a1c6ce7ff153bebb30db4affbc9cf59dc227 100644 (file)
@@ -54,12 +54,6 @@ $cmdimportdir = "$main::root/cmd_import"; # the base directory for importing com
                                           # this does not exist as default, you need to create it manually
                                          #
 
-use vars qw($VERSION $BRANCH);
-$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/  || (0,0));
-$main::build += $VERSION;
-$main::branch += $BRANCH;
-
 #
 # obtain a new connection this is derived from dxchannel
 #
@@ -77,7 +71,7 @@ sub new
        my $ref = Route::User::get($call);
        if ($ref) {
                $main::me->route_pc16($main::mycall, undef, $main::routeroot, $ref);
-               $main::me->route_pc92a($main::mycall, undef, $ref);
+               $main::me->route_pc92a($main::mycall, undef, $main::routeroot, $ref);
        }
 
        return $self;
@@ -387,11 +381,11 @@ sub send_talks
        
        my ($to, $via) = $ent =~ /(\S+)>(\S+)/;
        $to = $ent unless $to;
-       my $call = $via ? $via : $to;
+       my $call = $via && $via ne '*' ? $via : $to;
        my $clref = Route::get($call);
        my $dxchan = $clref->dxchan if $clref;
        if ($dxchan) {
-               $dxchan->talk($self->{call}, $to, $via, $line);
+               $dxchan->talk($self->{call}, $to, undef, $line);
        } else {
                $self->send($self->msg('disc2', $via ? $via : $to));
                my @l = grep { $_ ne $ent } @{$self->{talklist}};
@@ -580,7 +574,7 @@ sub disconnect
 
                # issue a pc17 to everybody interested
                $main::me->route_pc17($main::mycall, undef, $main::routeroot, $uref);
-               $main::me->route_pc92d($main::mycall, undef, $uref);
+               $main::me->route_pc92d($main::mycall, undef, $main::routeroot, $uref);
        } else {
                confess "trying to disconnect a non existant user $call";
        }
@@ -833,7 +827,7 @@ sub local_send
 # send a talk message here
 sub talk
 {
-       my ($self, $from, $to, $via, $line) = @_;
+       my ($self, $from, $to, $via, $line, $onode) = @_;
        $line =~ s/\\5E/\^/g;
        if ($self->{talk}) {
                if ($self->{gtk}) {
@@ -842,7 +836,7 @@ sub talk
                        $self->local_send('T', "$to de $from: $line");
                }
        }
-       Log('talk', $to, $from, $via?$via:$main::mycall, $line);
+       Log('talk', $to, $from, '<' . ($onode || '*'), $line);
        # send a 'not here' message if required
        unless ($self->{here} && $from ne $to) {
                my $key = "$to$from";
@@ -926,9 +920,9 @@ sub format_dx_spot
        my $t = ztime($_[2]);
        my $loc = '';
        my $clth = $self->{consort} eq 'local' ? 29 : 30;
-       my $comment = substr $_[3], 0, $clth; 
+       my $comment = substr (($_[3] || ''), 0, $clth);
        $comment .= ' ' x ($clth - length($comment));
-       if ($self->{user}->wantgrid) { 
+       if ($self->{user}->wantgrid) {
                my $ref = DXUser->get_current($_[4]);
                if ($ref) {
                        $loc = $ref->qra || '';
@@ -1177,5 +1171,12 @@ sub import_cmd
                }
        }
 }
+
+sub print_find_reply
+{
+       my ($self, $node, $target, $flag, $ms) = @_;
+       my $sort = $flag == 2 ? "External" : "Local";
+       $self->send("$sort $target found at $node in $ms ms" );
+}
 1;
 __END__