aboutsummaryrefslogtreecommitdiff
path: root/server.c
Commit message (Collapse)AuthorAge
...
* Sync OpenBSD patchset 384:Tiago Cunha2009-10-12
| | | | | Switch run-shell over to queue the command in the background like #().
* Sync OpenBSD patchset 382:Tiago Cunha2009-10-12
| | | | | | Collect status from dead jobs and don't invoke the callback until both all input (the socket is closed) and status is available.
* Sync OpenBSD patchset 381:Tiago Cunha2009-10-12
| | | | | | | | | Clean up by introducing a wrapper struct for mouse clicks rather than passing three u_chars around. As a side-effect this fixes incorrectly rejecting high cursor positions (because it was comparing them as signed char), reported by Tom Doherty.
* Sync OpenBSD patchset 380:Tiago Cunha2009-10-12
| | | | | | Braek some bits out of server_fill_client() that aren't really related to polling into their own function.
* Sync OpenBSD patchset 379:Tiago Cunha2009-10-12
| | | | | | Put all jobs on a global all_jobs list and use that in server.c instead of running through all the clients.
* Sync OpenBSD patchset 374:Tiago Cunha2009-10-11
| | | | | | | | | | | | | | | | | | | Rather than running status-left, status-right and window title #() with popen immediately every redraw, queue them up and run them in the background, starting each once every status-interval. The actual status line uses the output from the last run. This brings several advantages: - tmux itself may be called from inside #() without causing the server to hang; - likewise, sleep or similar doesn't cause the server to block; - commands aren't run excessively often when redrawing; - commands shared by status-left and status-right, or used multiple times, will only be run once. run-shell and if-shell still use system()/popen() but will be changed over to use this too later.
* Sync OpenBSD patchset 373:Tiago Cunha2009-10-11
| | | | | | | | New option, mouse-select-pane. If on, the mouse may be used to select the current pane. Suggested by sthen@ and also by someone else ages ago who I have forgotten.
* Sync OpenBSD patchset 371:Tiago Cunha2009-10-11
| | | | | | | | | | Add "grouped sessions" which have independent name, options, current window and so on but where the linked windows are synchronized (ie creating, killing windows and so on are mirrored between the sessions). A grouped session may be created by passing -t to new-session. Had this around for a while, tested by a couple of people.
* Sync OpenBSD patchset 370:Tiago Cunha2009-10-11
| | | | | | | | | | | | | | | Support for individual session idle time locking. May be enabled by turning off the lock-server option (it is on by default). When this is off, each session locks when it has been idle for the lock-after-time setting. When on, the entire server locks when ALL sessions have been idle for their individual lock-after-time settings. This replaces one global-only option (lock-after-time) with another (lock-server), but the default behaviour is usually preferable so there don't seem to be many alternatives. Diff/idea largely from Thomas Adam, tweaked by me.
* Sync OpenBSD patchset 369:Tiago Cunha2009-10-11
| | | | | | | | | Instead of passing a struct pollfd ** around through various functions, build them into a tree and then convert into a flat poll array before and after poll. This adds a little code but should reduce annoying problems with ordering when adding new things that also need to be polled.
* Sync OpenBSD patchset 360:Tiago Cunha2009-10-06
| | | | | | | | If no target client is specified to commands which accept one, try to guess the current client, in a similar manner to how sessions already work: if the current session can be established and has only one client, use that; otherwise use the most recently created client.
* Sync OpenBSD patchset 352:Tiago Cunha2009-09-25
| | | | | Don't allow locked or suspended clients to limit the size of active clients.
* Sync OpenBSD patchset 349:Tiago Cunha2009-09-23
| | | | | | | On SIGTERM, just abandon any suspended/locked clients and leave them to it, otherwise the server will hang around (refusing new connections) until they exit properly.
* Sync OpenBSD patchset 347:Tiago Cunha2009-09-23
| | | | | | | | | | | | | | | | Remove the internal tmux locking and instead detach each client and run the command specified by a new option "lock-command" (by default "lock -np") in each client. This means each terminal has to be unlocked individually but simplifies the code and allows the system password to be used to unlock. Note that the set-password command is gone, so it will need to be removed from configuration files, and the -U command line flag has been removed. This is the third protocol version change so again it is best to stop the tmux server before upgrading.
* Sync OpenBSD patchset 343:Tiago Cunha2009-09-22
| | | | | | | | | | Permit multiple prefix keys to be defined, separated by commas, for example: set -g prefix ^a,^b Any key in the list acts as the prefix. The send-prefix command always sends the first key in the list.
* Sync OpenBSD patchset 332:Tiago Cunha2009-09-20
| | | | | Regularise some fatal messages.
* Sync OpenBSD patchset 331:Tiago Cunha2009-09-19
| | | | | | | New option, set-titles-string, to allow the window title to be specified (as for status-left/right) if set-titles is on. Also only update the title when the status line is being redrawn.
* Sync OpenBSD patchset 327:Tiago Cunha2009-09-15
| | | | | The default terminal size should be 80x24, not 80x25.
* Sync OpenBSD patchset 326:Tiago Cunha2009-09-15
| | | | | Nuke unused server_client_index function, pointed out by martynas@.
* Zap unused variables.Tiago Cunha2009-09-13
|
* Sync OpenBSD patchset 324:Tiago Cunha2009-09-13
| | | | | Tidy some common code for destroying sessions into a new function.
* Sync OpenBSD patchset 322:Tiago Cunha2009-09-11
| | | | | | Permit options such as status-bg to be configured using the entire 256 colour palette by setting "colour0" to "colour255".
* Sync OpenBSD patchset 321:Tiago Cunha2009-09-08
| | | | | | While the display-panes indicator is on screen, make the number keys select the pane with that index.
* Sync OpenBSD patchset 320:Tiago Cunha2009-09-07
| | | | | | Reference count clients and sessions rather than relying on a saved index for cmd-choose-*.
* Sync OpenBSD patchset 319:Tiago Cunha2009-09-07
| | | | | | | Tiny cleanup. ok nicm@
* Sync OpenBSD patchset 316:Tiago Cunha2009-09-05
| | | | | | | | Only redraw all clients once when the backoff timer expires rather than every second all the time. Reported by Simon Nicolussi.
* Sync OpenBSD patchset 314:Tiago Cunha2009-09-04
| | | | | Tell the user when sleeping due to password backoff.
* When shutting down the server, expect clients to be polite and exit when askedNicholas Marriott2009-09-02
| | | | | with the right message.
* Sync OpenBSD patchset 302:Tiago Cunha2009-08-31
| | | | | | | Add a new display-panes command, with two options (display-panes-colour and display-panes-time), which displays a visual indication of the number of each pane.
* Sync OpenBSD patchset 300:Tiago Cunha2009-08-31
| | | | | | Don't call tty_free unless the client is a terminal, otherwise tty_init hasn't been called and it may end up doing close(0). From Kalle Olavi Niemitalo.
* Sync OpenBSD patchset 290:Tiago Cunha2009-08-24
| | | | | | | When using source-file, run the commands in the context of the source-file command rather than with no context. This makes things like attach work from a file.
* Sync OpenBSD patchset 274:Tiago Cunha2009-08-20
| | | | | Whoops, getting the comparison the right way round is usually recommended.
* Sync OpenBSD patchset 272:Tiago Cunha2009-08-20
| | | | | | | options_get_number() is relatively expensive and a check for dead panes happens a lot more often than actually finding one, so instead of getting the option for every check, get it for every dead window found.
* Didn't mean to commit this stuff.Nicholas Marriott2009-08-19
|
* This is a better fix for OS X stupidity.Nicholas Marriott2009-08-19
|
* Sync OpenBSD patchset 263:Tiago Cunha2009-08-16
| | | | | | Reset attributes as well as scroll region before poll(2) and add a big comment explaining why.
* Sync OpenBSD patchset 247:Tiago Cunha2009-08-14
| | | | | | | | Initialise log_fd to -1, prevents spurious disconnection of the client when it ends up as fd 0 (likely if the server is started with "tmux start"). Also add some extra debugging messages to server.c.
* Sync OpenBSD patchset 244:Tiago Cunha2009-08-14
| | | | | | Drop the no_stop argument to tty_close and tty_free in favour of a flag in the tty struct.
* Sync OpenBSD patchset 243:Tiago Cunha2009-08-14
| | | | | | | | | | | | | | | | | | | Switch tmux to use imsg. This is the last major change to make the client-server protocol more resilient and make the protocol versioning work properly. In future, the only things requiring a protocol version bump will be changes in the message structs, and (when both client and server have this change) mixing different versions should nicely report an error message. As a side effect this also makes the code tidier, fixes a problem with the way errors reported during server startup were handled, and supports fd passing (which will be used in future). Looked over by eric@, thanks. Please note that mixing a client with this change with an older server or vice versa may cause tmux to crash or hang - tmux should be completely exited before upgrading.
* Sync OpenBSD patchset 240:Tiago Cunha2009-08-10
| | | | | | | | Reset the attributes after drawing all or part of the screen, and reset the region before poll(2). This reduces (but does not eliminate) the chance of the attributes not being normal if tmux is disconnected without warning (ssh ~., reboot from inside, etc).
* Sync OpenBSD patchset 225:Tiago Cunha2009-08-09
| | | | | | | | | | | | | If there is an error in the configuration file, don't just exit(1) as this can cause the client to hang. Instead, send the error message, then mark the client as bad and start a normal shutdown so the server exits once the error is written. This also allows some code duplicating daemon(3) to be trimmed and logging to begin earlier. Prompted by Theo noticing the behaviour on error wasn't documented.
* Sync OpenBSD patchset 192:Tiago Cunha2009-07-28
| | | | | | | | Next step towards customisable mode keys: build each default table of keys into a named tree on start and use that for lookups. Also add command to string translation tables and modify list-keys to show the mode key bindings (new -t argument).
* Sync OpenBSD patchset 175:Tiago Cunha2009-07-25
| | | | | | | Permit commands to be bound to key presses without the prefix key first. The new -n flag to bind-key and unbind-key sets or removes these bindings, and list-key shows them in []s.
* Sync OpenBSD patchset 155:Tiago Cunha2009-07-22
| | | | | | Make some functions which return unused values void (mostly found by lint) and tweak a redundant expression in window_pane_set_mode.
* Sync OpenBSD patchset 148:Tiago Cunha2009-07-20
| | | | | | Display the number of failed password attempts (if any) when the server is locked. From Tom Doherty.
* Sync OpenBSD patchset 142:Tiago Cunha2009-07-20
| | | | | | | | | | | | | | | | | | | | | | | | Each window now has a tree of layout cells associated with it. In this tree, each node is either a horizontal or vertical cell containing a list of other cells running from left-to-right or top-to-bottom, or a leaf cell which is associated with a pane. The major functional changes are: - panes may now be split arbitrarily both horizontally (splitw -h, C-b %) and vertically (splitw -v, C-b "); - panes may be resized both horizontally and vertically (resizep -L/-R/-U/-D, bound to C-b left/right/up/down and C-b M-left/right/up/down); - layouts are now applied and then may be modified by resizing or splitting panes, rather than being fixed and reapplied when the window is resized or panes are added; - manual-vertical layout is no longer necessary, and active-only layout is gone (but may return in future); - the main-pane layouts now reduce the size of the main pane to fit all panes if possible. Thanks to all who tested.
* Add three new session options: visual-activity, visual-bell, visual-content.Tiago Cunha2009-07-19
| | | | | | | | | | If these are enabled (and the monitor-activity, bell-action and monitor-content options are configurated appropriately), when activity, a bell, or content is detected, a message is shown. Also tidy up the bell/activity/content code in server.c slightly and fix a couple of errors.
* Instead of faking up a status line in status_redraw, use the same code toNicholas Marriott2009-07-15
| | | | | redraw it as to draw the entire screen, just skip all lines but the last.
* Add a "back to indentation" key in copy mode to move the cursor to the firstNicholas Marriott2009-07-14
| | | | | | non-whitespace character. ^ with vi and M-m with emacs key bindings. Another from Kalle Olavi Niemitalo, thanks.
* If it exist, load a system-wide configuration file /etc/tmux.conf before anyNicholas Marriott2009-07-14
| | | | | user-specified one.