| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
redraw the entire window. Also add a flag to skip updating the window any
further if it is scheduled to be redrawn. This has the effect of batching
multiple redraws together.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
an arbitrary width and height (0 for the default unlimited). This is neat for
emacs which doesn't have a sensible way to force hard wrapping at 80
columns. Also, don't try to be clever and use clr_eol when redrawing the
whole screen, it causes trouble since the redraw functions are used to draw
the blank areas too.
|
| |
|
| |
|
| |
|
|
|
|
| |
command (with some helper functions), rather than the top-level. This changes the action command syntax so that -s and -c must be after the command rather than before.
|
| |
|
| |
|
|
|
|
| |
current state (since it copies from screen).
|
| |
|
| |
|