summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/server-client.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Use __unused rather than rolling our own.nicm2015-11-181-5/+5
|
* Push stdout and stderr to clients more aggressively, and add an event tonicm2015-11-141-4/+88
| | | | continue if the send fails.
* Support UTF-8 key bindings by expanding the key type from int tonicm2015-11-121-22/+22
| | | | | | uint64_t and converting UTF-8 to Unicode on input and the reverse on output. (This allows key bindings, there are still omissions - the largest being that the various prompts do not accept UTF-8.)
* Drop mouse-utf8 option and always turn on UTF-8 mouse if the client saysnicm2015-11-111-8/+6
| | | | it supports UTF-8.
* The output log is only useful once and it means creating a file, so opennicm2015-10-311-2/+1
| | | | it once at startup instead of in every call to tty_open.
* Because pledge(2) does not allow us to pass directory file descriptorsnicm2015-10-311-6/+10
| | | | | | | | | 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).
* Like options, move the environ struct into environ.c.nicm2015-10-281-5/+5
|
* Move struct options into options.c.nicm2015-10-271-11/+11
|
* Break the common process set up, event loop and imsg dispatch codenicm2015-10-271-145/+99
| | | | | between server and client out into a separate internal API. This will make it easier to add another process.
* If a mouse event has no key binding, pass it through to the pane itnicm2015-10-261-12/+16
| | | | | happened in, not the active pane like normal key presses. Fixes problems seen by Enrico Ghirardi.
* Some extra logging of where keys are actually going.nicm2015-10-261-1/+3
|
* Pasting mouse escape sequences is unlikely, so skip them when workingnicm2015-10-231-2/+2
| | | | out whether the user is pasting.
* Log identify messages.nicm2015-10-221-1/+8
|
* Use client pointer not file descriptor in logging.nicm2015-10-201-6/+6
|
* The table could change when retrying so don't save it at start ofnicm2015-10-201-3/+4
| | | | server_client_handle_key.
* Pass current directory as a string rather than a file descriptor becausenicm2015-10-181-4/+5
| | | | pledge doesn't let us pass directory file descriptors.
* Rename cmd_q dead flag to a general flags bitmask (will be more flags later).nicm2015-09-161-2/+2
|
* Make refresh-client force update of jobs, from Sina Siadat.nicm2015-09-141-2/+3
|
* Tweak some error messages/comments.nicm2015-09-011-2/+2
|
* Some style nits and dead assignments.nicm2015-08-301-8/+1
|
* We already loop over the windows in server_client_loop, so don't do itnicm2015-08-291-1/+2
| | | | again in server_loop just to check names.
* Make session_update_activity more useful and use it in more places.nicm2015-08-281-6/+6
|
* Run status update on a per-client timer at status-interval.nicm2015-08-281-37/+3
|
* status_out and associated data structures are no longer used.nicm2015-07-291-3/+1
|
* Initialize client fd to -1 as well, from Bobby Powers.nicm2015-07-171-1/+2
|
* Fix line endings.nicm2015-07-131-4/+4
|
* Initialize cwd fd to -1 so that we don't close fd 0 if the client isnicm2015-07-131-3/+4
| | | | | destroyed before it is changed. Also allow ttyname() to fail. Fixes problems when running out of file descriptors reported by Bruno Sutic.
* Add a format for client PID (client_pid) and server PID (pid). Diff fornicm2015-06-141-1/+7
| | | | client_pid from Thomas Adam.
* Change deref to the more sensible unref, and add a couple I missed before.nicm2015-06-051-4/+4
|
* Instead of putting dead clients on a list and checking it every loop,nicm2015-06-051-4/+35
| | | | | | | 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.
* Move the nested check from client to server and compare the client ttynicm2015-06-041-1/+22
| | | | | name to all the pane pty names instead of comparing socket paths. This means that "new -d" will work without unsetting $TMUX.
* Move the jobs output cache into the formats code so that #() work morenicm2015-05-271-6/+2
| | | | generally (for example, again working in set-titles-string).
* Remove some stuff that accidentally ended up here from portable, andnicm2015-05-081-6/+1
| | | | remove a little-used debug function.
* Turn cursor off during redraw, pointed out by George Nachman.nicm2015-05-061-8/+18
|
* Make message log a TAILQ.nicm2015-04-251-7/+6
|
* Convert clients list into a TAILQ.nicm2015-04-241-38/+9
|
* Change the windows array into an RB tree and fix some places where wenicm2015-04-221-6/+2
| | | | were only looking at the first winlink for a window in a session.
* Don't eat the mouse event that triggers a drag end because we may wantnicm2015-04-211-2/+2
| | | | to pass it on to application inside the pane.
* Support for multiple key tables to commands to be bound to sequences ofnicm2015-04-201-63/+95
| | | | | | | keys. The default key bindings become the "prefix" table and -n the "root" table. Keys may be bound in new tables with bind -T and switch-client -T used to specify the table in which the next key should be looked up. Based on a diff from Keith Amling.
* Rewrite of tmux mouse support which was a mess. Instead of havingnicm2015-04-191-88/+245
| | | | | | | | | | | | | | | | | | | | | | | | | options for "mouse-this" and "mouse-that", mouse events may be bound as keys and there is one option "mouse" that turns on mouse support entirely (set -g mouse on). See the new MOUSE SUPPORT section of the man page for description of the key names and new flags (-t= to specify the pane or window under mouse as a target, and send-keys -M to pass through a mouse event). The default builtin bindings for the mouse are: bind -n MouseDown1Pane select-pane -t=; send-keys -M bind -n MouseDown1Status select-window -t= bind -n MouseDrag1Pane copy-mode -M bind -n MouseDrag1Border resize-pane -M To get the effect of turning mode-mouse off, do: unbind -n MouseDrag1Pane unbind -temacs-copy MouseDrag1Pane The old mouse options are now gone, set-option -q may be used to suppress warnings if mixing configuration files.
* Support setting the default window and pane background colours (windownicm2015-04-191-3/+2
| | | | | and active pane via window-style and window-active-style options, an individual pane by a new select-pane -P flag). From J Raynor.
* Fix some format specifier nits, from Ben Boeckel.nicm2015-03-311-2/+2
|
* Use formats not status_replace for set-titles-string.nicm2015-02-061-5/+11
|
* Remove two unused arguments from status_replace.nicm2015-02-011-2/+2
|
* Fix some spacing nits.nicm2014-10-221-3/+3
|
* Update status when pane selected with mouse, from Balazs Kezes.nicm2014-10-021-1/+2
|
* Various minor style and spacing nits.nicm2014-09-011-2/+2
|
* Remove support for the continuous reporting "any" mouse mode which nevernicm2014-08-091-2/+2
| | | | really worked properly and is rarely used.
* An EOF is a good reason to close a connection.krw2014-07-131-2/+2
| | | | ok nicm@
* If a client is killed while suspended with ^Z so has gone through thenicm2014-07-131-1/+4
| | | | | MSG_EXITED dance, don't try to resume it since a) it's pointless and b) the tty structures have been cleaned up and tmux will crash.