| 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.
|
|
|
|
|
| |
Tidy function a little by using a temporary variable.
|
|
|
|
|
|
|
|
|
|
|
|
| |
There aren't many client message types or code to handle them so get rid of
the lookup table and use a switch, merge the tiny handler functions into it,
and move the whole lot to client.c.
Also change client_msg_dispatch to consume as many messages as possible and
move the call to it to the right place so it checks for signals afterwards.
Prompted by suggestions from eric@.
|
|
|
|
|
|
| |
Tell the server when the client gets SIGTERM so it can clean up the terminal
properly, rather than just exiting.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
None of the server message functions return anything but 0, so make them all
void.
Also remove a leftover variable in client.c.
|
|
|
|
|
|
| |
Tidy client message return slightly: convert flags into an enum, and merge
error string into struct client_ctx as well.
|
|
|
|
|
|
| |
Pass a set of flags into client_init rather than just a start_server
variable. Only one flag now but more to come later.
|
| |
|
|
|
|
|
|
| |
done for UTF-8, limit to the maximum length correctly when printing, and always
print a space even if the left string is longer than the width available.
|
| |
|
| |
|
|
|
|
|
| |
easier to match client to server in ps/pgrep when using several servers.
|
|
|
|
|
|
|
|
|
| |
script which must be run before building.
Still two makefiles but they are a hell of a lot simpler.
HAVE_* also will make it easier to move to $buildsystem if necessary later.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
properly and print a nicer message. Same effect though :-)
|
|
|
|
|
|
|
|
| |
server rather than playing silly games to get them synchronised before doing
anything.
Change attach-session to start the server.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
specified with -f. Just a list of tmux commands executed when the server is started and before and any session/window is created.
|
|
|
|
| |
and prevents it being split. This is the only place this happens so remove it from todo.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
places.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|