X-Git-Url: http://scm.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=perl%2FDXMsg.pm;h=92c113304726f82aaa8efaf75e4841b328e9ac2d;hb=8e095bdba5dc26a87b0f1ed0254d08ba80636725;hp=f66f98d7f8778c22084a234a6a189e37881f6302;hpb=1283d7c748715a1bf85a781fe4b66f427d949ae9;p=spider.git diff --git a/perl/DXMsg.pm b/perl/DXMsg.pm index f66f98d7..92c11330 100644 --- a/perl/DXMsg.pm +++ b/perl/DXMsg.pm @@ -143,7 +143,7 @@ sub process my @f = split /\^/, $line; my ($pcno) = $f[0] =~ /^PC(\d\d)/; # just get the number my ($tonode, $fromnode) = @f[1, 2]; - my $stream = $f[3] if $pcno > 29 && $pcno <= 33; + my $stream = $f[3] if ($pcno >= 29 && $pcno <= 33) || $pcno == 42; SWITCH: { if ($pcno == 28) { # incoming message @@ -1187,6 +1187,7 @@ sub import_msgs my @out = import_one($main::me, \@msg, $splitit); Log('msg', @out); } + queue_msg(0); } # import one message as a list in bbs (as extended) mode @@ -1206,7 +1207,9 @@ sub import_one # first line; my $line = shift @$ref; - my @f = split /\s+/, $line; + my @f = split /\b/, $line; + @f = map {s/\s+//g; length $_ ? $_ : ()} @f; + unless (@f && $f[0] =~ /^(:?S|SP|SB|SEND)$/ ) { my $m = "invalid first line in import '$line'"; dbg($m) if isdbg('msg'); @@ -1223,16 +1226,16 @@ sub import_one ; } elsif ($notincalls && ($f eq 'RR')) { $rr = '1'; - } elsif ($f eq '@' && @f) { # this is bbs syntax, for origin - $origin = uc shift @f; + } elsif (($f =~ /^[\@\.\#\$]$/ || $f eq '.#') && @f) { # this is bbs syntax, for AT + shift @f; } elsif ($f eq '<' && @f) { # this is bbs syntax for from call $from = uc shift @f; } elsif ($f =~ /^\$/) { # this is bbs syntax for a bid next; - } elsif ($f =~ /^<\S+/) { # this is bbs syntax for from call - ($from) = $f =~ /^<(\S+)$/; - } elsif ($f =~ /^\@\S+/) { # this is bbs syntax for origin - ($origin) = $f =~ /^\@(\S+)$/; + } elsif ($f =~ /^<(\S+)/) { # this is bbs syntax for from call + $from = $1; + } elsif ($f =~ /^\$\S+/) { # this is bbs syntax for bid + ; } else { # callsign ?