| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
| |
New option, detach-on-destroy, to set what happens to a client when the session
it is attached to is destroyed. If on (the default), it is detached; if off, it
is switched to the most recently active session.
|
|
|
|
|
| |
Use server_destroy_session() for kill-session.
|
|
|
|
|
|
| |
Having a list of winlinks->alerts for each session is stupid, just store
the alert flags directly in the winlink itself.
|
|
|
|
|
|
|
|
| |
If remain-on-exit is set, both the error callback and a SIGCHLD could
destroy the same pane (because the first one doesn't remove it from the
list of panes), causing the pane bufferevent to be freed twice. So don't
free it if the fd has already been set to -1, from Romain Francoise.
|
| |
|
| |
|
|
|
|
|
|
| |
When a window is destroyed, remove all links to it from each session rather
than just the first. Reported by Robin Lee Powell.
|
|
|
|
|
|
| |
Options to set the colour of the pane borders, with different colours for the
active pane.
|
|
|
|
|
|
| |
Fix a couple of problems with grouped sessions reported by danh: redraw
properly and choose the correct last window after a window is killed.
|
|
|
|
|
|
|
| |
Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last
time now I've configured emacs to make them displayed in really annoying
colours...
|
|
|
|
|
|
| |
Remove a couple of unused arguments where possible, and add /* ARGSUSED */ to
the rest to reduce lint output.
|
|
|
|
|
| |
Destroy panes immediately rather than checking them all every loop.
|
|
|
|
|
| |
Use timeout events for the identify and message timers.
|
|
|
|
|
|
| |
Don't reenlist the client imsg event every loop, instead have a small function
to it and call it after the event triggers or after a imsg is added.
|
|
|
|
|
|
|
|
|
| |
Set the current window pointer to NULL when killing a winlink that is to be
replaced with link-window -k. This prevents it being pushed onto the last
window stack and causing a use-after-free.
Only took me an hour to find this :-/...
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Check for already locked/suspended clients in server_lock_client rather than
its callers.
|
|
|
|
|
|
| |
New lock-client and lock-session commands to lock an individual client or all
clients attached to a session respectively.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Move some common and untidy code for window link/unlink into generic functions
instead of duplicating it in move/link window..
|
|
|
|
|
| |
Regularise some fatal messages.
|
|
|
|
|
| |
Tidy some common code for destroying sessions into a new function.
|
|
|
|
|
|
|
|
| |
Only redraw all clients once when the backoff timer expires rather than every
second all the time.
Reported by Simon Nicolussi.
|
|
|
|
|
|
| |
308.
- While there, remove some duplicate code from the compat header file.
|
|
|
|
|
|
| |
When incorrect passwords are entered, behave similarly to login(1) and backoff
for a bit. Based on a diff from martynas@.
|
|
|
|
|
|
|
| |
Use "Password:" with no space for password prompts and don't display a *s for
the password, like pretty much everything else. From martynas@ with minor
tweaks by me.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Infrastructure and commands to manage the environment for processes started
within tmux.
There is a global environment, copied from the external environment when the
server is started and each session has an (initially empty) session
environment which overrides it.
New commands set-environment and show-environment manipulate or display the
environments.
A new session option, update-environment, is a space-separated list of
variables which are updated from the external environment into the session
environment every time a new session is created - the default is DISPLAY.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Rename struct hdrtype to msgtype which is a better name and can be used even
when struct hdr disappears.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make all messages sent between the client and server fixed size.
This is the first of two changes to make the protocol more resilient and less
sensitive to other changes in the code, particularly with commands. The client
now packs argv into a buffer and sends it to the server for parsing, rather
than doing it itself and sending the parsed command data.
As a side-effect this also removes a lot of now-unused command marshalling
code.
Mixing a server without this change and a client with or vice versa will cause
tmux to hang or crash, please ensure that tmux is entirely killed before
upgrading.
|
|
|
|
|
|
| |
Display the number of failed password attempts (if any) when the server is
locked. From Tom Doherty.
|
|
|
|
|
| |
window instead of being an error.
|
|
|
|
|
|
| |
called to free data, have a separate free callback and call it from the mode
cleanup code.
|
| |
|
|
|
|
|
|
| |
still present, so add a separate prompt free callback and make the _clear
function responsible for calling it if necessary (rather than the individual
|
| |
|
|
|
|
|
| |
windows.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
prompt (such as the one issuing the unlock request).
This caused the server to die if the wrong password was entered when unlocking
from the command line with -U (nasty).
|
|
|
|
|
|
|
|
| |
prompt (such as the one issuing the unlock request).
This caused the server to die if the wrong password was entered when unlocking
from the command line with -U (nasty).
|
| |
|
| |
|
|
|
|
|
| |
duplicate. Found by lint.
|
| |
|
| |
|
|
|
|
|
|
| |
accept after only one key. Use this so don't need to press enter after y/n for
confirm-before.
|