aboutsummaryrefslogtreecommitdiff
path: root/server-client.c
Commit message (Collapse)AuthorAge
...
| * Make mouse event structure clearer by defining events (up, click, drag)Nicholas Marriott2012-10-26
| | | | | | | | | | and simplifying how buttons and wheels are represented, from Ailin Nemui. Should be no functional changes.
* | Merge branch 'obsd-master'Thomas2012-09-27
|\| | | | | | | | | | | | | Sync from OpenBSD. * obsd-master: Do not leak file descriptor if not a tty, reported by Sebastien Marie.
| * Do not leak file descriptor if not a tty, reported by Sebastien Marie.Nicholas Marriott2012-09-27
| |
| * Send notifications to control clients. Also don't redraw client whenNicholas Marriott2012-09-03
| | | | | | | | suspended.
| * Make command exec functions return an enum rather than -1/0/1 values andNicholas Marriott2012-07-11
| | | | | | | | | | | | add a new value to mean "leave client running but don't attach" to fix problems with using some commands in a command sequence. Most of the work by Thomas Adam, problem reported by "jspenguin" on SF bug 3535531.
| * xfree is not particularly helpful, remove it. From Thomas Adam.Nicholas Marriott2012-07-10
| |
| * Remove a couple of unused variables from redbrain at gcc dot gnu dot org.Nicholas Marriott2012-06-20
| |
| * Add a skeleton mode to tmux (called "control mode") that let's tmuxNicholas Marriott2012-06-18
| | | | | | | | | | | | | | commands be sent and output received on stdout. This can be used to integrate with other terminal emulators and should allow some other things to be made simpler later. More to come so doesn't do much yet and deliberately not documented.
| * Store client in tty struct directly instead of using a callback functionNicholas Marriott2012-05-22
| | | | | | | | pointer.
| * Instead of passing stdin/stdout/stderr file descriptors over imsg andNicholas Marriott2012-05-21
| | | | | | | | | | | | | | | | | | | | | | handling them in the server, handle them in the client and pass buffers over imsg. This is much tidier for some upcoming changes and the performance hit isn't critical. The tty fd is still passed to the server as before. This bumps the tmux protocol version so new clients and old servers are incompatible.
| * Add a helper function to open the terminal for attach-/new-session.Nicholas Marriott2012-05-06
| |
| * Stop accepting new clients for 1 second on EMFILE/ENFILE. Based onNicholas Marriott2012-04-11
| | | | | | | | ongoing fixes to other daemons by Theo.
| * Need to call recalculate_sizes() when changing window with the mouse,Nicholas Marriott2012-03-17
| | | | | | | | from marcel partap.
| * Check event_initialized before event_del if event may not have been setNicholas Marriott2012-03-17
| | | | | | | | up; libevent2 complains about this. Reported by Moriyoshi Koizumi.
| * Remove some bits leftover from unused backoff code.Nicholas Marriott2012-03-09
| |
| * Do not change pane when changing window with mouse on status line,Nicholas Marriott2012-02-02
| | | | | | | | pointed out by Romain Francoise.
| * Add an option to move the status line to the top of the screen,Nicholas Marriott2012-01-29
| | | | | | | | requested by many.
| * Call bufferevent_free before closing file descriptor associated with itNicholas Marriott2012-01-29
| | | | | | | | | | or bugs in $EventMechanism on $OtherOS makes libevent get it's knickers in a twist. From Dylan Alex Simon.
| * Remove unused backoff code that doesn't do any good.Nicholas Marriott2012-01-21
| |
| * Drop the ability to have a list of keys in the prefix in favour of twoNicholas Marriott2012-01-21
| | | | | | | | | | | | | | | | | | | | separate options, prefix and prefix2. This simplifies the code and gets rid the data options type which was only used for this one option. Also add a -2 flag to send-prefix to send the secondary prefix key, fixing a cause of minor irritation. People who want three prefix keys are out of luck :-).
| * Fix so that when mouse-select-pane and mouse-select-window are bothNicholas Marriott2011-12-24
| | | | | | | | | | enabled, clicking on the status line does not change the current pane. From Romain Francoise.
| * Fix a couple of memory leaks, from marcel partap.Nicholas Marriott2011-08-20
| |
| * Do not continue to send data to suspended/locked clients or there willNicholas Marriott2011-07-08
| | | | | | | | | | | | be a huge rush of it after they are resumed/unlocked. The main output path was fine but status line updates and the terminal state reset code were missed.
| * Support xterm(1) cursor colour change sequences through terminfo(5) CcNicholas Marriott2011-05-20
| | | | | | | | | | (set) and Cr (reset) extensions. Originally by Sean Estabrooks, tweaked by me and Ailin Nemui.
| * Only select pane on click, not drag. From hsim at gmx.li.Nicholas Marriott2011-05-08
| |
| * Add a new option, mouse-resize-pane. When on, panes may be resized byNicholas Marriott2011-05-08
| | | | | | | | dragging their borders. From hsim at gmx.li.
| * Change window with mouse wheel over status line if mouse-select-windowNicholas Marriott2011-05-04
| | | | | | | | is on, from marcel partap.
| * Check if mouse-select-pane is ON not off when setting mouse flags,Nicholas Marriott2011-05-04
| | | | | | | | reported by oga.
| * When mode-mouse is on (it is off by default), automatically enter copyNicholas Marriott2011-04-19
| | | | | | | | | | | | mode when the mouse is dragged or the mouse wheel is used. Also exit copy mode when the mouse wheel is scrolled off the bottom. Discussed with and written by hsim at gmx dot li.
| * Add an option (mouse-select-window) which allows the mouse to be used byNicholas Marriott2011-04-18
| | | | | | | | clicking on the status line, written by hsim at gmx dot li.
| * Change -t on display-message to be target-pane for the #[A-Z]Nicholas Marriott2011-03-29
| | | | | | | | replacements and add -c as target-client.
| * Simplify the way jobs work and drop the persist type, so all jobs areNicholas Marriott2011-01-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
| * Only set a mouse mode for mouse-select-pane if none already set by theNicholas Marriott2011-01-15
| | | | | | | | mode (any will do).
| * Move all calls to fcntl(...O_NONBLOCK) into a function and clear theNicholas Marriott2011-01-08
| | | | | | | | | | flag on the stdio file descriptors before closing them (fixes things like "tmux ls && cat").
| * Support for UTF-8 mouse input (\033[1005h). This was added in xterm 262Nicholas Marriott2011-01-03
| | | | | | | | | | | | | | | | | | | | and supports larger terminals than the older way. If the new mouse-utf8 option is on, UTF-8 mouse input is enabled for all UTF-8 terminals. The option defaults to on if LANG etc are set in the same manner as the utf8 option. With help and based on code from hsim at gmx.li.
| * Don't reset the activity timer for unattached sessions every second,Nicholas Marriott2011-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@.
| * Support all four of the xterm mouse modes. Based on a diff from hsim atNicholas Marriott2010-12-29
| | | | | | | | gmx.li.
| * Use pointer rather than index for the client's last session.Nicholas Marriott2010-12-20
| |
| * Track the last session for a client and add a flag to switch-client andNicholas Marriott2010-12-11
| | | | | | | | a key binding (L) to move a client back to its last session.
| * Make the prompt history global for all clients which is much more useful ↵Nicholas Marriott2010-12-11
| | | | | | | | than per-client history.
| * Trying to set FD_CLOEXEC on every fd is a lost cause, just useNicholas Marriott2010-10-16
| | | | | | | | closefrom() before exec.
| * Two new options:Nicholas Marriott2010-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.
| * Add missing prototype.Nicholas Marriott2010-08-31
| |
| * Do not need to dup() the tty fd sent from the client because it isNicholas Marriott2010-08-19
| | | | | | | | already dup()d again later. Fixes a leak seen by espie@.
| * Change the way backoff works. Instead of stopping reading from the ptyNicholas Marriott2010-08-11
| | | | | | | | | | | | | | | | | | | | when the client tty backs up too much, just stop updating the tty and only update the internal screen. Then when the tty recovers, force a redraw. This prevents a dodgy client from causing other clients to go into backoff while still allowing tmux to be responsive (locally) when seeing lots of output.
| * dup() the stdin fd so it isn't closed twice (once for stdin, once for tty).Nicholas Marriott2010-07-28
| |
| * When changing so that the client passes its stdout and stderr as well asNicholas Marriott2010-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | stdin up to the server, I forgot one essential point - the tmux server could now be both the producer and consumer. This happens when tmux is run inside tmux, as well as when piping tmux commands together. So, using stdio(3) was a bad idea - if sufficient data was written, this could block in write(2). When that happened and the server was both producer and consumer, it deadlocks. Change to use libevent bufferevents for the client stdin, stdout and stderr instead. This is trivial enough for output but requires a callback mechanism to trigger when stdin is finished. This relies on the underlying polling mechanism for libevent to work with whatever devices to which the user could redirect stdin, stdout or stderr, hence the change to use poll(2) over kqueue(2) for tmux.
| * Send the \n to stdout with the message, not stderr... doh.Nicholas Marriott2010-07-19
| |
| * Return the command client return code with MSG_EXIT now that MSG_ERROR andNicholas Marriott2010-07-11
| | | | | | | | | | | | | | MSG_PRINT are unused. New clients should be compatible with old tmux servers but vice versa may print an error.
| * Send all three of stdin, stdout, stderr from the client to the server, so thatNicholas Marriott2010-06-28
| | | | | | | | | | | | | | | | commands can directly make use of them. This means that load-buffer and save-buffer can have "-" as the file to read from stdin or write to stdout. This is a protocol version bump so the tmux server will need to be restarted after upgrade (or an older client used).