Go to file
Nicholas Marriott 751a2fa915 Fix a race condition when asking a client to take over the terminal (switching
to a different poll loop):

If a MSG_READY was followed very quickly by a MSG_EXIT (for example if doing
"tmux new 'exit'"), both messages could be read as part of the same imsg_read
in the first client poll loop. The MSG_READY would then cause a switch to the
second client loop, which would immediately call poll(2) again, causing the
client to hang forever waiting for an exit message that it already had.

Change to call imsg_get to process any existing messages before polling.
2009-09-02 23:49:25 +00:00
array.h Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
attributes.c Don't dereference NULL if buf winds up being empty. Can't happen 2009-06-02 11:14:08 +00:00
buffer-poll.c Nuke unused buffer functions. Found by lint. 2009-06-25 06:05:47 +00:00
buffer.c A few trivial optimisations: no need to check for zero size if calling 2009-08-20 19:14:42 +00:00
cfg.c When using source-file, run the commands in the context of the source-file 2009-08-23 17:29:51 +00:00
client-fn.c Switch tmux to use imsg. This is the last major change to make the 2009-08-11 17:18:35 +00:00
client.c Fix a race condition when asking a client to take over the terminal (switching 2009-09-02 23:49:25 +00:00
clock.c Make this work when the clock is in small characters as well. Doh. 2009-08-26 16:23:30 +00:00
cmd-attach-session.c Infrastructure and commands to manage the environment for processes started 2009-08-08 21:52:43 +00:00
cmd-bind-key.c Final pieces of mode key rebinding: bind-key and unbind-key now accept a -t 2009-07-28 17:05:10 +00:00
cmd-break-pane.c Add a base-index session option to specify the first index checked when looking 2009-08-13 20:11:58 +00:00
cmd-choose-client.c These should #include <ctype.h>. 2009-08-25 13:32:14 +00:00
cmd-choose-session.c These should #include <ctype.h>. 2009-08-25 13:32:14 +00:00
cmd-choose-window.c These should #include <ctype.h>. 2009-08-25 13:32:14 +00:00
cmd-clear-history.c Remove some dead code found by clang. 2009-07-30 17:29:12 +00:00
cmd-clock-mode.c Now that pane targets (-t) are supported, switch some commands to use them 2009-08-18 16:21:04 +00:00
cmd-command-prompt.c Add a choose-client command and extend choose-{session,window} to accept a 2009-08-25 12:18:51 +00:00
cmd-confirm-before.c The cursession member in struct cmd_ctx is always either curclient->session or 2009-08-23 16:45:00 +00:00
cmd-copy-buffer.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-copy-mode.c Now that pane targets (-t) are supported, switch some commands to use them 2009-08-18 16:21:04 +00:00
cmd-delete-buffer.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-detach-client.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-display-message.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-display-panes.c Add a new display-panes command, with two options (display-panes-colour and 2009-08-31 20:46:19 +00:00
cmd-down-pane.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-find-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-generic.c Initialise the arg2 pointer properly (also free it when freeing the 2009-08-26 18:09:52 +00:00
cmd-has-session.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-if-shell.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-kill-pane.c Merge pane number into the target specification for pane commands. Instead of 2009-07-30 13:45:56 +00:00
cmd-kill-server.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-kill-session.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-kill-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-last-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-link-window.c Add a base-index session option to specify the first index checked when looking 2009-08-13 20:11:58 +00:00
cmd-list-buffers.c Change list-buffers to run the preview of the buffer through vis(1). 2009-08-18 12:26:37 +00:00
cmd-list-clients.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-list-commands.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-list-keys.c Final pieces of mode key rebinding: bind-key and unbind-key now accept a -t 2009-07-28 17:05:10 +00:00
cmd-list-sessions.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-list-windows.c Handle ttyname(3) failure better. 2009-08-08 16:05:01 +00:00
cmd-list.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-load-buffer.c Don't babysit people and let them try to load /dev/zero or (more useful) 2009-07-30 17:46:12 +00:00
cmd-lock-server.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-move-window.c Add a base-index session option to specify the first index checked when looking 2009-08-13 20:11:58 +00:00
cmd-new-session.c Some code tidying. 2009-08-23 17:37:48 +00:00
cmd-new-window.c Add a base-index session option to specify the first index checked when looking 2009-08-13 20:11:58 +00:00
cmd-next-layout.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-next-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-paste-buffer.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-previous-layout.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-previous-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-refresh-client.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-rename-session.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-rename-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-resize-pane.c Merge pane number into the target specification for pane commands. Instead of 2009-07-30 13:45:56 +00:00
cmd-respawn-window.c When using tmux as a login shell, there is currently no way to specify a shell 2009-09-01 13:09:49 +00:00
cmd-rotate-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-save-buffer.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-scroll-mode.c Now that pane targets (-t) are supported, switch some commands to use them 2009-08-18 16:21:04 +00:00
cmd-select-layout.c If select-layout is not given an argument, repply the last layout used in the 2009-07-28 06:48:44 +00:00
cmd-select-pane.c Merge pane number into the target specification for pane commands. Instead of 2009-07-30 13:45:56 +00:00
cmd-select-prompt.c Switch the prompt code to return an empty string when the user enters no 2009-08-13 23:44:18 +00:00
cmd-select-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-send-keys.c Now that pane targets (-t) are supported, switch some commands to use them 2009-08-18 16:21:04 +00:00
cmd-send-prefix.c Now that pane targets (-t) are supported, switch some commands to use them 2009-08-18 16:21:04 +00:00
cmd-server-info.c Accept -l to make it easier for people who use tmux as a login shell to use 2009-09-02 17:34:57 +00:00
cmd-set-buffer.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-set-environment.c Add flags for 1+2 and 2 arguments to the generic target code, use it for 2009-08-11 12:53:37 +00:00
cmd-set-option.c When using tmux as a login shell, there is currently no way to specify a shell 2009-09-01 13:09:49 +00:00
cmd-set-password.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-set-window-option.c Add flags for 1+2 and 2 arguments to the generic target code, use it for 2009-08-11 12:53:37 +00:00
cmd-show-buffer.c Tag a few missed printf-like functions and fix a missing "%s". 2009-08-18 14:48:42 +00:00
cmd-show-environment.c Infrastructure and commands to manage the environment for processes started 2009-08-08 21:52:43 +00:00
cmd-show-options.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-show-window-options.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-source-file.c When using source-file, run the commands in the context of the source-file 2009-08-23 17:29:51 +00:00
cmd-split-window.c When using tmux as a login shell, there is currently no way to specify a shell 2009-09-01 13:09:49 +00:00
cmd-start-server.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-string.c Infrastructure and commands to manage the environment for processes started 2009-08-08 21:52:43 +00:00
cmd-suspend-client.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-swap-pane.c Remove some dead code found by clang. 2009-07-30 17:29:12 +00:00
cmd-swap-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-switch-client.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-unbind-key.c Final pieces of mode key rebinding: bind-key and unbind-key now accept a -t 2009-07-28 17:05:10 +00:00
cmd-unlink-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-up-pane.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd.c Add a new display-panes command, with two options (display-panes-colour and 2009-08-31 20:46:19 +00:00
colour.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
environ.c Nuke a dead variable found with clang and an unused declaration with lint. 2009-08-09 15:17:50 +00:00
grid-view.c Support "alternate screen" mode (terminfo smcup/rmcup) typically used by full 2009-07-13 10:43:52 +00:00
grid.c Fix grid_expand_line so it actually works when the required size is bigger than 2009-08-21 07:29:37 +00:00
imsg-buffer.c Switch tmux to use imsg. This is the last major change to make the 2009-08-11 17:18:35 +00:00
imsg.c Switch tmux to use imsg. This is the last major change to make the 2009-08-11 17:18:35 +00:00
imsg.h Switch tmux to use imsg. This is the last major change to make the 2009-08-11 17:18:35 +00:00
input-keys.c Detect backspace by looking at termios VERASE and translate it into \177 (which 2009-07-26 21:42:08 +00:00
input.c Nuke unused variable. 2009-08-20 10:48:25 +00:00
key-bindings.c Add a new display-panes command, with two options (display-panes-colour and 2009-08-31 20:46:19 +00:00
key-string.c Accept and print "Enter" and "Escape" for keys rather than C-m and C-[. 2009-07-28 09:18:01 +00:00
layout-set.c If select-layout is not given an argument, repply the last layout used in the 2009-07-28 06:48:44 +00:00
layout.c Improved layout code. 2009-07-19 13:21:40 +00:00
log.c Remove a couple of unused functions and fix a type ("FALLTHOUGH"), found by 2009-07-21 18:40:30 +00:00
Makefile Add a new display-panes command, with two options (display-panes-colour and 2009-08-31 20:46:19 +00:00
mode-key.c Add a transpose-chars command in edit mode (C-t in emacs mode only). From Kalle 2009-09-02 06:33:20 +00:00
names.c When using tmux as a login shell, there is currently no way to specify a shell 2009-09-01 13:09:49 +00:00
options-cmd.c Add a -a flag to set-option and set-window-option to append to an existing 2009-08-04 18:45:57 +00:00
options.c Make some functions which return unused values void (mostly found by lint) and 2009-07-21 19:54:22 +00:00
paste.c Don't leak when rollling buffers off when the paste buffer limit is reached. 2009-07-30 20:50:54 +00:00
procname.c Nuke a dead variable found with clang and an unused declaration with lint. 2009-08-09 15:17:50 +00:00
resize.c Improved layout code. 2009-07-19 13:21:40 +00:00
screen-redraw.c Add a new display-panes command, with two options (display-panes-colour and 2009-08-31 20:46:19 +00:00
screen-write.c Ugh, committed the wrong version of this change and got both solutions rather 2009-08-21 08:12:05 +00:00
screen.c Change the way the grid is stored, previously it was: 2009-08-08 13:29:27 +00:00
server-fn.c When incorrect passwords are entered, behave similarly to login(1) and backoff 2009-09-02 16:38:35 +00:00
server-msg.c When incorrect passwords are entered, behave similarly to login(1) and backoff 2009-09-02 16:38:35 +00:00
server.c When shutting down the server, expect clients to be polite and exit when asked 2009-09-02 21:25:57 +00:00
session.c When using tmux as a login shell, there is currently no way to specify a shell 2009-09-01 13:09:49 +00:00
status.c Add a transpose-chars command in edit mode (C-t in emacs mode only). From Kalle 2009-09-02 06:33:20 +00:00
tmux.1 Accept -l to make it easier for people who use tmux as a login shell to use 2009-09-02 17:34:57 +00:00
tmux.c Accept -l to make it easier for people who use tmux as a login shell to use 2009-09-02 17:34:57 +00:00
tmux.h That was the wrong fix. MSG_ERROR should set the error and the client should 2009-09-02 20:15:49 +00:00
tty-keys.c Detect backspace by looking at termios VERASE and translate it into \177 (which 2009-07-26 21:42:08 +00:00
tty-term.c Check the return value of strunvis against -1 not NULL. 2009-08-23 11:40:05 +00:00
tty.c Add a new display-panes command, with two options (display-panes-colour and 2009-08-31 20:46:19 +00:00
utf8.c Miscellaneous unused functions, including one which was basically a 2009-06-25 06:15:04 +00:00
window-choose.c If colours are not supported by the terminal, try to emulate a coloured 2009-08-05 16:26:38 +00:00
window-clock.c Use gmtime_r so the current time isn't overwritten, the minute comparison works 2009-06-27 14:40:22 +00:00
window-copy.c When moving up or down in copy mode, save the cursor position and size of the 2009-08-21 07:33:58 +00:00
window-more.c Use the full screen width when printing output rather than one less. 2009-08-18 11:53:03 +00:00
window-scroll.c vi(1)-style half page scroll in copy and scroll modes. Move the vi full page 2009-08-13 22:32:18 +00:00
window.c If forking a login shell or if SHELL is otherwise not useful, set it to the 2009-09-01 14:40:33 +00:00
xmalloc.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00