aboutsummaryrefslogtreecommitdiff
path: root/server-client.c
Commit message (Collapse)AuthorAge
...
| * Only need to chmod +x or -x the socket when a client is created, lost orNicholas Marriott2009-11-11
| | | | | | | | attached, rather than every event loop.
| * Switch tty key input over to happen on a read event. This is a bit moreNicholas Marriott2009-11-05
| | | | | | | | | | | | | | | | | | | | complicated because of escape input, but in that case instead of processing a key immediately, schedule a timer and reprocess the bufer when it expires. This currently assumes that keys will be atomic (ie that if eg F1 is pressed the entire sequence is present in the buffer). This is usually but not always true, a change in the tree format so it can differentiate potential (partial) key sequences will happens soon and will allow this to be fixed.
| * Convert the key repeat timer to an event.Nicholas Marriott2009-11-05
| |
| * Move status timer check into the global once-per-second timer, this could maybeNicholas Marriott2009-11-04
| | | | | | | | be done better but one every second is better than once every 50 ms.
| * Use timeout events for the identify and message timers.Nicholas Marriott2009-11-04
| |
| * Don't reenlist the client imsg event every loop, instead have a small functionNicholas Marriott2009-11-04
| | | | | | | | to it and call it after the event triggers or after a imsg is added.
| * Switch tty fds over to a bufferevent.Nicholas Marriott2009-11-04
| |
| * Initial changes to move tmux to libevent.Nicholas Marriott2009-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.
| * Add an activity time for clients, like for sessions, and change session andNicholas Marriott2009-11-03
| | | | | | | | | | | | | | | | client lookup to pick the most recently used rather than the most recently created - this is much more useful when used interactively and (because the activity time is set at creation) should have no effect on source-file. Based on a problem reported by Jan Johansson.
| * Change session and client activity and creation time members to have moreNicholas Marriott2009-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.
| * Move the poll registration functions into the server-*.c files.Nicholas Marriott2009-10-27
| |
| * tabs are better; ok nicmTheo Deraadt2009-10-26
| |
| * Don't do anything in the client callback if the client has already died toNicholas Marriott2009-10-26
| | | | | | | | | | avoid a use-after-free (the callback is used twice, once for the client itself and once for the tty). Fixes crashes seen by Han Boetes.
| * Don't try to continue processing a client if the session has been destroyed.Nicholas Marriott2009-10-25
| |
| * Remove the -d flag to tmux and just use op/AX to detect default colours.Nicholas Marriott2009-10-25
| | | | | | | | | | | | | | | | | | | | | | | | Irritatingly, although op can be used to tell if a terminal supports default colours, it can't be used to set them because in some terminfo descriptions it resets attributes as a side-effect (acts as sgr0) and in others it doesn't, so it is not possible to determine reliably what the terminal state will be afterwards. So if AX is missing and op is present, tmux just sends sgr0. Anyone using -d for a terminal who finds they actually needed it can replace it using terminal-overrides, but please let me know as it is probably an omission from terminfo.
| * +time.h.Nicholas Marriott2009-10-25
| |
| * Redraw checks have to after handling input or pane redraw flags set by keyNicholas Marriott2009-10-22
| | | | | | | | presses will not be acted on.
| * The client buffers have to be checked after every event in order to catch theNicholas Marriott2009-10-22
| | | | | | | | escape timers and properly reset the cursor.
| * Split the server code handling clients, jobs and windows off into separateNicholas Marriott2009-10-22
| | | | | | | | | files from server.c (merging server-msg.c into the client file) and rather than iterating over each set after poll(), allow a callback to be specified when the fd is added and just walk once over the returned pollfds calling each callback where needed. More to come, getting this in so it is tested.
* Send notifications to control clients. Also don't redraw client whenNicholas Marriott2012-09-04
| | | | suspended.
* Sync OpenBSD patchset 1151:Tiago Cunha2012-07-11
| | | | | | | | Make command exec functions return an enum rather than -1/0/1 values and 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.
* Sync OpenBSD patchset 1150:Tiago Cunha2012-07-11
| | | | | xfree is not particularly helpful, remove it. From Thomas Adam.
* Sync OpenBSD patchset 1140:Tiago Cunha2012-07-04
| | | | | Remove a couple of unused variables from redbrain at gcc dot gnu dot org.
* Sync OpenBSD patchset 1138:Tiago Cunha2012-06-18
| | | | | | | | | Add a skeleton mode to tmux (called "control mode") that let's tmux 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.
* Sync OpenBSD patchset 1121:Tiago Cunha2012-05-22
| | | | | | Store client in tty struct directly instead of using a callback function pointer.
* Sync OpenBSD patchset 1114:Tiago Cunha2012-05-22
| | | | | | | | | | | | | Instead of passing stdin/stdout/stderr file descriptors over imsg and 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.
* Sync OpenBSD patchset 1111:Tiago Cunha2012-05-12
| | | | | Add a helper function to open the terminal for attach-/new-session.
* Sync OpenBSD patchset 1092:Tiago Cunha2012-04-12
| | | | | | Stop accepting new clients for 1 second on EMFILE/ENFILE. Based on ongoing fixes to other daemons by Theo.
* Sync OpenBSD patchset 1064:Tiago Cunha2012-03-18
| | | | | | Need to call recalculate_sizes() when changing window with the mouse, from marcel partap.
* Sync OpenBSD patchset 1057:Tiago Cunha2012-03-18
| | | | | | Check event_initialized before event_del if event may not have been set up; libevent2 complains about this. Reported by Moriyoshi Koizumi.
* Sync OpenBSD patchset 1045:Tiago Cunha2012-03-18
| | | | | Remove some bits leftover from unused backoff code.
* Sync OpenBSD patchset 1023:Tiago Cunha2012-02-02
| | | | | | Do not change pane when changing window with mouse on status line, pointed out by Romain Francoise.
* Sync OpenBSD patchset 1015:Tiago Cunha2012-01-29
| | | | | | Add an option to move the status line to the top of the screen, requested by many.
* Sync OpenBSD patchset 1014:Tiago Cunha2012-01-29
| | | | | | | Call bufferevent_free before closing file descriptor associated with it or bugs in $EventMechanism on $OtherOS makes libevent get it's knickers in a twist. From Dylan Alex Simon.
* Sync OpenBSD patchset 1011:Tiago Cunha2012-01-23
| | | | | Remove unused backoff code that doesn't do any good.
* Sync OpenBSD patchset 1007:Tiago Cunha2012-01-21
| | | | | | | | | | | | Drop the ability to have a list of keys in the prefix in favour of two 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 :-).
* Sync OpenBSD patchset 988:Tiago Cunha2011-12-25
| | | | | | | Fix so that when mouse-select-pane and mouse-select-window are both enabled, clicking on the status line does not change the current pane. From Romain Francoise.
* Sync OpenBSD patchset 947:Tiago Cunha2011-08-21
| | | | | Fix a couple of memory leaks, from marcel partap.
* Sync OpenBSD patchset 936:Tiago Cunha2011-07-08
| | | | | | | | Do not continue to send data to suspended/locked clients or there will 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.
* Sync OpenBSD patchset 915:Tiago Cunha2011-05-22
| | | | | | | Support xterm(1) cursor colour change sequences through terminfo(5) Cc (set) and Cr (reset) extensions. Originally by Sean Estabrooks, tweaked by me and Ailin Nemui.
* Sync OpenBSD patchset 908:Tiago Cunha2011-05-18
| | | | | Only select pane on click, not drag. From hsim at gmx.li.
* Sync OpenBSD patchset 905:Tiago Cunha2011-05-18
| | | | | | Add a new option, mouse-resize-pane. When on, panes may be resized by dragging their borders. From hsim at gmx.li.
* Sync OpenBSD patchset 903:Tiago Cunha2011-05-05
| | | | | | Change window with mouse wheel over status line if mouse-select-window is on, from marcel partap.
* Sync OpenBSD patchset 900:Tiago Cunha2011-05-05
| | | | | | Check if mouse-select-pane is ON not off when setting mouse flags, reported by oga.
* Sync OpenBSD patchset 896:Tiago Cunha2011-04-25
| | | | | | | | When mode-mouse is on (it is off by default), automatically enter copy 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.
* |PatchSet 893Nicholas Marriott2011-04-18
| | | | | | | | | | | |Date: 2011/04/18 20:49:05 |Author: nicm |Branch: HEAD |Tag: (none) |Log: |Add an option (mouse-select-window) which allows the mouse to be used by |clicking on the status line, written by hsim at gmx dot li.
* |PatchSet 876Nicholas Marriott2011-04-06
| | | | | | | | | | | |Date: 2011/03/29 20:30:16 |Author: nicm |Branch: HEAD |Tag: (none) |Log: |Change -t on display-message to be target-pane for the #[A-Z] |replacements and add -c as target-client.
* Sync OpenBSD patchset 855:Tiago Cunha2011-02-15
| | | | | | | | | | | | | | | | | | | Simplify the way jobs work and drop the persist type, so all jobs are 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).
* Sync OpenBSD patchset 846:Tiago Cunha2011-01-21
| | | | | | Only set a mouse mode for mouse-select-pane if none already set by the mode (any will do).
* Sync OpenBSD patchset 834:Tiago Cunha2011-01-21
| | | | | | | Move all calls to fcntl(...O_NONBLOCK) into a function and clear the flag on the stdio file descriptors before closing them (fixes things like "tmux ls && cat").