Age | Commit message (Collapse) | Author |
|
|
|
around, we can't use file descriptors for the working directory because
we will be unable to pass it to a privileged process to tell it where to
read or write files or spawn children. So move tmux back to using
strings for the current working directory. We try to check it exists
with access() when it is set but ultimately fall back to ~ if it fails
at time of use (or / if that fails too).
|
|
|
|
|
|
between server and client out into a separate internal API. This will
make it easier to add another process.
|
|
pledge doesn't let us pass directory file descriptors.
|
|
"sendfd" is dropped after first message from the server.
|
|
sizeof(struct sockaddr_un), so do the simple, portable thing
ok beck@ deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
client_pid from Thomas Adam.
|
|
name to all the pane pty names instead of comparing socket paths. This
means that "new -d" will work without unsetting $TMUX.
|
|
sobrado@.
|
|
|
|
|
|
|
|
very slow platforms) for the first daemon() child to still be running
when client_attached is set so we end up with a zombie. From J Raynor.
|
|
|
|
to using flock which actually works sensibly. Also always retry the lock
to fix a potential race, and add some extra logging.
|
|
ok nicm@
|
|
|
|
|
|
|
|
- Check for truncation when copying path.
- Don't need to use a temporary buffer in screen_set_title.
- Include strerror in output when connecting to server fails.
|
|
|
|
|
|
while and in fact it is less useful that using the client ttyname. So
don't bother and don't pass it from the client. If we need it in future
it is in c->environ.
|
|
months ago who didn't bother testing it. But it works for me anyway.
|
|
|
|
descriptors rather than strings.
- Each session still has a current working directory.
- New sessions still get their working directory from the client that
created them or its attached session if any.
- New windows are created by default in the session working directory.
- The -c flag to new, neww, splitw allows the working directory to be
overridden.
- The -c flag to attach let's the session working directory be changed.
- The default-path option has been removed.
To get the equivalent to default-path '.', do:
bind c neww -c $PWD
To get the equivalent of default-path '~', do:
bind c neww -c ~
This also changes the client identify protocol to be a set of messages rather
than one as well as some other changes that should make it easier to make
backwards-compatible protocol changes in future.
|
|
|
|
|
|
|
|
becoming ready.
|
|
to use it, extended from a diff from George Nachman.
|
|
the end, from George Nachman.
|
|
commands and allow a command to block execution of subsequent
commands. This allows run-shell and if-shell to be synchronous which has
been much requested.
Each client has a default command queue and commands are consumed one at
a time from it. A command may suspend execution from the queue by
returning CMD_RETURN_WAIT and then resume it by calling cmd_continue() -
for example run-shell does this from the callback that is fired after
the job is freed.
When the command queue becomes empty, command clients are automatically
exited (unless attaching). A callback is also fired - this is used for
nested commands in, for example, if-shell which can block execution of
the client's cmdq until a new cmdq becomes empty.
Also merge all the old error/info/print functions together and lose the
old curclient/cmdclient distinction - a cmdq is bound to one client (or
none if in the configuration file), this is a command client if
c->session is NULL otherwise an attached client.
|
|
|
|
sent to stdin before it is needed, which can be inconvenient (eg pasting
commands). Instead, start with stdin disabled and reuse MSG_STDIN from
server->client to mean that stdin should be enabled. Based on a diff
from Chris Johnsen.
|
|
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
|