fix ^ convertion in command mode dx
[spider.git] / perl / Thingy / Dx.pm
index c4d969a03aceedab799905c57c1a7b35d725fce3..35ff5214985bfecf0b7d69bf2de787fe4a573cb2 100644 (file)
@@ -28,14 +28,15 @@ sub gen_Aranea
        my $thing = shift;
        unless ($thing->{Aranea}) {
                my $sd = $thing->{spotdata};
-               my @items = (
-                                        f=>$sd->[0],
-                                        c=>$sd->[1],
-                                       );
-               push @items, ('b', $sd->[4]) unless $thing->{user};
-               push @items, ('st', sprintf("%X", $sd->[2] / 60), 'o', $sd->[7]) unless $sd->[7] eq $main::mycall;
-               push @items, ('i', $sd->[3]) if $sd->[3];
-               $thing->{Aranea} = Aranea::genmsg($thing, 'DX', @items);
+               $thing->{f} = $sd->[0];
+               $thing->{c} = $sd->[1];
+               $thing->{b} = $sd->[4] unless $thing->{user};
+               unless ($sd->[7] eq $main::mycall) {
+                       $thing->{t} = sprintf("%X", $sd->[2] / 60);
+                       $thing->{o} =  $sd->[7]; 
+               }
+               $thing->{i} = $sd->[3] if $sd->[3];
+               $thing->{Aranea} = Aranea::genmsg($thing, [qw(f c b t o i)]);
        }
        return $thing->{Aranea};
 }
@@ -44,8 +45,8 @@ sub from_Aranea
 {
        my $thing = shift;
        return unless $thing;
-       my $t = hex($thing->{st}) if exists $thing->{st};
-       $t ||= $thing->{time} / 60;
+       my $t = hex($thing->{t}) if exists $thing->{t};
+       $t ||= $thing->{time} / 60;     # if it is an aranea generated
        my @spot = Spot::prepare(
                                                         $thing->{f},
                                                         $thing->{c},
@@ -65,7 +66,7 @@ sub gen_DXProt
                my $sd = $thing->{spotdata};
                my $hops = $thing->{hops} || DXProt::get_hops(11);
                my $text = $sd->[3] || ' ';
-               $text =~ s/\^/%5E/g;
+               $text =~ s/\^/\%5E/g;
                my $t = $sd->[2];
                $thing->{DXProt} = sprintf "PC11^%.1f^$sd->[1]^%s^%s^$text^$sd->[4]^$sd->[7]^$hops^~", $sd->[0], cldate($t), ztime($t);
        }