fix comment width issues for tabs
[spider.git] / perl / DXCommandmode.pm
index bef5626d9e30a998aabbb6ccf70115a77362bdc2..051332b03b75c8f85ff9e32d75dbe23755a25f0d 100644 (file)
@@ -959,7 +959,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 +984,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 +996,11 @@ 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 +1071,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 +1336,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($@);