| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
|\|
| |
| |
| | |
Sync from OpenBSD.
|
| | |
|
|\|
| |
| |
| |
| |
| |
| |
| |
| | |
Sync from OpenBSD.
* obsd-master:
Add halfpage commands to mode command string table (missed by accident), from Thomas Adam.
Clarify some points about config files, notably that they are only read at server start. From Thomas Adam.
Use a utility function for common code to show errors in config file, from Thomas Adam.
|
| |
| |
| |
| | |
from Thomas Adam.
|
| | |
|
| |
| |
| |
| | |
ongoing fixes to other daemons by Theo.
|
| |
| |
| |
| |
| | |
when running a bunch of tmux from cron at the same time. Based on a diff
from Tim Ruehsen.
|
| |
| |
| |
| |
| | |
put it in the TMUX_PANE environment variable and accept it as a
target. Suggested by and with testing and tweaks from Ben Boeckel.
|
| | |
|
| |
| |
| |
| |
| | |
flag on the stdio file descriptors before closing them (fixes things
like "tmux ls && cat").
|
| |
| |
| |
| |
| |
| |
| | |
this screws up the choice of most-recently-used. Instead, break the time
update into a little function and do it when the session is attached.
Pointed out by joshe@.
|
| |
| |
| |
| |
| |
| |
| | |
much more convenient and also simplifies lot of code. This renders
copy-buffer useless and makes buffer-limit now a server option.
By Tiago Cunha.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
and allows them to easily be shown sorted in various lists
(list-sessions/choose-sessions).
Keep a session index which is used in a couple of places internally but
make it an ever-increasing number rather than filling in gaps with new
sessions.
|
| |
| |
| |
| | |
(instead of two in tmux.c and client.c).
|
| |
| |
| |
| | |
closefrom() before exec.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- server option "exit-unattached" makes the server exit when no clients
are attached, even if sessions are present;
- session option "destroy-unattached" destroys a session once no clients
are attached to it.
These are useful for preventing tmux remaining in the background where
it is undesirable and when using tmux as a login shell to keep a limit
on new sessions.
|
| |
| |
| |
| | |
attached sessions, rather than replacing them.
|
| |
| |
| |
| |
| | |
directly instead - calling libevent functions after fork() w/o
event_reinit() is a bad idea, even if in this case it was harmless.
|
| |
| |
| |
| |
| |
| | |
with strange devices and (b) since there appears to be a bull in the
poll code in libevent as well...
requested by nicm who is away
|
| |
| |
| |
| |
| |
| |
| |
| | |
devices.
An upcoming fix for some problems with the client stdout/stderr handling
relies on it working, so make tmux force libevent to use poll(2) via
EVENT_NOKQUEUE, until we have fixed kqueue.
|
| |
| |
| |
| |
| | |
permissions. This allows hardlinks to the sockets to be used more
easily.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
and reset SIGCHLD after fork to fix problems with some shells. From
Romain Francois.
|
| |
| |
| |
| | |
Micah Cowan.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
collecting all the errors, then start with the active window in more mode
displaying them.
|
| | |
|
| |
| |
| |
| |
| | |
time now I've configured emacs to make them displayed in really annoying
colours...
|
| |
| |
| |
| | |
normally.
|
| |
| |
| |
| | |
the rest to reduce lint output.
|
| | |
|
| |
| |
| |
| | |
the error callback).
|
| |
| |
| |
| | |
attached, rather than every event loop.
|
| | |
|
| |
| |
| |
| | |
only wake up when an event happens.
|
| |
| |
| |
| | |
be done better but one every second is better than once every 50 ms.
|
| |
| |
| |
| | |
to it and call it after the event triggers or after a imsg is added.
|
| | |
|
| |
| |
| |
| |
| | |
The evbuffer API is very similar to the existing tmux buffer API so this was
remarkably painless. Not many possible ways to do it, I suppose.
|
| |
| |
| |
| | |
set up events.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This moves the client-side loops are pretty much fully over to event-based only
(tmux.c and client.c) but server-side (server.c and friends) treats libevent as
a sort of clever poll, waking up after every event to run various things.
Moving the server stuff over to bufferevents and timers and so on will come
later.
|
| |
| |
| |
| |
| |
| |
| |
| | |
meaningful names.
Also, remove the code to try and update the session activity time for the
command client when a command message is received as is pointless because it
des not have a session.
|
| | |
|
| | |
|
| | |
|