get enhanced mode "work" in basic console.pl
authorDirk Koopman <djk@tobit.co.uk>
Fri, 10 Dec 2021 23:55:34 +0000 (23:55 +0000)
committerDirk Koopman <djk@tobit.co.uk>
Fri, 10 Dec 2021 23:55:34 +0000 (23:55 +0000)
perl/DXCommandmode.pm
perl/console.pl

index 71a888bfcf5a352de99b84965d296079c23742e6..00c82125097dcea4fe077ff4bafc3322d3ea8ccd 100644 (file)
@@ -111,8 +111,8 @@ sub start
        my $pagelth = $user->pagelth;
        $pagelth = $default_pagelth unless defined $pagelth;
        $self->{pagelth} = $pagelth;
-       ($self->{width}) = $line =~ /width=(\d+)/; $line =~ s/\s*width=\d+\s*//;
-       $self->{enhanced} = $line =~ /\benhanced\b/; $line =~ s/\s*enhanced\s*//;
+       ($self->{width}) = $line =~ /\s*width=(\d+)/; $line =~ s/\s*width=\d+//;
+       $self->{enhanced} = $line =~ /\s+enhanced/; $line =~ s/\s*enhanced//;
        if ($line =~ /host=/) {
                my ($h) = $line =~ /host=(\d+\.\d+\.\d+\.\d+)/;
                $line =~ s/\s*host=\d+\.\d+\.\d+\.\d+// if $h;
@@ -125,7 +125,7 @@ sub start
        $self->{width} = 80 unless $self->{width} && $self->{width} > 80;
        $self->{consort} = $line;       # save the connection type
 
-       LogDbg('DXCommand', "$call connected from $self->{hostname} cols $self->width" . $self->{enhanced}?"enhanced":'');
+       LogDbg('DXCommand', "$call connected from $self->{hostname} cols $self->{width}" . ($self->{enhanced}?" enhanced":''));
 
        # set some necessary flags on the user if they are connecting
        $self->{beep} = $user->wantbeep;
index f8d955154e95238796aa3c28d2b7bf92d2d90c52..7e725029b0fb79919dcf7dfda141aef98b2f3602 100755 (executable)
@@ -419,16 +419,17 @@ sub rec_stdin
 sub addtotop
 {
        my $sort = shift;
-       
        while (@_) {
                my $inbuf = shift;
                my $l = length $inbuf;
-               dbg("addtotop: $sort $l $inbuf") if isdbg('console');
-               if ($l > $cols && grep $sort eq $_, qw(T A C)) {
+               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;
                        }
@@ -436,6 +437,7 @@ sub addtotop
                        push @sh, $inbuf;
                }
        }
+       
        show_screen() unless $inscroll;
 }
 
@@ -447,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();
                }
@@ -458,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') {
+               if ($sort && $sort eq 'Z') { # end, disconnect, go, away .....
+                       cease(0);
+               } else {
                        $line = " " unless length($line);
                        addtotop($sort, $line);
-               } elsif ($sort && $sort eq 'Z') { # end, disconnect, go, away .....
-                       cease(0);
-               }         
-               # ******************************************************
-               # ******************************************************
-               # any other sorts that might happen are silently ignored.
-               # ******************************************************
-               # ******************************************************
+               }
+
        } else {
                cease(0);
        }