more fixes to bbs syntax
[spider.git] / perl / DXMsg.pm
index f66f98d7f8778c22084a234a6a189e37881f6302..54a2c6f3c04768f9584de08f62d879e5deb90cf4 100644 (file)
@@ -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 ?