Sorry for the delay. I can't reproduce this, can you please give me some tmux commands to reproduce the problem?
On Wed, Nov 16, 2016 at 03:12:06PM +0530, Prabhuram K wrote: > **Except making standard fds to blocking state, everything works perfectly > fine without the patch. > On Wed, Nov 16, 2016 at 2:43 PM, Nicholas Marriott > <[1][email protected]> wrote: > > does this happen without the patch? > > On Wed, Nov 16, 2016 at 09:57:49AM +0530, Prabhuram K wrote: > >** ** Hi Nicholas, > >** ** Many thanks. It now sets non-blocking always with the patch. > >** ** However get in to another issue now. It works till I have only > one window > >** ** in the session. > >** ** As soon as I attach a new-window to this existing session, the > tmux just > >** ** freezes. Though I could see prints are coming in to the screen, > input is > >** ** not working. As soon as I killed the new-window, everything backs > to > >** ** normal. Any Idea? > > > >** ** Thanks, > >** ** Prabhu > >** ** On Wed, Nov 16, 2016 at 6:14 AM, Nicholas Marriott > >** ** <[1][2][email protected]> wrote: > > > >** ** ** Right, but if you run an application in a terminal, they will > all be > >** ** ** dup()'d file descriptors referencing the same object (open()ed > from some > >** ** ** /dev/pty). On most (maybe all) *nix, O_NONBLOCK is an > attribute of that > >** ** ** object, not the descriptors - if you change one, you change > them all. > > > >** ** ** tmux only changes stdin, but your stdout and stderr point to > the same > >** ** ** object so they will be changed too. > > > >** ** ** On Wed, Nov 16, 2016 at 06:01:43AM +0530, Prabhuram K wrote: > >** ** ** >** ** As for as I know STDIN STDOUT STDERR fds are defined > with 0, 1 > >** ** ** and 2. I > >** ** ** >** ** can try the patch anyway.** Thanks again. > >** ** ** > > >** ** ** >** ** On Nov 16, 2016 5:54 AM, "Nicholas Marriott" > >** ** ** >** ** <[1][2][3][email protected]> wrote: > >** ** ** > > >** ** ** >** ** ** stdin and stdout and stderr are probably all the > same file > >** ** ** descriptor. > >** ** ** > > >** ** ** >** ** ** On Wed, Nov 16, 2016 at 05:53:52AM +0530, Prabhuram > K wrote: > >** ** ** >** ** ** >** ** Hi Nicholas, > >** ** ** >** ** ** >** ** Thanks a lot for the patch. But it's not just > STDIN. > >** ** ** setting to > >** ** ** >** ** ** blocking. > >** ** ** >** ** ** >** ** Even STDOUT and STDERR also going back to > blocking > >** ** ** state. Do I > >** ** ** >** ** ** need to add > >** ** ** >** ** ** >** ** similar code for other fds? > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** BTW: Your question on why reinitialize back, > I am > >** ** ** running with a > >** ** ** >** ** ** real time > >** ** ** >** ** ** >** ** system and I run my application multiple > instances > >** ** ** under tmux and > >** ** ** >** ** ** >** ** sometimes simultaneously. So I don't want > this to be > >** ** ** done from my > >** ** ** >** ** ** >** ** application rather from tmux itself. > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** Thanks a lot for your help > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** Regards, > >** ** ** >** ** ** >** ** Prabhu > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** On Nov 16, 2016 5:17 AM, "Nicholas Marriott" > >** ** ** >** ** ** >** ** <[1][2][3][4][email protected]> > wrote: > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** You could try this: > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** Index: client.c > >** ** ** >** ** ** >** ** ** > >** ** ** >** ** ** > >** ** ** > =================================================================== > >** ** ** >** ** ** >** ** ** RCS file: /cvs/src/usr.bin/tmux/client.c,v > >** ** ** >** ** ** >** ** ** retrieving revision 1.114 > >** ** ** >** ** ** >** ** ** diff -u -p -r1.114 client.c > >** ** ** >** ** ** >** ** ** --- client.c** ** 3 Oct 2016 22:52:11 > -0000** ** ** > >** ** ** **1.114 > >** ** ** >** ** ** >** ** ** +++ client.c** ** 15 Nov 2016 23:47:22 > -0000 > >** ** ** >** ** ** >** ** ** @@ -38,6 +38,7 @@ static struct tmuxproc** > ** ** ** > >** ** ** >** ** ** *client_proc; > >** ** ** >** ** ** >** ** ** **static struct tmuxpeer *client_peer; > >** ** ** >** ** ** >** ** ** **static int** ** ** ** ** ** ** > client_flags; > >** ** ** >** ** ** >** ** ** **static struct event** ** **client_stdin; > >** ** ** >** ** ** >** ** ** +static int** ** ** ** ** ** ** > >** ** ** client_stdin_blocking; > >** ** ** >** ** ** >** ** ** **static enum { > >** ** ** >** ** ** >** ** ** ** ** ** ** CLIENT_EXIT_NONE, > >** ** ** >** ** ** >** ** ** ** ** ** ** CLIENT_EXIT_DETACHED, > >** ** ** >** ** ** >** ** ** @@ -306,10 +307,12 @@ client_main(struct > event_base > >** ** ** *base, int > >** ** ** >** ** ** >** ** ** ** ** ** ** > options_free(global_w_options); > >** ** ** >** ** ** >** ** ** ** ** ** ** environ_free(global_environ); > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** -** ** ** **/* Create stdin handler. */ > >** ** ** >** ** ** >** ** ** -** ** ** **setblocking(STDIN_FILENO, 0); > >** ** ** >** ** ** >** ** ** +** ** ** **/* Create stdin event. */ > >** ** ** >** ** ** >** ** ** ** ** ** ** event_set(&client_stdin, > STDIN_FILENO, > >** ** ** >** ** ** EV_READ|EV_PERSIST, > >** ** ** >** ** ** >** ** ** ** ** ** ** ** ** client_stdin_callback, > NULL); > >** ** ** >** ** ** >** ** ** +** ** ** **client_stdin_blocking = > >** ** ** getblocking(STDIN_FILENO); > >** ** ** >** ** ** >** ** ** + > >** ** ** >** ** ** >** ** ** +** ** ** **/* Configure terminal for > control mode. > >** ** ** */ > >** ** ** >** ** ** >** ** ** ** ** ** ** if (client_flags & > >** ** ** CLIENT_CONTROLCONTROL) { > >** ** ** >** ** ** >** ** ** ** ** ** ** ** ** ** ** if > (tcgetattr(STDIN_FILENO, > >** ** ** >** ** ** &saved_tio) != 0) > >** ** ** >** ** ** >** ** ** ** ** ** ** ** ** ** ** ** ** ** ** > fatal("tcgetattr > >** ** ** failed"); > >** ** ** >** ** ** >** ** ** @@ -375,7 +378,7 @@ client_main(struct > event_base > >** ** ** *base, int > >** ** ** >** ** ** >** ** ** ** ** ** ** ** ** ** ** > tcsetattr(STDOUT_FILENO, > >** ** ** TCSAFLUSH, > >** ** ** >** ** ** &saved_tio); > >** ** ** >** ** ** >** ** ** ** ** ** ** } else if (client_exitreason > != > >** ** ** CLIENT_EXIT_NONE) > >** ** ** >** ** ** >** ** ** ** ** ** ** ** ** ** ** fprintf(stderr, > "%s\n", > >** ** ** >** ** ** client_exit_message()); > >** ** ** >** ** ** >** ** ** -** ** ** **setblocking(STDIN_FILENO, 1); > >** ** ** >** ** ** >** ** ** +** ** ** **setblocking(STDIN_FILENO, > >** ** ** client_stdin_blocking); > >** ** ** >** ** ** >** ** ** ** ** ** ** return (client_exitval); > >** ** ** >** ** ** >** ** ** **} > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** @@ -585,6 +588,7 @@ > client_dispatch_wait(struct imsg > >** ** ** *imsg, > >** ** ** >** ** ** >** ** ** ** ** ** ** ** ** ** ** if (datalen != 0) > >** ** ** >** ** ** >** ** ** ** ** ** ** ** ** ** ** ** ** ** ** > fatalx("bad > >** ** ** MSG_STDIN > >** ** ** >** ** ** size"); > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** +** ** ** ** ** ** ** > **setblocking(STDIN_FILENO, > >** ** ** 0); > >** ** ** >** ** ** >** ** ** ** ** ** ** ** ** ** ** > event_add(&client_stdin, > >** ** ** NULL); > >** ** ** >** ** ** >** ** ** ** ** ** ** ** ** ** ** break; > >** ** ** >** ** ** >** ** ** ** ** ** ** case MSG_STDOUT: > >** ** ** >** ** ** >** ** ** Index: tmux.c > >** ** ** >** ** ** >** ** ** > >** ** ** >** ** ** > >** ** ** > =================================================================== > >** ** ** >** ** ** >** ** ** RCS file: /cvs/src/usr.bin/tmux/tmux.c,v > >** ** ** >** ** ** >** ** ** retrieving revision 1.172 > >** ** ** >** ** ** >** ** ** diff -u -p -r1.172 tmux.c > >** ** ** >** ** ** >** ** ** --- tmux.c** ** ** 11 Oct 2016 13:21:59 > -0000** ** > >** ** ** ** 1.172 > >** ** ** >** ** ** >** ** ** +++ tmux.c** ** ** 15 Nov 2016 23:47:22 > -0000 > >** ** ** >** ** ** >** ** ** @@ -150,18 +150,31 @@ fail: > >** ** ** >** ** ** >** ** ** ** ** ** ** return (NULL); > >** ** ** >** ** ** >** ** ** **} > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** +int > >** ** ** >** ** ** >** ** ** +getblocking(int fd) > >** ** ** >** ** ** >** ** ** +{ > >** ** ** >** ** ** >** ** ** +** ** ** **int** ** **mode; > >** ** ** >** ** ** >** ** ** + > >** ** ** >** ** ** >** ** ** +** ** ** **if ((mode = fcntl(fd, > F_GETFL)) == -1) > >** ** ** >** ** ** >** ** ** +** ** ** ** ** ** ** **return (-1); > >** ** ** >** ** ** >** ** ** +** ** ** **if (mode & O_NONBLOCK) > >** ** ** >** ** ** >** ** ** +** ** ** ** ** ** ** **return (0); > >** ** ** >** ** ** >** ** ** +** ** ** **return (1); > >** ** ** >** ** ** >** ** ** +} > >** ** ** >** ** ** >** ** ** + > >** ** ** >** ** ** >** ** ** **void > >** ** ** >** ** ** >** ** ** **setblocking(int fd, int state) > >** ** ** >** ** ** >** ** ** **{ > >** ** ** >** ** ** >** ** ** -** ** ** **int mode; > >** ** ** >** ** ** >** ** ** +** ** ** **int** ** **mode, new_mode; > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** -** ** ** **if ((mode = fcntl(fd, > F_GETFL)) != -1) { > >** ** ** >** ** ** >** ** ** -** ** ** ** ** ** ** **if (!state) > >** ** ** >** ** ** >** ** ** -** ** ** ** ** ** ** ** ** ** ** **mode > |= > >** ** ** O_NONBLOCK; > >** ** ** >** ** ** >** ** ** -** ** ** ** ** ** ** **else > >** ** ** >** ** ** >** ** ** -** ** ** ** ** ** ** ** ** ** ** **mode > &= > >** ** ** ~O_NONBLOCK; > >** ** ** >** ** ** >** ** ** +** ** ** **if (state == -1 || (mode = > fcntl(fd, > >** ** ** F_GETFL)) == > >** ** ** >** ** ** -1) > >** ** ** >** ** ** >** ** ** +** ** ** ** ** ** ** **return; > >** ** ** >** ** ** >** ** ** +** ** ** **if (state) > >** ** ** >** ** ** >** ** ** +** ** ** ** ** ** ** **new_mode = (mode | > >** ** ** O_NONBLOCK); > >** ** ** >** ** ** >** ** ** +** ** ** **else > >** ** ** >** ** ** >** ** ** +** ** ** ** ** ** ** **new_mode = (mode & > >** ** ** ~O_NONBLOCK); > >** ** ** >** ** ** >** ** ** +** ** ** **if (new_mode != mode) > >** ** ** >** ** ** >** ** ** ** ** ** ** ** ** ** ** fcntl(fd, F_SETFL, > mode); > >** ** ** >** ** ** >** ** ** -** ** ** **} > >** ** ** >** ** ** >** ** ** **} > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** **const char * > >** ** ** >** ** ** >** ** ** Index: tmux.h > >** ** ** >** ** ** >** ** ** > >** ** ** >** ** ** > >** ** ** > =================================================================== > >** ** ** >** ** ** >** ** ** RCS file: /cvs/src/usr.bin/tmux/tmux.h,v > >** ** ** >** ** ** >** ** ** retrieving revision 1.677 > >** ** ** >** ** ** >** ** ** diff -u -p -r1.677 tmux.h > >** ** ** >** ** ** >** ** ** --- tmux.h** ** ** 15 Nov 2016 15:17:28 > -0000** ** > >** ** ** ** 1.677 > >** ** ** >** ** ** >** ** ** +++ tmux.h** ** ** 15 Nov 2016 23:47:23 > -0000 > >** ** ** >** ** ** >** ** ** @@ -1105,6 +1105,7 @@ struct tty { > >** ** ** >** ** ** >** ** ** ** ** ** ** struct tty_term *term; > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** ** ** ** ** int** ** ** ** ** ** ** fd; > >** ** ** >** ** ** >** ** ** +** ** ** **int** ** ** ** ** ** ** > blocking; > >** ** ** >** ** ** >** ** ** ** ** ** ** struct bufferevent *event; > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** ** ** ** ** struct termios** **tio; > >** ** ** >** ** ** >** ** ** @@ -1512,6 +1513,7 @@ extern struct > environ** ** > >** ** ** >** ** ** ***global_environ; > >** ** ** >** ** ** >** ** ** **extern struct timeval** **start_time; > >** ** ** >** ** ** >** ** ** **extern const char** ** ** *socket_path; > >** ** ** >** ** ** >** ** ** **int** ** ** ** ** ** **areshell(const > char *); > >** ** ** >** ** ** >** ** ** +int** ** ** ** ** ** **getblocking(int); > >** ** ** >** ** ** >** ** ** **void** ** ** ** ** ** setblocking(int, > int); > >** ** ** >** ** ** >** ** ** **const char** ** ***find_home(void); > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** Index: tty.c > >** ** ** >** ** ** >** ** ** > >** ** ** >** ** ** > >** ** ** > =================================================================== > >** ** ** >** ** ** >** ** ** RCS file: /cvs/src/usr.bin/tmux/tty.c,v > >** ** ** >** ** ** >** ** ** retrieving revision 1.214 > >** ** ** >** ** ** >** ** ** diff -u -p -r1.214 tty.c > >** ** ** >** ** ** >** ** ** --- tty.c** ** ** **15 Nov 2016 15:17:28 > -0000** ** > >** ** ** ** 1.214 > >** ** ** >** ** ** >** ** ** +++ tty.c** ** ** **15 Nov 2016 23:47:23 > -0000 > >** ** ** >** ** ** >** ** ** @@ -237,6 +237,7 @@ tty_init_termios(int > fd, struct > >** ** ** termios > >** ** ** >** ** ** >** ** ** **void > >** ** ** >** ** ** >** ** ** **tty_start_tty(struct tty *tty) > >** ** ** >** ** ** >** ** ** **{ > >** ** ** >** ** ** >** ** ** +** ** ** **tty->blocking = > getblocking(tty->fd); > >** ** ** >** ** ** >** ** ** ** ** ** ** tty_init_termios(tty->fd, > &tty->tio, > >** ** ** tty->event); > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** ** ** ** ** tty_putcode(tty, TTYC_SMCUP); > >** ** ** >** ** ** >** ** ** @@ -330,7 +331,7 @@ tty_stop_tty(struct > tty *tty) > >** ** ** >** ** ** >** ** ** ** ** ** ** ** ** ** ** tty_raw(tty, > "\033[?69l"); > >** ** ** /* DECLRMM > >** ** ** >** ** ** */ > >** ** ** >** ** ** >** ** ** ** ** ** ** tty_raw(tty, > tty_term_string(tty->term, > >** ** ** >** ** ** TTYC_RMCUP)); > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** -** ** ** **setblocking(tty->fd, 1); > >** ** ** >** ** ** >** ** ** +** ** ** **setblocking(tty->fd, > tty->blocking); > >** ** ** >** ** ** >** ** ** **} > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** **void > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** On Tue, Nov 15, 2016 at 11:33:02PM +0000, > Nicholas > >** ** ** Marriott > >** ** ** >** ** ** wrote: > >** ** ** >** ** ** >** ** ** > tmux sets stdin nonblocking then sets it > blocking > >** ** ** again on > >** ** ** >** ** ** exit, we > >** ** ** >** ** ** >** ** ** > could probably not do that unless we are > going to > >** ** ** use it, > >** ** ** >** ** ** and restore > >** ** ** >** ** ** >** ** ** > it only if it wasn't already > nonblocking. But TBH > >** ** ** does it > >** ** ** >** ** ** matter that > >** ** ** >** ** ** >** ** ** > much? Why not just set it nonblocking > yourself > >** ** ** after you run > >** ** ** >** ** ** tmux? > >** ** ** >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** ** > On Tue, Nov 15, 2016 at 11:01:54PM > +0530, > >** ** ** Prabhuram K wrote: > >** ** ** >** ** ** >** ** ** > >** ** Hi, > >** ** ** >** ** ** >** ** ** > >** ** I have an application and run it > under > >** ** ** tmux. > >** ** ** >** ** ** >** ** ** > >** ** The application sets** > STDIN_FILENO, > >** ** ** STDOUT_FILENO > >** ** ** >** ** ** and > >** ** ** >** ** ** >** ** ** STDERR_FILENO to > >** ** ** >** ** ** >** ** ** > >** ** nonblocking using fcntl calls. > >** ** ** >** ** ** >** ** ** > >** ** The application internally loads > the tmux > >** ** ** >** ** ** configuration file > >** ** ** >** ** ** >** ** ** using system > >** ** ** >** ** ** >** ** ** > >** ** command (tmux source-file xxx). > Soon after > >** ** ** this is > >** ** ** >** ** ** executed > >** ** ** >** ** ** >** ** ** inside from my > >** ** ** >** ** ** >** ** ** > >** ** application, all the > STDIN/STDOUT/STDERR > >** ** ** fds sets > >** ** ** >** ** ** back to > >** ** ** >** ** ** >** ** ** blocking state. > >** ** ** >** ** ** >** ** ** > >** ** Not sure what is the problem > here. Why tmux > >** ** ** always > >** ** ** >** ** ** sets the fds > >** ** ** >** ** ** >** ** ** to > >** ** ** >** ** ** >** ** ** > >** ** blocking state. Is there a way to > always > >** ** ** set to > >** ** ** >** ** ** non-blocking. > >** ** ** >** ** ** >** ** ** > >** ** Any help is highly appreciated. > >** ** ** >** ** ** >** ** ** > > > >** ** ** >** ** ** >** ** ** > >** ** Thanks, > >** ** ** >** ** ** >** ** ** > >** ** Prabhu > >** ** ** >** ** ** >** ** ** > > > >** ** ** >** ** ** >** ** ** > >** ** -- > >** ** ** >** ** ** >** ** ** > >** ** You received this message because > you are > >** ** ** subscribed > >** ** ** >** ** ** to the > >** ** ** >** ** ** >** ** ** Google Groups > >** ** ** >** ** ** >** ** ** > >** ** "tmux-users" group. > >** ** ** >** ** ** >** ** ** > >** ** To unsubscribe from this group > and stop > >** ** ** receiving > >** ** ** >** ** ** emails from > >** ** ** >** ** ** >** ** ** it, send an > >** ** ** >** ** ** >** ** ** > >** ** email to > >** ** ** >** ** ** > [1][2][3][4][5][email protected]. > >** ** ** >** ** ** >** ** ** > >** ** To post to this group, send email > to > >** ** ** >** ** ** >** ** ** > [2][3][4][5][6][email protected]. > >** ** ** >** ** ** >** ** ** > >** ** For more options, visit > >** ** ** >** ** ** >** ** ** > [3][4][5][6][7]https://groups.google.com/d/optout. > >** ** ** >** ** ** >** ** ** > > > >** ** ** >** ** ** >** ** ** > > References > >** ** ** >** ** ** >** ** ** > > > >** ** ** >** ** ** >** ** ** > >** ** Visible links > >** ** ** >** ** ** >** ** ** > >** ** 1. > >** ** ** >** ** ** > mailto:[5][6][7][8][email protected] > >** ** ** >** ** ** >** ** ** > >** ** 2. > >** ** ** mailto:[6][7][8][9][email protected] > >** ** ** >** ** ** >** ** ** > >** ** 3. > >** ** ** [7][8][9][10]https://groups.google.com/d/optout > >** ** ** >** ** ** > > >** ** ** >** ** ** > References > >** ** ** >** ** ** > > >** ** ** >** ** ** >** ** Visible links > >** ** ** >** ** ** >** ** 1. > mailto:[9][10][11][email protected] > >** ** ** >** ** ** >** ** 2. > >** ** ** mailto:[10][11][12]tmux-users%[email protected] > >** ** ** >** ** ** >** ** 3. > mailto:[11][12][13][email protected] > >** ** ** >** ** ** >** ** 4. > [12][13][14]https://groups.google.com/d/optout > >** ** ** >** ** ** >** ** 5. > >** ** ** mailto:[13][14][15]tmux-users%[email protected] > >** ** ** >** ** ** >** ** 6. > mailto:[14][15][16][email protected] > >** ** ** >** ** ** >** ** 7. > [15][16][17]https://groups.google.com/d/optout > >** ** ** > > >** ** ** >** ** -- > >** ** ** >** ** You received this message because you are subscribed to > the > >** ** ** Google Groups > >** ** ** >** ** "tmux-users" group. > >** ** ** >** ** To unsubscribe from this group and stop receiving > emails from it, > >** ** ** send an > >** ** ** >** ** email to > [16][17][18][email protected]. > >** ** ** >** ** To post to this group, send email to > >** ** ** [17][18][19][email protected]. > >** ** ** >** ** For more options, visit > >** ** ** [18][19][20]https://groups.google.com/d/optout. > >** ** ** > > >** ** ** > References > >** ** ** > > >** ** ** >** ** Visible links > >** ** ** >** ** 1. mailto:[20][21][email protected] > >** ** ** >** ** 2. mailto:[21][22][email protected] > >** ** ** >** ** 3. > mailto:[22][23]tmux-users%[email protected] > >** ** ** >** ** 4. mailto:[23][24][email protected] > >** ** ** >** ** 5. [24][25]https://groups.google.com/d/optout > >** ** ** >** ** 6. > mailto:[25][26]tmux-users%[email protected] > >** ** ** >** ** 7. mailto:[26][27][email protected] > >** ** ** >** ** 8. [27][28]https://groups.google.com/d/optout > >** ** ** >** ** 9. mailto:[28][29][email protected] > >** ** ** >** **10. > mailto:[29][30]tmux-users%[email protected] > >** ** ** >** **11. mailto:[30][31][email protected] > >** ** ** >** **12. [31][32]https://groups.google.com/d/optout > >** ** ** >** **13. > mailto:[32][33]tmux-users%[email protected] > >** ** ** >** **14. mailto:[33][34][email protected] > >** ** ** >** **15. [34][35]https://groups.google.com/d/optout > >** ** ** >** **16. > mailto:[35][36][email protected] > >** ** ** >** **17. mailto:[36][37][email protected] > >** ** ** >** **18. [37][38]https://groups.google.com/d/optout > > > >** ** -- > >** ** You received this message because you are subscribed to the > Google Groups > >** ** "tmux-users" group. > >** ** To unsubscribe from this group and stop receiving emails from it, > send an > >** ** email to [38][39][email protected]. > >** ** To post to this group, send email to > [39][40][email protected]. > >** ** For more options, visit > [40][41]https://groups.google.com/d/optout. > > > > References > > > >** ** Visible links > >** ** 1. mailto:[42][email protected] > >** ** 2. mailto:[43][email protected] > >** ** 3. mailto:[44][email protected] > >** ** 4. mailto:[45]tmux-users%[email protected] > >** ** 5. mailto:[46][email protected] > >** ** 6. [47]https://groups.google.com/d/optout > >** ** 7. mailto:[48]tmux-users%[email protected] > >** ** 8. mailto:[49][email protected] > >** ** 9. [50]https://groups.google.com/d/optout > >** **10. mailto:[51][email protected] > >** **11. mailto:[52]tmux-users%[email protected] > >** **12. mailto:[53][email protected] > >** **13. [54]https://groups.google.com/d/optout > >** **14. mailto:[55]tmux-users%[email protected] > >** **15. mailto:[56][email protected] > >** **16. [57]https://groups.google.com/d/optout > >** **17. mailto:[58]tmux-users%[email protected] > >** **18. mailto:[59][email protected] > >** **19. [60]https://groups.google.com/d/optout > >** **20. mailto:[61][email protected] > >** **21. mailto:[62][email protected] > >** **22. mailto:[63]tmux-users%[email protected] > >** **23. mailto:[64][email protected] > >** **24. [65]https://groups.google.com/d/optout > >** **25. mailto:[66]tmux-users%[email protected] > >** **26. mailto:[67][email protected] > >** **27. [68]https://groups.google.com/d/optout > >** **28. mailto:[69][email protected] > >** **29. mailto:[70]tmux-users%[email protected] > >** **30. mailto:[71][email protected] > >** **31. [72]https://groups.google.com/d/optout > >** **32. mailto:[73]tmux-users%[email protected] > >** **33. mailto:[74][email protected] > >** **34. [75]https://groups.google.com/d/optout > >** **35. mailto:[76]tmux-users%[email protected] > >** **36. mailto:[77][email protected] > >** **37. [78]https://groups.google.com/d/optout > >** **38. mailto:[79][email protected] > >** **39. mailto:[80][email protected] > >** **40. [81]https://groups.google.com/d/optout > > References > > Visible links > 1. mailto:[email protected] > 2. mailto:[email protected] > 3. mailto:[email protected] > 4. mailto:[email protected] > 5. mailto:tmux-users%[email protected] > 6. mailto:[email protected] > 7. https://groups.google.com/d/optout > 8. mailto:tmux-users%[email protected] > 9. mailto:[email protected] > 10. https://groups.google.com/d/optout > 11. mailto:[email protected] > 12. mailto:tmux-users%[email protected] > 13. mailto:[email protected] > 14. https://groups.google.com/d/optout > 15. mailto:tmux-users%[email protected] > 16. mailto:[email protected] > 17. https://groups.google.com/d/optout > 18. mailto:tmux-users%[email protected] > 19. mailto:[email protected] > 20. https://groups.google.com/d/optout > 21. mailto:[email protected] > 22. mailto:[email protected] > 23. mailto:tmux-users%[email protected] > 24. mailto:[email protected] > 25. https://groups.google.com/d/optout > 26. mailto:tmux-users%[email protected] > 27. mailto:[email protected] > 28. https://groups.google.com/d/optout > 29. mailto:[email protected] > 30. mailto:tmux-users%[email protected] > 31. mailto:[email protected] > 32. https://groups.google.com/d/optout > 33. mailto:tmux-users%[email protected] > 34. mailto:[email protected] > 35. https://groups.google.com/d/optout > 36. mailto:tmux-users%[email protected] > 37. mailto:[email protected] > 38. https://groups.google.com/d/optout > 39. mailto:tmux-users%[email protected] > 40. mailto:[email protected] > 41. https://groups.google.com/d/optout > 42. mailto:[email protected] > 43. mailto:[email protected] > 44. mailto:[email protected] > 45. mailto:tmux-users%[email protected] > 46. mailto:[email protected] > 47. https://groups.google.com/d/optout > 48. mailto:tmux-users%[email protected] > 49. mailto:[email protected] > 50. https://groups.google.com/d/optout > 51. mailto:[email protected] > 52. mailto:tmux-users%[email protected] > 53. mailto:[email protected] > 54. https://groups.google.com/d/optout > 55. mailto:tmux-users%[email protected] > 56. mailto:[email protected] > 57. https://groups.google.com/d/optout > 58. mailto:tmux-users%[email protected] > 59. mailto:[email protected] > 60. https://groups.google.com/d/optout > 61. mailto:[email protected] > 62. mailto:[email protected] > 63. mailto:tmux-users%[email protected] > 64. mailto:[email protected] > 65. https://groups.google.com/d/optout > 66. mailto:tmux-users%[email protected] > 67. mailto:[email protected] > 68. https://groups.google.com/d/optout > 69. mailto:[email protected] > 70. mailto:tmux-users%[email protected] > 71. mailto:[email protected] > 72. https://groups.google.com/d/optout > 73. mailto:tmux-users%[email protected] > 74. mailto:[email protected] > 75. https://groups.google.com/d/optout > 76. mailto:tmux-users%[email protected] > 77. mailto:[email protected] > 78. https://groups.google.com/d/optout > 79. mailto:tmux-users%[email protected] > 80. mailto:[email protected] > 81. https://groups.google.com/d/optout -- You received this message because you are subscribed to the Google Groups "tmux-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
