X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=perl%2FDXCommandmode.pm;h=b10149ec6bcbd9bcf75b27e8839898878c21dd41;hb=1935ba236a7ef4999bceb00b6faf28038f3b052e;hp=bef5626d9e30a998aabbb6ccf70115a77362bdc2;hpb=3b73a2dde8b378db6b56438699c5a1f233194dbf;p=spider.git diff --git a/perl/DXCommandmode.pm b/perl/DXCommandmode.pm index bef5626d..b10149ec 100644 --- a/perl/DXCommandmode.pm +++ b/perl/DXCommandmode.pm @@ -155,6 +155,10 @@ sub start $self->{registered} = 1; } + # establish slug queue, if required + $self->{sluggedpc11s} = []; + $self->{isslugged} = $DXProt::pc92_slug_changes + $main::systime if $DXProt::pc92_slug_changes; + # send the relevant MOTD $self->send_motd; @@ -959,7 +963,7 @@ sub announce $buf = dd(['ann', $to, $target, $text, @_]) } else { $buf = "$to$target de $_[0]: $text"; - $buf =~ s/\%5E/^/g; + #$buf =~ s/\%5E/^/g; $buf .= "\a\a" if $self->{beep}; } $self->local_send($target eq 'WX' ? 'W' : 'N', $buf); @@ -984,7 +988,7 @@ sub chat $buf = dd(['chat', $to, $target, $text, @_]) } else { $buf = "$target de $_[0]: $text"; - $buf =~ s/\%5E/^/g; + #$buf =~ s/\%5E/^/g; $buf .= "\a\a" if $self->{beep}; } $self->local_send('C', $buf); @@ -996,10 +1000,12 @@ sub format_dx_spot my $t = ztime($_[2]); my $loc = ''; - my $clth = 30; + my $clth = 31 + $self->{width} - 80; # allow comment to grow according the screen width # --$clth if $self->{consort} eq 'local'; my $comment = substr (($_[3] || ''), 0, $clth); + $comment =~ s/\t/ /g; + $comment .= ' ' x ($clth - (length($comment))); if ($self->{user}->wantgrid) { @@ -1070,7 +1076,7 @@ sub dx_spot } else { $buf = $self->format_dx_spot(@_); $buf .= "\a\a" if $self->{beep}; - $buf =~ s/\%5E/^/g; + #$buf =~ s/\%5E/^/g; } $self->local_send('X', $buf); @@ -1335,11 +1341,16 @@ sub spawn_cmd sub { my $subpro = shift; if (isdbg('progress')) { - my $s = qq{line: "$line"}; + my $s = qq{$call line: "$line"}; $s .= ", args: " . join(', ', map { defined $_ ? qq{'$_'} : q{'undef'} } @$args) if $args && @$args; dbg($s); } - eval { @out = $cmdref->(@$args); }; + eval { + ++$self->{_in_sub_process}; + dbg "\$self->{_in_sub_process} = $self->{_in_sub_process}"; + @out = $cmdref->(@$args); + --$self->{_in_sub_process} if $self->{_in_sub_process} > 0; + }; if ($@) { DXDebug::dbgprintring(25); push @out, DXDebug::shortmess($@);