The author of urwid says that he is using ^[7^[[?47h to switch to the alternate screen and ^[[?47l^[8 to switch back.
What are the sequences that tmux is expecting? On Jul 11, 2012, at 9:38 AM, Nicholas Marriott wrote: > You need to save the email (make sure your mailer saves it raw and does > not wrap lines), then checkout tmux SVN and do: > > cd tmux/trunk > patch </path/to/mail > sh autogen.sh > ./configure > make > > > > On Wed, Jul 11, 2012 at 08:37:28AM -0700, Kevin Tran wrote: >> Outside of tmux my TERM is xterm-256color. The author of pudb said he >> thinks the problem is in urwid (a Python console user interface library). >> See [1]http://lists.tiker.net/pipermail/pudb/2012-June/000105.html >> After checking out the source code, what commands do I use to apply the >> patch and compile tmux? >> On Jul 11, 2012, at 12:41 AM, Nicholas Marriott wrote: >> >> What is TERM outside tmux? >> >> This program is using 1047h to switch to alternate screen mode which >> unless you are using a very old terminfo is not in the xterm entry, so >> it's probably a bad idea to rely on it working. >> >> Anyway please try this which adds it to tmux: >> >> Index: input.c >> =================================================================== >> RCS file: /cvs/src/usr.bin/tmux/input.c,v >> retrieving revision 1.53 >> diff -u -p -r1.53 input.c >> --- input.c 10 Jul 2012 11:53:01 -0000 1.53 >> +++ input.c 11 Jul 2012 07:40:40 -0000 >> @@ -1254,8 +1254,12 @@ input_csi_dispatch(struct input_ctx *ict >> case 1005: >> screen_write_utf8mousemode(&ictx->ctx, 0); >> break; >> + case 47: >> + case 1047: >> + window_pane_alternate_off(wp, &ictx->cell, 0); >> + break; >> case 1049: >> - window_pane_alternate_off(wp, &ictx->cell); >> + window_pane_alternate_off(wp, &ictx->cell, 1); >> break; >> case 2004: >> screen_write_bracketpaste(&ictx->ctx, 0); >> @@ -1309,8 +1313,12 @@ input_csi_dispatch(struct input_ctx *ict >> case 1005: >> screen_write_utf8mousemode(&ictx->ctx, 1); >> break; >> + case 47: >> + case 1047: >> + window_pane_alternate_on(wp, &ictx->cell, 0); >> + break; >> case 1049: >> - window_pane_alternate_on(wp, &ictx->cell); >> + window_pane_alternate_on(wp, &ictx->cell, 1); >> break; >> case 2004: >> screen_write_bracketpaste(&ictx->ctx, 1); >> Index: tmux.h >> =================================================================== >> RCS file: /cvs/src/usr.bin/tmux/tmux.h,v >> retrieving revision 1.348 >> diff -u -p -r1.348 tmux.h >> --- tmux.h 11 Jul 2012 07:10:15 -0000 1.348 >> +++ tmux.h 11 Jul 2012 07:40:42 -0000 >> @@ -2065,10 +2065,10 @@ int window_pane_spawn(struct >> window_pa >> const char *, const char *, struct environ *, >> struct termios *, char **); >> void window_pane_resize(struct window_pane *, u_int, u_int); >> -void window_pane_alternate_on( >> - struct window_pane *, struct grid_cell *); >> -void window_pane_alternate_off( >> - struct window_pane *, struct grid_cell *); >> +void window_pane_alternate_on(struct window_pane *, >> + struct grid_cell *, int); >> +void window_pane_alternate_off(struct window_pane *, >> + struct grid_cell *, int); >> int window_pane_set_mode( >> struct window_pane *, const struct window_mode *); >> void window_pane_reset_mode(struct window_pane *); >> Index: window.c >> =================================================================== >> RCS file: /cvs/src/usr.bin/tmux/window.c,v >> retrieving revision 1.82 >> diff -u -p -r1.82 window.c >> --- window.c 10 Jul 2012 11:53:01 -0000 1.82 >> +++ window.c 11 Jul 2012 07:40:42 -0000 >> @@ -862,7 +862,8 @@ window_pane_resize(struct window_pane *w >> * history is not updated >> */ >> void >> -window_pane_alternate_on(struct window_pane *wp, struct grid_cell *gc) >> +window_pane_alternate_on(struct window_pane *wp, struct grid_cell *gc, >> + int cursor) >> { >> struct screen *s = &wp->base; >> u_int sx, sy; >> @@ -876,8 +877,10 @@ window_pane_alternate_on(struct window_p >> >> wp->saved_grid = grid_create(sx, sy, 0); >> grid_duplicate_lines(wp->saved_grid, 0, s->grid, >> screen_hsize(s), sy); >> - wp->saved_cx = s->cx; >> - wp->saved_cy = s->cy; >> + if (cursor) { >> + wp->saved_cx = s->cx; >> + wp->saved_cy = s->cy; >> + } >> memcpy(&wp->saved_cell, gc, sizeof wp->saved_cell); >> >> grid_view_clear(s->grid, 0, 0, sx, sy); >> @@ -889,7 +892,8 @@ window_pane_alternate_on(struct window_p >> >> /* Exit alternate screen mode and restore the copied grid. */ >> void >> -window_pane_alternate_off(struct window_pane *wp, struct grid_cell *gc) >> +window_pane_alternate_off(struct window_pane *wp, struct grid_cell *gc, >> + int cursor) >> { >> struct screen *s = &wp->base; >> u_int sx, sy; >> @@ -910,10 +914,12 @@ window_pane_alternate_off(struct window_ >> >> /* Restore the grid, cursor position and cell. */ >> grid_duplicate_lines(s->grid, screen_hsize(s), wp->saved_grid, >> 0, sy); >> - s->cx = wp->saved_cx; >> + if (cursor) >> + s->cx = wp->saved_cx; >> if (s->cx > screen_size_x(s) - 1) >> s->cx = screen_size_x(s) - 1; >> - s->cy = wp->saved_cy; >> + if (cursor) >> + s->cy = wp->saved_cy; >> if (s->cy > screen_size_y(s) - 1) >> s->cy = screen_size_y(s) - 1; >> memcpy(gc, &wp->saved_cell, sizeof *gc); >> >> On Wed, Jul 11, 2012 at 12:19:57AM -0700, Kevin Tran wrote: >> >> Ok got it. >> >> On Jul 10, 2012, at 11:38 PM, Nicholas Marriott wrote: >> >> You need to restart tmux entirely with -vvvv so you get the server >> log too. >> >> On Tue, Jul 10, 2012 at 03:28:11PM -0700, Kevin Tran wrote: >> >> When I did that it created a file called tmux-client-41746.log >> with 2 lines: >> >> 15:27:37:haitran:~ $ cat tmux-client-41746.log >> >> client got 3 >> >> client got 4 >> >> On Jun 24, 2012, at 2:49 AM, Nicholas Marriott wrote: >> >> Looks like it clears the screen. Kill tmux entirely, run tmux >> with >> >> -vvvv, then reproduce the problem and send me the logs from the >> current >> >> directory please. >> >> On Sat, Jun 23, 2012 at 07:11:10PM -0700, Kevin Tran wrote: >> >> typescript follows: >> >> Script started on Sat Jun 23 19:09:49 2012 >> >> >> .]7;[2]file://ktmacbookpro/Users/haitran..]7;[3]file://ktmacbookpro/Users/haitran..]7;[4]file://ktmacbookpro/Users/haitran..]7;[5]file://ktmacbookpro/Users/haitran..]7;[6]file://ktmacbookpro/Users/haitran..[0;32m19:09:50:haitran:~ >> $ .[0mpython pudb_usage.py ................... >> >> .7.[?47h.)0.[?25l.[0;39;49m.[H.[1;1H.[0;30;47m.PuDB 2012.1 - >> ?:help n:next s:step into b:breakpoint o:output t:run to >> cursor !:python shell >> .[2;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m 1 .[0;35;49mdef.[0;1;37;49m >> .[0;1;37;49mfunction.[0;1;37;49m():.[0;1;37;49m >> >> .[0;30;47m >> .[0;30;4;47mV.[0;30;47mariables: >> .[3;1H.[0;1;37;49m.>.[0;31;49m >> .[0;1;37;43m 2 import pudb; pudb.set_trace() >> >> .[0;30;47m >> .[0;1;37;44mReturn: .[0;30;46mNoneType >> .[4;1H.[0;1;37;49m. .[0;31;49m >> .[0;37;49m 3 .[0;1;37;49m >> >> .[0;30;47m >> .[0;1;34;49mpudb: .[0;1;37;49m<module 'pudb' from >> '/usr/local/Cel.[5;1H.[0;1;37;49m. .[0;31;49m .[0;37;49m 4 >> .[0;1;37;49m >> >> >> .[0;30;47m .[0;1;37;49m >> lar/python/2.7.1/lib/python2.7/site-pac.[6;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m 5 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m kages/pudb/__init__.pyc'> >> .[7;1H.[0;1;37;49m. .[0;31;49m .[0;37;49m 6 >> .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[8;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m 7 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[9;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m 8 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[10;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m 9 .[0;32;4 >> >> 9 >> >> m# >> >> filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[11;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m10 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[12;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m11 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[13;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m12 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[14;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m13 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> >> .[15;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m14 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[16;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m15 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;30;4;47mS.[0;30;47mtack: >> .[17;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m16 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m <module>.[0;1;36;49m pudb_usage.py:21 >> .[18;1H.[0;1;37;49m. .[0;31;49m .[0;37;49m17 >> .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;1;49m>> function.[0;1;36;49m pudb_usage.py:2 >> .[19;1H.[0;1;37;49m. .[0;31;49m .[0;37;49m18 >> .[0;32;49m# >> >> fi >> >> ller line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[20;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m19 .[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[21;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m20 .[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[22;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m21 >> .[0;1;37;49mfunction.[0;1;37;49m().[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[23;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;1;37;49m >> .[24;1H.[0 >> >> ;1 >> >> ;37 >> >> ;49m. >> >> .[0;30;47m >> .[0;1;37;49m >> .[25;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;1;37;49m >> .[26;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;1;37;49m >> .[27;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;1;37;49m >> .[28;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;1;37;49m >> .[29;1H.[0;1;37;49m. >> >> .[0;30;47m >> >> .[ >> >> 0;3 >> >> 0;4;47mB.[0;30;47mreakpoints: >> .[30;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;39;49m >> .[31;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;39;49m >> .[32;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;39;49m >> .[33;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;39;49m >> .[34;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;39;49m >> .[35;1H.[0;1;37;49m. >> >> >> .[0;30;47m >> .[0;39;49m >> ..[0;39;49m..[4h >> .[4l.[0;39;49m..[?1002l.[?1000l.[?25h.[?47l.8 >> >> .[?25hHit Ctrl-D to return to PuDB. >> >> .[0;34mIn [.[1;34m1.[0;34m]: .[0m >> >> Do you really want to exit ([y]/n)? >> >> .7.[?47h.[?25l.[0;39;49m.[H.[1;1H.[0;30;47m.PuDB 2012.1 - >> ?:help n:next s:step into b:breakpoint o:output t:run to >> cursor !:python shell >> .[2;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m 1 .[0;35;49mdef.[0;1;37;49m >> .[0;1;37;49mfunction.[0;1;37;49m():.[0;1;37;49m >> >> .[0;30;47m >> .[0;30;4;47mV.[0;30;47mariables: >> .[3;1H.[0;1;37;49m.>.[0;31;49m >> .[0;1;37;43m 2 import pudb; pudb.set_trace() >> >> .[0;30;47m >> .[0;1;37;44mReturn: .[0;30;46mNoneType >> .[4;1H.[0;1;37;49m. .[0;31;49m >> .[0;37;49m 3 .[0;1;37;49m >> >> .[0;30;47m >> .[0;1;34;49mpudb: .[0;1;37;49m<module 'pudb' from >> '/usr/local/Cel.[5;1H.[0;1;37;49m. .[0;31;49m .[0;37;49m 4 >> .[0;1;37;49m >> >> >> .[0;30;47m .[0;1;37;49m >> lar/python/2.7.1/lib/python2.7/site-pac.[6;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m 5 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m kages/pudb/__init__.pyc'> >> .[7;1H.[0;1;37;49m. .[0;31;49m .[0;37;49m 6 >> .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[8;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m 7 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[9;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m 8 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[10;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m 9 .[0;32;49m# >> >> fi >> >> ller line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[11;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m10 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[12;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m11 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[13;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m12 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[14;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m13 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> >> .[15;1H.[0;1;37;49m. .[0;31;49m >> .[0;37;49m14 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[16;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m15 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;30;4;47mS.[0;30;47mtack: >> .[17;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m16 .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m <module>.[0;1;36;49m pudb_usage.py:21 >> .[18;1H.[0;1;37;49m. .[0;31;49m .[0;37;49m17 >> .[0;32;49m# filler line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;1;49m>> function.[0;1;36;49m pudb_usage.py:2 >> .[19;1H.[0;1;37;49m. .[0;31;49m .[0;37;49m18 >> .[0;32;49m# fi >> >> l >> >> le >> >> r line.[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[20;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m19 .[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[21;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m20 .[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[22;1H.[0;1;37;49m. >> .[0;31;49m .[0;37;49m21 >> .[0;1;37;49mfunction.[0;1;37;49m().[0;1;37;49m >> >> .[0;30;47m >> .[0;1;37;49m >> .[23;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;1;37;49m >> .[24;1H.[0;1; >> >> 37 >> >> ;49 >> >> m. >> >> .[0;30;47m >> .[0;1;37;49m >> .[25;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;1;37;49m >> .[26;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;1;37;49m >> .[27;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;1;37;49m >> .[28;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;1;37;49m >> .[29;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0 >> >> ;3 >> >> 0;4 >> >> ;47mB.[0;30;47mreakpoints: >> .[30;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;39;49m >> .[31;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;39;49m >> .[32;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;39;49m >> .[33;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;39;49m >> .[34;1H.[0;1;37;49m. >> >> .[0;30;47m >> .[0;39;49m >> .[35;1H.[0;1;37;49m. >> >> >> .[0;30;47m .[0;39;49m >> ..[0;39;49m..[4h >> .[4l.[0;39;49m..[?1002l.[?1000l.[?25h.[?47l.8 >> >> .[?25hTraceback (most recent call last): >> >> File "pudb_usage.py", line 21, in <module> >> >> function() >> >> File "pudb_usage.py", line 2, in function >> >> import pudb; pudb.set_trace() >> >> File "/usr/local/Cellar/python/2.7.1/lib/python2.7/bdb.py", >> line 52, in trace_dispatch >> >> return self.dispatch_return(frame, arg) >> >> File "/usr/local/Cellar/python/2.7.1/lib/python2.7/bdb.py", >> line 85, in dispatch_return >> >> self.user_return(frame, arg) >> >> File >> >> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pudb/debugger.py", >> line 253, in user_return >> >> self.interaction(frame) >> >> File >> >> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pudb/debugger.py", >> line 208, in interaction >> >> self.ui.call_with_ui(self.ui.interaction, exc_tuple) >> >> File >> >> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pudb/debugger.py", >> line 1242, in call_with_ui >> >> return f(*args, **kwargs) >> >> File >> >> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pudb/debugger.py", >> line 1361, in interaction >> >> self.event_loop() >> >> File >> >> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pudb/debugger.py", >> line 1314, in event_loop >> >> keys = self.screen.get_input() >> >> File >> >> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/urwid/raw_display.py", >> line 284, in get_input >> >> self._wait_for_input_ready(self._next_timeout) >> >> File >> >> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/urwid/raw_display.py", >> line 422, in _wait_for_input_ready >> >> fd_list, [], fd_list) >> >> KeyboardInterrupt >> >> >> .]7;[7]file://ktmacbookpro/Users/haitran..]7;[8]file://ktmacbookpro/Users/haitran..]7;[9]file://ktmacbookpro/Users/haitran..]7;[10]file://ktmacbookpro/Users/haitran..]7;[11]file://ktmacbookpro/Users/haitran..[0;32m19:09:58:haitran:~ >> $ .[0mexit >> >> exit >> >> Script done on Sat Jun 23 19:10:01 2012 >> >> On Jun 23, 2012, at 12:08 AM, Nicholas Marriott wrote: >> >> Ok, run the program in script inside tmux and send me the >> typescript >> >> file please. >> >> On Fri, Jun 22, 2012 at 06:05:01PM -0700, Kevin Tran wrote: >> >> I think my $TERM is correct. Inside tmux $TERM is >> screen-256color. >> >> On Jun 22, 2012, at 3:46 PM, Nicholas Marriott wrote: >> >> Your TERM is probably wrong, it needs to be "screen" >> inside tmux. >> >> On Fri, Jun 22, 2012 at 02:59:42PM -0700, Kevin Tran >> wrote: >> >> I am running: >> >> python 2.7.1 >> >> pudb==2012.1 >> >> urwid==1.0.1 >> >> pigments==1.5 >> >> tmux==1.6 >> >> When I use pudb in a tmux session, the python shell >> shows at the bottom >> >> when it should clear the screen. >> >> Screenshots >> >> Outside of a tmux session: >> [1][12]http://imgur.com/uZHpG >> >> Inside a tmux session: [2][13]http://imgur.com/tjirf >> >> What's happening? Is this a problem with tmux or with >> pudb? How do you fix >> >> this? >> >> References >> >> Visible links >> >> 1. [14]http://imgur.com/uZHpG >> >> 2. [15]http://imgur.com/tjirf >> >> >> ------------------------------------------------------------------------------ >> >> Live Security Virtual Conference >> >> Exclusive live event will cover all the ways today's >> security and >> >> threat landscape has changed and how IT managers can >> respond. Discussions >> >> will include endpoint security, mobile security and >> the latest in malware >> >> threats. >> >> [16]http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> >> _______________________________________________ >> >> tmux-users mailing list >> >> [17]tmux-users@lists.sourceforge.net >> >> >> [18]https://lists.sourceforge.net/lists/listinfo/tmux-users >> >> References >> >> Visible links >> 1. http://lists.tiker.net/pipermail/pudb/2012-June/000105.html >> 2. file://ktmacbookpro/Users >> 3. file://ktmacbookpro/Users >> 4. file://ktmacbookpro/Users >> 5. file://ktmacbookpro/Users >> 6. file://ktmacbookpro/Users >> 7. file://ktmacbookpro/Users >> 8. file://ktmacbookpro/Users >> 9. file://ktmacbookpro/Users >> 10. file://ktmacbookpro/Users >> 11. file://ktmacbookpro/Users >> 12. http://imgur.com/uZHpG >> 13. http://imgur.com/tjirf >> 14. http://imgur.com/uZHpG >> 15. http://imgur.com/tjirf >> 16. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> 17. mailto:tmux-users@lists.sourceforge.net >> 18. https://lists.sourceforge.net/lists/listinfo/tmux-users ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ tmux-users mailing list tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users