X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FIntMsg.pm;h=e5f05ff12f1e5dd48f2bbca56a40683675549912;hb=refs%2Fheads%2Fnewusers;hp=e3360fdbf566cf6990dda643c41a78953a3a65bd;hpb=f319bf06d72d135e7ec14ff8b27627187f5e2595;p=spider.git diff --git a/perl/IntMsg.pm b/perl/IntMsg.pm index e3360fdb..e5f05ff1 100644 --- a/perl/IntMsg.pm +++ b/perl/IntMsg.pm @@ -2,7 +2,7 @@ # This class is the internal subclass that deals with the internal port 27754 # communications for Msg.pm # -# $Id$ +# # # Copyright (c) 2001 - Dirk Koopman G1TLH # @@ -10,12 +10,18 @@ package IntMsg; use strict; + use Msg; use vars qw(@ISA); @ISA = qw(Msg); +sub login +{ + goto &main::login; # save some writing, this was the default +} + sub enqueue { my ($conn, $msg) = @_; @@ -27,17 +33,16 @@ sub dequeue { my $conn = shift; - if ($conn && $conn->{msg} =~ /\n/) { - my @lines = split /\r?\n/, $conn->{msg}; - if ($conn->{msg} =~ /\n$/) { + if ($conn && $conn->{msg} =~ /\cJ/) { + my @lines = $conn->{msg} =~ /([^\cM\cJ]*)\cM?\cJ/g; + if ($conn->{msg} =~ /\cJ$/) { delete $conn->{msg}; } else { - $conn->{msg} = pop @lines; + $conn->{msg} =~ s/([^\cM\cJ]*)\cM?\cJ//g; } for (@lines) { if (defined $_) { s/\%([0-9A-F][0-9A-F])/chr(hex($1))/eg; - s/[\x00-\x08\x0a-\x19\x1b-\x1f\x80-\x9f]/./g; # immutable CSI sequence + control characters } else { $_ = ''; }