summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/server.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Tidy utf8.c a little: build table on first use, and make utf8_width takenicm2015-11-121-2/+1
| | | | a u_int rather than splitting and then combining again in utf8_split.
* The output log is only useful once and it means creating a file, so opennicm2015-10-311-1/+3
| | | | it once at startup instead of in every call to tty_open.
* Move struct options into options.c.nicm2015-10-271-2/+2
|
* Break the common process set up, event loop and imsg dispatch codenicm2015-10-271-54/+20
| | | | | between server and client out into a separate internal API. This will make it easier to add another process.
* tmux can call pledge() in main with large set and then reduce itnicm2015-10-231-1/+5
| | | | | slightly in the server to "stdio rpath wpath cpath fattr unix recvfd proc exec tty ps".
* This should not be changed.nicm2015-10-221-2/+2
|
* Rename shutdown to exit.nicm2015-10-221-12/+12
|
* Userspace doesn't need to use SUN_LEN(): connect() and bind() must acceptguenther2015-10-111-2/+2
| | | | | | sizeof(struct sockaddr_un), so do the simple, portable thing ok beck@ deraadt@
* Move initial conf load into cfg.c.nicm2015-09-011-21/+4
|
* Event base does not need to be global.nicm2015-08-301-3/+3
|
* We already loop over the windows in server_client_loop, so don't do itnicm2015-08-291-5/+3
| | | | again in server_loop just to check names.
* Move alerts onto events rather than checking every loop.nicm2015-08-291-2/+5
|
* Remove unused prototypes.nicm2015-08-281-3/+1
|
* Per-session timers for locking, and remove the global one-second timer.nicm2015-08-281-44/+3
|
* Remove the lock-server option which is a bit redundant, it isn't thatnicm2015-08-281-27/+2
| | | | different without it.
* Give clock mode its own timer.nicm2015-08-281-10/+1
|
* Run status update on a per-client timer at status-interval.nicm2015-08-281-3/+1
|
* Move format job cleanup onto its own timer.nicm2015-08-281-3/+1
|
* Add an option (history-file) for a file to save/restore command promptnicm2015-07-201-1/+3
| | | | history, from Olof-Joachim Frahm.
* Similarly, for sessions use a callback to free rather than checkingnicm2015-06-051-20/+1
| | | | every loop.
* Instead of putting dead clients on a list and checking it every loop,nicm2015-06-051-12/+1
| | | | | | | use event_once to queue a callback to deal with them. Also dead clients with references would never actually be freed because the wrap-up functions (the callback for stdin, or status_prompt_clear) would never be called. So call them in server_client_lost.
* Add support for a single "marked pane". There is one marked pane in thenicm2015-06-041-14/+80
| | | | | | | | | server at a time; it may be toggled or cleared with select-pane -m and -M (the border is highlighted). A new target '~' or '{marked}' specifies the marked pane to commands and it is the default target for the swap-pane and join-pane -s flag (this makes them much simpler to use - mark the source pane and then change to the target pane to run swapp or joinp).
* Clear signal handlers before event_reinit as apparently it can otherwisenicm2015-06-011-2/+2
| | | | cause libevent to go strange.
* does not need syslog.hderaadt2015-05-311-2/+1
|
* Move the jobs output cache into the formats code so that #() work morenicm2015-05-271-1/+3
| | | | generally (for example, again working in set-titles-string).
* Convert clients list into a TAILQ.nicm2015-04-241-46/+29
|
* Change the windows array into an RB tree and fix some places where wenicm2015-04-221-17/+6
| | | | were only looking at the first winlink for a window in a session.
* window_index is only used in one place (window_destroy) so inline it there.nicm2015-04-221-1/+2
|
* Do not die on USR1 if any of the socket parent directories arenicm2015-04-211-9/+15
| | | | missing. Reported by Robin Powell.
* Add pane_dead_status for exit status of dead panes.nicm2014-12-091-1/+2
|
* Move cfg_causes local into cfg.c and remove struct causelist.nicm2014-10-271-14/+7
|
* Wake up any clients waiting with the wait-for command when the servernicm2014-09-011-2/+18
| | | | exits.
* lockf is entirely useless and it was a mistake to change to it, go backnicm2014-07-211-1/+2
| | | | | to using flock which actually works sensibly. Also always retry the lock to fix a potential race, and add some extra logging.
* Now that cmdlists are reference counted, there is no need for two-stepnicm2014-05-141-2/+1
| | | | deletion via the dead_key_bindings tree. From Keith Amling.
* There is no longer a need for a paste_stack struct or for global_buffersnicm2014-04-241-4/+1
| | | | to be global. Move to paste.c.
* Some more long lines.nicm2014-04-171-2/+2
|
* Do not run any command line command from the client which starts thenicm2013-10-201-1/+4
| | | | | | server until after the configuration file completes. This prevents it racing against run-shell or if-shell in .tmux.conf that run in the background.
* Rename global configuration define.nicm2013-04-241-5/+5
|
* Add a command queue to standardize and simplify commands that call othernicm2013-03-241-19/+25
| | | | | | | | | | | | | | | | | | | | | | 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.nicm2013-03-221-4/+1
|
* Fix argument order in a log statement.nicm2012-12-061-2/+2
|
* Use a utility function for common code to show errors in config file,nicm2012-11-191-17/+6
| | | | from Thomas Adam.
* xfree is not particularly helpful, remove it. From Thomas Adam.nicm2012-07-101-6/+6
|
* Stop accepting new clients for 1 second on EMFILE/ENFILE. Based onnicm2012-04-111-7/+32
| | | | ongoing fixes to other daemons by Theo.
* Use a lock file and flock() to serialize server start, avoids problemsnicm2012-03-091-2/+6
| | | | | 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),nicm2011-03-271-1/+2
| | | | | 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_*.nicm2011-01-261-2/+2
|
* Move all calls to fcntl(...O_NONBLOCK) into a function and clear thenicm2011-01-081-7/+3
| | | | | 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,nicm2011-01-011-11/+3
| | | | | | | 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 isnicm2010-12-301-1/+4
| | | | | | | 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.