Instant Terminal Sharing
Go to file
Nicholas Marriott db7a89b1ee Simplify the way jobs work and drop the persist type, so all jobs are
fire-and-forget.

Status jobs now managed with two trees of output (new and old), rather
than storing the output in the jobs themselves. When the status line is
processed any jobs which don't appear in the new tree are started and
the output from the old tree displayed. When a job finishes it updates
the new tree with its output and that is used for any subsequent
redraws. When the status interval expires, the new tree is moved to the
old so that all jobs are run again.

This fixes the "#(echo %H:%M:%S)" problem which would lead to thousands
of identical persistent jobs and high memory use (this can still be
achieved by adding "sleep 30" but that is much less likely to happen by
accident).
2011-01-26 01:54:56 +00:00
arguments.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
array.h Shut up gcc4 warnings. 2010-06-05 16:32:22 +00:00
attributes.c Accept (and document) "none" instead of "default" for attributes as it 2010-05-14 18:56:21 +00:00
cfg.c Allow the config file parser and source-file to return "don't exit" to 2010-12-29 21:28:32 +00:00
client.c Move all calls to fcntl(...O_NONBLOCK) into a function and clear the 2011-01-08 01:52:36 +00:00
clock.c Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last 2009-12-03 22:50:09 +00:00
cmd-attach-session.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-bind-key.c Fix bind-key -t. 2011-01-15 20:14:41 +00:00
cmd-break-pane.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-capture-pane.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-choose-buffer.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-choose-client.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-choose-session.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-choose-window.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-clear-history.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-clock-mode.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-command-prompt.c Whoops, command-prompt can take 0 or 1 argument. 2011-01-05 22:38:28 +00:00
cmd-confirm-before.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-copy-mode.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-delete-buffer.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-detach-client.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-display-message.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-display-panes.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-find-window.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-has-session.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-if-shell.c Simplify the way jobs work and drop the persist type, so all jobs are 2011-01-26 01:54:56 +00:00
cmd-join-pane.c While here, maximum percentage is 100 not INT_MAX. Oops. 2011-01-23 15:49:10 +00:00
cmd-kill-pane.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-kill-server.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-kill-session.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-kill-window.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-link-window.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-list-buffers.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-list-clients.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-list-commands.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-list-keys.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-list-panes.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-list-sessions.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-list-windows.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-list.c We now send argv to the server after parsing it in the client to get the 2010-10-29 20:11:57 +00:00
cmd-load-buffer.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-lock-server.c Now that parsing is common, merge some of the small, related commands 2011-01-04 02:03:41 +00:00
cmd-move-window.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-new-session.c Support -x and -y for new-session to specify the initial size of the 2011-01-14 23:49:23 +00:00
cmd-new-window.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-paste-buffer.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-pipe-pane.c Move all calls to fcntl(...O_NONBLOCK) into a function and clear the 2011-01-08 01:52:36 +00:00
cmd-refresh-client.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-rename-session.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-rename-window.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-resize-pane.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-respawn-window.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-rotate-window.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-run-shell.c Simplify the way jobs work and drop the persist type, so all jobs are 2011-01-26 01:54:56 +00:00
cmd-save-buffer.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-select-layout.c Now that parsing is common, merge some of the small, related commands 2011-01-04 02:03:41 +00:00
cmd-select-pane.c Now that parsing is common, merge some of the small, related commands 2011-01-04 02:03:41 +00:00
cmd-select-window.c Now that parsing is common, merge some of the small, related commands 2011-01-04 02:03:41 +00:00
cmd-send-keys.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-send-prefix.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-server-info.c Simplify the way jobs work and drop the persist type, so all jobs are 2011-01-26 01:54:56 +00:00
cmd-set-buffer.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-set-environment.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-set-option.c Simplify the way jobs work and drop the persist type, so all jobs are 2011-01-26 01:54:56 +00:00
cmd-show-buffer.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-show-environment.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-show-messages.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-show-options.c Now that parsing is common, merge some of the small, related commands 2011-01-04 02:03:41 +00:00
cmd-source-file.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-split-window.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-start-server.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-string.c Read ${X} environment variables in strings and $HOME from the global 2010-12-13 22:53:14 +00:00
cmd-suspend-client.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-swap-pane.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-swap-window.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-switch-client.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd-unbind-key.c unbind-key -a is allowed no arguments. 2011-01-10 21:28:47 +00:00
cmd-unlink-window.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
cmd.c Set $TMUX without the session when background jobs are run. 2011-01-23 11:03:43 +00:00
colour.c Accept colours of the hex form #ffffff and translate to the nearest from 2011-01-08 00:48:54 +00:00
environ.c Run job commands explicitly in the global enviroment (which can be 2010-04-04 19:02:09 +00:00
grid-utf8.c Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last 2009-12-03 22:50:09 +00:00
grid-view.c When clearing the entire screen, clear lines that are used into the 2011-01-25 23:40:26 +00:00
grid.c Merge copy mode and output mode, dropping the latter. Idea and code from 2010-04-06 21:35:44 +00:00
input-keys.c Support for UTF-8 mouse input (\033[1005h). This was added in xterm 262 2011-01-03 23:35:21 +00:00
input.c Mouse highlight mode (1001) requires a program to cooperate so 2011-01-15 00:16:00 +00:00
job.c Simplify the way jobs work and drop the persist type, so all jobs are 2011-01-26 01:54:56 +00:00
key-bindings.c Clean up and simplify tmux command argument parsing. 2011-01-04 00:42:46 +00:00
key-string.c Allow top-bit-set characters to be used for key bindings, from Tiago 2011-01-23 11:04:25 +00:00
layout-custom.c Custom layouts. list-windows command displays the layout as a string (such as 2010-06-29 03:30:13 +00:00
layout-set.c Add other-pane-height and other-pane-width options, allowing the width 2010-12-19 18:35:08 +00:00
layout-string.c Custom layouts. list-windows command displays the layout as a string (such as 2010-06-29 03:30:13 +00:00
layout.c Custom layouts. list-windows command displays the layout as a string (such as 2010-06-29 03:30:13 +00:00
log.c Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last 2009-12-03 22:50:09 +00:00
Makefile Accept colours of the hex form #ffffff and translate to the nearest from 2011-01-08 00:48:54 +00:00
mode-key.c Sprinkle a little more const. 2011-01-01 03:39:21 +00:00
names.c Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last 2009-12-03 22:50:09 +00:00
options-table.c The maximum history-limit was accidentally reduced, fix it back to INT_MAX. 2011-01-13 13:38:57 +00:00
options.c Permit multiple prefix keys to be defined, separated by commas, for example: 2009-09-22 12:38:10 +00:00
paste.c Change from a per-session stack of buffers to one global stack which is 2010-12-30 23:16:18 +00:00
procname.c Use sysctl() KERN_PROC2 instead of KERN_PROC, as the latter's ABI 2009-12-24 22:29:15 +00:00
resize.c Store sessions in an RB tree by name rather than a list, this is tidier 2010-12-21 22:37:59 +00:00
screen-redraw.c Use UTF-8 line drawing characters on UTF-8 terminals. Fixes some stupid 2010-09-11 16:19:22 +00:00
screen-write.c When clearing the entire screen, clear lines that are used into the 2011-01-25 23:40:26 +00:00
screen.c Fix rectangle copy to behave like emacs - the cursor is not part of the 2010-12-11 17:56:01 +00:00
server-client.c Simplify the way jobs work and drop the persist type, so all jobs are 2011-01-26 01:54:56 +00:00
server-fn.c Set $TMUX without the session when background jobs are run. 2011-01-23 11:03:43 +00:00
server-window.c Store sessions in an RB tree by name rather than a list, this is tidier 2010-12-21 22:37:59 +00:00
server.c Use LIST_* not SLIST_*. 2011-01-26 00:11:47 +00:00
session.c Check if the index is in use and fail before creating the child process, 2011-01-25 22:31:50 +00:00
signal.c Do not call event_del() for signals after fork(), just use sigaction() 2010-08-19 18:29:01 +00:00
status.c Simplify the way jobs work and drop the persist type, so all jobs are 2011-01-26 01:54:56 +00:00
tmux.1 Support -x and -y for new-session to specify the initial size of the 2011-01-14 23:49:23 +00:00
tmux.c Set $TMUX without the session when background jobs are run. 2011-01-23 11:03:43 +00:00
tmux.h Simplify the way jobs work and drop the persist type, so all jobs are 2011-01-26 01:54:56 +00:00
tty-acs.c Use UTF-8 line drawing characters on UTF-8 terminals. Fixes some stupid 2010-09-11 16:19:22 +00:00
tty-keys.c Support for UTF-8 mouse input (\033[1005h). This was added in xterm 262 2011-01-03 23:35:21 +00:00
tty-term.c Use LIST_* not SLIST_*. 2011-01-26 00:11:47 +00:00
tty.c Only set a mouse mode for mouse-select-pane if none already set by the 2011-01-15 00:46:19 +00:00
utf8.c Support for UTF-8 mouse input (\033[1005h). This was added in xterm 262 2011-01-03 23:35:21 +00:00
window-choose.c Support all four of the xterm mouse modes. Based on a diff from hsim at 2010-12-29 21:49:06 +00:00
window-clock.c Pass in the session, rather than the client, to window modes' key() 2010-05-23 19:42:19 +00:00
window-copy.c Change from a per-session stack of buffers to one global stack which is 2010-12-30 23:16:18 +00:00
window.c Check if the index is in use and fail before creating the child process, 2011-01-25 22:31:50 +00:00
xmalloc.c tabs are better; ok nicm 2009-10-26 21:42:04 +00:00
xterm-keys.c Last few tables that should be const. 2011-01-01 03:43:20 +00:00