On Thu, Aug 12, 2010 at 09:34:04AM -0700, Felix Rosencrantz wrote:
> I see problems when I exit from a shell that causes a window to close,
> or a session end:
> 
> 1) When I close a window by exiting it's shell, and tmux is forced to
> switch me to the next window in a session, it stops showing output
> from the terminal, and no longer echos the keys I type in the switched
> to window. Though it seems to echo spaces for most keys I press, and
> delete seems to backspace over them. Output from shell commands are
> not shown. When I switch to another window, and then back to the
> window that wasn't showing output, the output is there, and echoing is
> working again.

someone else saw this but i could never reproduce

> 2) When closing a window causes a session to end, and tmux returns me
> to the shell that attached to the session, my terminal doesn't appear
> to have been properly initialized, since linefeed's are not printing
> properly.(The reset command fixes things.)

may be related. sounds like the tty socket is getting closed before tmux
has a chance to reset it. try this and send the -vvvvv debug output from
reproducing, don't forget to restart tmux entirely:

Index: tty.c
===================================================================
RCS file: /cvsroot/tmux/tmux/tty.c,v
retrieving revision 1.193
diff -u -p -r1.193 tty.c
--- tty.c       11 Aug 2010 22:16:04 -0000      1.193
+++ tty.c       13 Aug 2010 07:35:32 -0000
@@ -225,8 +225,10 @@ tty_stop_tty(struct tty *tty)
        struct winsize  ws;
        int             mode;
 
-       if (!(tty->flags & TTY_STARTED))
+       if (!(tty->flags & TTY_STARTED)) {
+               log_debug("%s: %p not started", __func__, tty);
                return;
+       }
        tty->flags &= ~TTY_STARTED;
 
        bufferevent_disable(tty->event, EV_READ|EV_WRITE);
@@ -236,10 +238,14 @@ tty_stop_tty(struct tty *tty)
         * because the fd is invalid. Things like ssh -t can easily leave us
         * with a dead tty.
         */
-       if (ioctl(tty->fd, TIOCGWINSZ, &ws) == -1)
+       if (ioctl(tty->fd, TIOCGWINSZ, &ws) == -1) {
+               log_debug("%p ioctl: %s", tty, strerror(errno));
                return;
-       if (tcsetattr(tty->fd, TCSANOW, &tty->tio) == -1)
+       }
+       if (tcsetattr(tty->fd, TCSANOW, &tty->tio) == -1) {
+               log_debug("%p tcsetattr: %s", tty, strerror(errno));
                return;
+       }
 
        tty_raw(tty, tty_term_string2(tty->term, TTYC_CSR, 0, ws.ws_row - 1));
        tty_raw(tty, tty_term_string(tty->term, TTYC_RMACS));



> 
> So there appears to be a bug with exiting from a window.
> 
> I'm using the latest version from git on linux, with the libevent-1.4.14b
> -FR,
> 
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by 
> 
> Make an app they can't live without
> Enter the BlackBerry Developer Challenge
> http://p.sf.net/sfu/RIM-dev2dev 
> _______________________________________________
> tmux-users mailing list
> tmux-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/tmux-users

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to