Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-03-08 | Add a missing client-detached hook when the server shuts down, and do | nicm | |
not exit until jobs started from run-shell/if-shell have finished (add a job flags member and a flag to indicate other jobs). GitHub issue 1245. | |||
2017-07-14 | Because ignore SIGCHLD early, letting signal_del restore it doesn't work | nicm | |
correctly, so set it explicitly back to default (and the others for good measure). | |||
2017-07-12 | Block signals between forking and clearing signal handlers (or calling | nicm | |
event_reinit) - if the child gets a signal and fires the libevent signal handler during this period it could write a signal into the parent's signal pipe. GitHub issue 1001 from Aaron van Geffen. | |||
2017-07-12 | Move signal code into proc.c. | nicm | |
2017-05-31 | Style and spacing nits. | nicm | |
2017-04-25 | Do not update TERM into config file parsing has finished. | nicm | |
2017-04-20 | If a #() command doesn't exit, use its most recent line of output (it | nicm | |
must be a full line). Don't let it redraw the status line more than once a second. Requested by someone about 10 years ago... | |||
2017-03-09 | Move server_fill_environ into environ.c and move some other common code | nicm | |
into it. | |||
2016-10-10 | Loads more static, except for cmd-*.c and window-*.c. | nicm | |
2016-01-19 | I no longer use my SourceForge address so replace it. | nicm | |
2015-11-18 | Use __unused rather than rolling our own. | nicm | |
2015-10-31 | Because pledge(2) does not allow us to pass directory file descriptors | nicm | |
around, we can't use file descriptors for the working directory because we will be unable to pass it to a privileged process to tell it where to read or write files or spawn children. So move tmux back to using strings for the current working directory. We try to check it exists with access() when it is set but ultimately fall back to ~ if it fails at time of use (or / if that fails too). | |||
2015-10-28 | Like options, move the environ struct into environ.c. | nicm | |
2015-06-17 | Use an explicit job state instead of avoid closing our side of the | nicm | |
socketpair and setting it to -1 to mark when the other side is closed. This avoids closing it while the libevent bufferevent still has it (it could try to add it to the polled set which some mechanisms don't like). Fixes part a problem reported by Bruno Sutic. | |||
2015-04-24 | Set working directory for run-shell and if-shell. | nicm | |
2014-10-20 | Tidy up some includes. | nicm | |
2014-04-14 | Don't leak socketpair file descriptors if fork fails. Spotted by Balazs | nicm | |
Kezes. | |||
2013-10-10 | Use format_get_command() and some spacing tweaks. | nicm | |
2013-04-17 | %zu format for size_t. | Nicholas Marriott | |
2013-04-10 | Set EV_WRITE for jobs or run/if-shell jobs can hang. From Chris Johnsen. | Nicholas Marriott | |
2013-03-25 | Extend jobs to support writing and use that for copy-pipe instead of | Nicholas Marriott | |
popen, from Chris Johnsen. | |||
2013-03-22 | No more lint means no more ARGSUSED. | Nicholas Marriott | |
2012-07-10 | xfree is not particularly helpful, remove it. From Thomas Adam. | Nicholas Marriott | |
2012-01-29 | Call bufferevent_free before closing file descriptor associated with it | Nicholas Marriott | |
or bugs in $EventMechanism on $OtherOS makes libevent get it's knickers in a twist. From Dylan Alex Simon. | |||
2011-01-26 | Simplify the way jobs work and drop the persist type, so all jobs are | Nicholas Marriott | |
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 | Use LIST_* not SLIST_*. | Nicholas Marriott | |
2011-01-23 | Set $TMUX without the session when background jobs are run. | Nicholas Marriott | |
2011-01-08 | Move all calls to fcntl(...O_NONBLOCK) into a function and clear the | Nicholas Marriott | |
flag on the stdio file descriptors before closing them (fixes things like "tmux ls && cat"). | |||
2010-10-16 | Trying to set FD_CLOEXEC on every fd is a lost cause, just use | Nicholas Marriott | |
closefrom() before exec. | |||
2010-08-19 | Do not call event_del() for signals after fork(), just use sigaction() | Nicholas Marriott | |
directly instead - calling libevent functions after fork() w/o event_reinit() is a bad idea, even if in this case it was harmless. | |||
2010-05-04 | Put this back in with the initialisation in the right order. | Nicholas Marriott | |
2010-05-04 | Revert last change, it appears to be broken somehow. | Nicholas Marriott | |
2010-05-03 | Make signal handler setup/teardown two common functions instead of six, | Nicholas Marriott | |
and reset SIGCHLD after fork to fix problems with some shells. From Romain Francois. | |||
2010-04-04 | Run job commands explicitly in the global enviroment (which can be | Nicholas Marriott | |
modified with setenv -g) rather than with the environment tmux started with. | |||
2010-02-24 | Typo fix from Tim van der Molen. | Nicholas Marriott | |
2009-12-03 | Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last | Nicholas Marriott | |
time now I've configured emacs to make them displayed in really annoying colours... | |||
2009-11-26 | Remove a couple of unused arguments where possible, and add /* ARGSUSED */ to | Nicholas Marriott | |
the rest to reduce lint output. | |||
2009-11-04 | Add back JOB_PERSIST checks that got lost. | Nicholas Marriott | |
2009-11-04 | Switch jobs over to use a bufferevent. | Nicholas Marriott | |
2009-11-04 | Initial changes to move tmux to libevent. | Nicholas Marriott | |
This moves the client-side loops are pretty much fully over to event-based only (tmux.c and client.c) but server-side (server.c and friends) treats libevent as a sort of clever poll, waking up after every event to run various things. Moving the server stuff over to bufferevents and timers and so on will come later. | |||
2009-11-01 | Add a flag for jobs that shouldn't be freed after they've died and use it for | Nicholas Marriott | |
status jobs, then only kill those jobs when status-left, status-right or set-titles-string is changed. Fixes problems with changing options from inside #(). | |||
2009-10-21 | Remove unused function. | Nicholas Marriott | |
2009-10-21 | Getting the read and write ends of the pipe the right way round is usually | Nicholas Marriott | |
recommended. DOH. | |||
2009-10-20 | Sort out stdout before stdin/stderr in case the stdout side of the pipe got one | Nicholas Marriott | |
of their fds. | |||
2009-10-11 | Switch run-shell over to queue the command in the background like #(). | Nicholas Marriott | |
2009-10-11 | There isn't much point in having a free function if it isn't used. | Nicholas Marriott | |
Also allow a NULL tree. | |||
2009-10-11 | Collect status from dead jobs and don't invoke the callback until both | Nicholas Marriott | |
all input (the socket is closed) and status is available. | |||
2009-10-10 | Put all jobs on a global all_jobs list and use that in server.c instead of | Nicholas Marriott | |
running through all the clients. | |||
2009-10-10 | Rather than running status-left, status-right and window title #() with popen | Nicholas Marriott | |
immediately every redraw, queue them up and run them in the background, starting each once every status-interval. The actual status line uses the output from the last run. This brings several advantages: - tmux itself may be called from inside #() without causing the server to hang; - likewise, sleep or similar doesn't cause the server to block; - commands aren't run excessively often when redrawing; - commands shared by status-left and status-right, or used multiple times, will only be run once. run-shell and if-shell still use system()/popen() but will be changed over to use this too later. |