Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Rename global configuration define. | Nicholas Marriott | 2013-04-24 |
| | |||
* | Add a command queue to standardize and simplify commands that call other | Nicholas Marriott | 2013-03-24 |
| | | | | | | | | | | | | | | | | | | | | | | commands and allow a command to block execution of subsequent commands. This allows run-shell and if-shell to be synchronous which has been much requested. Each client has a default command queue and commands are consumed one at a time from it. A command may suspend execution from the queue by returning CMD_RETURN_WAIT and then resume it by calling cmd_continue() - for example run-shell does this from the callback that is fired after the job is freed. When the command queue becomes empty, command clients are automatically exited (unless attaching). A callback is also fired - this is used for nested commands in, for example, if-shell which can block execution of the client's cmdq until a new cmdq becomes empty. Also merge all the old error/info/print functions together and lose the old curclient/cmdclient distinction - a cmdq is bound to one client (or none if in the configuration file), this is a command client if c->session is NULL otherwise an attached client. | ||
* | No more lint means no more ARGSUSED. | Nicholas Marriott | 2013-03-22 |
| | |||
* | Fix argument order in a log statement. | Nicholas Marriott | 2012-12-06 |
| | |||
* | Use a utility function for common code to show errors in config file, | Nicholas Marriott | 2012-11-19 |
| | | | | from Thomas Adam. | ||
* | xfree is not particularly helpful, remove it. From Thomas Adam. | Nicholas Marriott | 2012-07-10 |
| | |||
* | Stop accepting new clients for 1 second on EMFILE/ENFILE. Based on | Nicholas Marriott | 2012-04-11 |
| | | | | ongoing fixes to other daemons by Theo. | ||
* | Use a lock file and flock() to serialize server start, avoids problems | Nicholas Marriott | 2012-03-09 |
| | | | | | when running a bunch of tmux from cron at the same time. Based on a diff from Tim Ruehsen. | ||
* | Give each pane created in a tmux server a unique id (starting from 0), | Nicholas Marriott | 2011-03-27 |
| | | | | | put it in the TMUX_PANE environment variable and accept it as a target. Suggested by and with testing and tweaks from Ben Boeckel. | ||
* | Use LIST_* not SLIST_*. | Nicholas Marriott | 2011-01-26 |
| | |||
* | Move all calls to fcntl(...O_NONBLOCK) into a function and clear the | Nicholas Marriott | 2011-01-08 |
| | | | | | flag on the stdio file descriptors before closing them (fixes things like "tmux ls && cat"). | ||
* | Don't reset the activity timer for unattached sessions every second, | Nicholas Marriott | 2011-01-01 |
| | | | | | | | this screws up the choice of most-recently-used. Instead, break the time update into a little function and do it when the session is attached. Pointed out by joshe@. | ||
* | Change from a per-session stack of buffers to one global stack which is | Nicholas Marriott | 2010-12-30 |
| | | | | | | | much more convenient and also simplifies lot of code. This renders copy-buffer useless and makes buffer-limit now a server option. By Tiago Cunha. | ||
* | Store sessions in an RB tree by name rather than a list, this is tidier | Nicholas Marriott | 2010-12-21 |
| | | | | | | | | | and allows them to easily be shown sorted in various lists (list-sessions/choose-sessions). Keep a session index which is used in a couple of places internally but make it an ever-increasing number rather than filling in gaps with new sessions. | ||
* | Merge the before and after attach client code into one in client.c | Nicholas Marriott | 2010-10-18 |
| | | | | (instead of two in tmux.c and client.c). | ||
* | Trying to set FD_CLOEXEC on every fd is a lost cause, just use | Nicholas Marriott | 2010-10-16 |
| | | | | closefrom() before exec. | ||
* | Two new options: | Nicholas Marriott | 2010-09-26 |
| | | | | | | | | | | | | - server option "exit-unattached" makes the server exit when no clients are attached, even if sessions are present; - session option "destroy-unattached" destroys a session once no clients are attached to it. These are useful for preventing tmux remaining in the background where it is undesirable and when using tmux as a login shell to keep a limit on new sessions. | ||
* | Modify the permissions on the socket when adding or removing +x to show | Nicholas Marriott | 2010-09-26 |
| | | | | attached sessions, rather than replacing them. | ||
* | Do not call event_del() for signals after fork(), just use sigaction() | Nicholas Marriott | 2010-08-19 |
| | | | | | directly instead - calling libevent functions after fork() w/o event_reinit() is a bad idea, even if in this case it was harmless. | ||
* | switch back to kqueue for now, since (a) kqueue has been fixed to deal | Theo Deraadt | 2010-08-04 |
| | | | | | | with strange devices and (b) since there appears to be a bull in the poll code in libevent as well... requested by nicm who is away | ||
* | kqueue(2) is currently broken when used with /dev/null and a few other | Nicholas Marriott | 2010-07-24 |
| | | | | | | | | devices. An upcoming fix for some problems with the client stdout/stderr handling relies on it working, so make tmux force libevent to use poll(2) via EVENT_NOKQUEUE, until we have fixed kqueue. | ||
* | Give tmux sockets (but not the containing folder) group | Nicholas Marriott | 2010-06-21 |
| | | | | | permissions. This allows hardlinks to the sockets to be used more easily. | ||
* | 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-04 |
| | |||
* | Make signal handler setup/teardown two common functions instead of six, | Nicholas Marriott | 2010-05-03 |
| | | | | | and reset SIGCHLD after fork to fix problems with some shells. From Romain Francois. | ||
* | Merge copy mode and output mode, dropping the latter. Idea and code from | Nicholas Marriott | 2010-04-06 |
| | | | | Micah Cowan. | ||
* | Nuke unused variable. | Nicholas Marriott | 2010-03-22 |
| | |||
* | Use the array.h code for the causes list. | Nicholas Marriott | 2010-02-06 |
| | |||
* | Instead of bailing out on the first configuration file error, carry on, | Nicholas Marriott | 2010-02-06 |
| | | | | | collecting all the errors, then start with the active window in more mode displaying them. | ||
* | Ignore SIGHUP as well. | Nicholas Marriott | 2010-01-30 |
| | |||
* | Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last | Nicholas Marriott | 2009-12-03 |
| | | | | | time now I've configured emacs to make them displayed in really annoying colours... | ||
* | Close the pane if the process died due to a signal, not just if it exited | Nicholas Marriott | 2009-12-02 |
| | | | | normally. | ||
* | Remove a couple of unused arguments where possible, and add /* ARGSUSED */ to | Nicholas Marriott | 2009-11-26 |
| | | | | the rest to reduce lint output. | ||
* | Destroy panes immediately rather than checking them all every loop. | Nicholas Marriott | 2009-11-13 |
| | |||
* | Free the pane bufferevent when the fd is closed (the signal could come before | Nicholas Marriott | 2009-11-11 |
| | | | | the error callback). | ||
* | Only need to chmod +x or -x the socket when a client is created, lost or | Nicholas Marriott | 2009-11-11 |
| | | | | attached, rather than every event loop. | ||
* | EVLOOP_ONCE takes care of the wakeup, so no need to call event_loopexit(NULL). | Nicholas Marriott | 2009-11-05 |
| | |||
* | Now all timers are events, there is no longer any need to wake up every 50 ms - | Nicholas Marriott | 2009-11-05 |
| | | | | only wake up when an event happens. | ||
* | Move status timer check into the global once-per-second timer, this could maybe | Nicholas Marriott | 2009-11-04 |
| | | | | be done better but one every second is better than once every 50 ms. | ||
* | Don't reenlist the client imsg event every loop, instead have a small function | Nicholas Marriott | 2009-11-04 |
| | | | | to it and call it after the event triggers or after a imsg is added. | ||
* | Tell the client to exit on configuration file error. | Nicholas Marriott | 2009-11-04 |
| | |||
* | Convert the window pane (pty master side) fd over to use a bufferevent. | Nicholas Marriott | 2009-11-04 |
| | | | | | The evbuffer API is very similar to the existing tmux buffer API so this was remarkably painless. Not many possible ways to do it, I suppose. | ||
* | Call event_init() before loading the config file, since potentially it could | Nicholas Marriott | 2009-11-04 |
| | | | | set up events. | ||
* | Switch jobs over to use a bufferevent. | Nicholas Marriott | 2009-11-04 |
| | |||
* | Initial changes to move tmux to libevent. | Nicholas Marriott | 2009-11-04 |
| | | | | | | | | | 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. | ||
* | Change session and client activity and creation time members to have more | Nicholas Marriott | 2009-11-03 |
| | | | | | | | | meaningful names. Also, remove the code to try and update the session activity time for the command client when a command message is received as is pointless because it des not have a session. | ||
* | Reorder slightly to tidy code. | Nicholas Marriott | 2009-11-02 |
| | |||
* | Move the poll registration functions into the server-*.c files. | Nicholas Marriott | 2009-10-27 |
| | |||
* | tabs are better; ok nicm | Theo Deraadt | 2009-10-26 |
| | |||
* | Clear signal flags /before/ taking action and continue afterwards to reduce | Nicholas Marriott | 2009-10-26 |
| | | | | chance of dropping signals. Pointed out by deraadt@. |