From 894a6737658c1e149f9db626bc9f0dd64d454262 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 15 Mar 2011 12:16:19 -0500 Subject: don't leave the terminal in raw mode when the socket can't connect --- lib/App/Termcast.pm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/App/Termcast.pm b/lib/App/Termcast.pm index 48a8734..6b98403 100644 --- a/lib/App/Termcast.pm +++ b/lib/App/Termcast.pm @@ -244,6 +244,8 @@ sub run { my $self = shift; my @cmd = @_; + $self->socket; + ReadMode 5; my $guard = Scope::Guard->new(sub { ReadMode 0 }); @@ -267,7 +269,10 @@ sub run { } if ($self->_socket_ready($eout)) { + ReadMode 0; $self->clear_socket; + $self->socket; + ReadMode 5; } if ($self->_in_ready($rout)) { @@ -303,13 +308,11 @@ sub run { my $buf; $self->socket->recv($buf, 4096); if (!defined $buf || length $buf == 0) { - if ($self->_got_winch) { - $self->_got_winch(0); - redo; - } - if (defined $buf) { + ReadMode 0; $self->clear_socket; + $self->socket; + ReadMode 5; } else { Carp::croak("Error reading from socket: $!"); -- cgit v1.2.3-54-g00ecf