nuke tabs in spot comments
[spider.git] / perl / console.pl
index c175122b2ee774ff307e304678c656ec508c1112..7e725029b0fb79919dcf7dfda141aef98b2f3602 100755 (executable)
@@ -285,7 +285,7 @@ sub rec_stdin
                                show_screen();
                        }
 
-                       addtotop($inbuf);
+                       addtotop(' ', $inbuf);
                
                        # send it to the cluster
                        $conn->send_later("I$call|$inbuf");
@@ -418,15 +418,18 @@ sub rec_stdin
 # add a line to the end of the top screen
 sub addtotop
 {
+       my $sort = shift;
        while (@_) {
                my $inbuf = shift;
                my $l = length $inbuf;
-               dbg("addtotop: $l $inbuf");
                if ($l > $cols) {
                        $inbuf =~ s/\s+/ /g;
                        if (length $inbuf > $cols) {
                                $Text::Wrap::columns = $cols;
-                               push @sh, split /\n/, wrap('',' ' x 19, $inbuf);
+                               my $token;
+                               ($token) = $inbuf =~ m!^(.* de [-\w\d/\#]+:?\s+|\w{9}\@\d\d:\d\d:\d\d )!;
+                               $token ||= ' ' x 19;
+                               push @sh, split /\n/, wrap('', ' ' x length($token), $inbuf);
                        } else {
                                push @sh, $inbuf;
                        }
@@ -434,6 +437,7 @@ sub addtotop
                        push @sh, $inbuf;
                }
        }
+       
        show_screen() unless $inscroll;
 }
 
@@ -445,8 +449,8 @@ sub rec_socket
                cease(1);
        }
        if (defined $msg) {
-               dbg("msg: " . length($msg) . " '$msg'") if isdbg('console');
                my ($sort, $incall, $line) = $msg =~ /^(\w)([^\|]+)\|(.*)$/;
+               dbg("msg: " . length($msg) . " '$msg'") if isdbg('console');
                if ($line =~ s/\x07+$//) {
                        beep();
                }
@@ -456,17 +460,13 @@ sub rec_socket
                $call = $incall if $call ne $incall;
                
                $line =~ s/[\x00-\x06\x08\x0a-\x19\x1b-\x1f\x80-\x9f]/./g;         # immutable CSI sequence + control characters
-               if ($sort && $sort eq 'D') {
-                       $line = " " unless length($line);
-                       addtotop($line);
-               } elsif ($sort && $sort eq 'Z') { # end, disconnect, go, away .....
+               if ($sort && $sort eq 'Z') { # end, disconnect, go, away .....
                        cease(0);
-               }         
-               # ******************************************************
-               # ******************************************************
-               # any other sorts that might happen are silently ignored.
-               # ******************************************************
-               # ******************************************************
+               } else {
+                       $line = " " unless length($line);
+                       addtotop($sort, $line);
+               }
+
        } else {
                cease(0);
        }
@@ -503,7 +503,7 @@ sub idle_loop
 sub on_connect
 {
        my $conn = shift;
-       $conn->send_later("A$call|$connsort width=$cols");
+       $conn->send_later("A$call|$connsort width=$cols enhanced");
        $conn->send_later("I$call|set/page $maxshist");
        #$conn->send_later("I$call|set/nobeep");
 }