| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| | |
attached, rather than every event loop.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
complicated because of escape input, but in that case instead of processing a
key immediately, schedule a timer and reprocess the bufer when it expires.
This currently assumes that keys will be atomic (ie that if eg F1 is pressed
the entire sequence is present in the buffer). This is usually but not always
true, a change in the tree format so it can differentiate potential (partial)
key sequences will happens soon and will allow this to be fixed.
|
| | |
|
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
client lookup to pick the most recently used rather than the most recently
created - this is much more useful when used interactively and (because the
activity time is set at creation) should have no effect on source-file.
Based on a problem reported by Jan Johansson.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
avoid a use-after-free (the callback is used twice, once for the client itself
and once for the tty). Fixes crashes seen by Han Boetes.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Irritatingly, although op can be used to tell if a terminal supports default
colours, it can't be used to set them because in some terminfo descriptions it
resets attributes as a side-effect (acts as sgr0) and in others it doesn't, so
it is not possible to determine reliably what the terminal state will be
afterwards. So if AX is missing and op is present, tmux just sends sgr0.
Anyone using -d for a terminal who finds they actually needed it can replace it
using terminal-overrides, but please let me know as it is probably an omission
from terminfo.
|
| | |
|
| |
| |
| |
| | |
presses will not be acted on.
|
| |
| |
| |
| | |
escape timers and properly reset the cursor.
|
|
|
|
|
|
|
|
|
| |
files from server.c (merging server-msg.c into the client file) and rather than
iterating over each set after poll(), allow a callback to be specified when the
fd is added and just walk once over the returned pollfds calling each callback
where needed.
More to come, getting this in so it is tested.
|
|
|
|
| |
suspended.
|
|
|
|
|
|
|
|
| |
Make command exec functions return an enum rather than -1/0/1 values and
add a new value to mean "leave client running but don't attach" to fix
problems with using some commands in a command sequence. Most of the
work by Thomas Adam, problem reported by "jspenguin" on SF bug 3535531.
|
|
|
|
|
| |
xfree is not particularly helpful, remove it. From Thomas Adam.
|
|
|
|
|
| |
Remove a couple of unused variables from redbrain at gcc dot gnu dot org.
|
|
|
|
|
|
|
|
|
| |
Add a skeleton mode to tmux (called "control mode") that let's tmux
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.
|
|
|
|
|
|
| |
Store client in tty struct directly instead of using a callback function
pointer.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of passing stdin/stdout/stderr file descriptors over imsg and
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.
|
|
|
|
|
| |
Add a helper function to open the terminal for attach-/new-session.
|
|
|
|
|
|
| |
Stop accepting new clients for 1 second on EMFILE/ENFILE. Based on
ongoing fixes to other daemons by Theo.
|
|
|
|
|
|
| |
Need to call recalculate_sizes() when changing window with the mouse,
from marcel partap.
|
|
|
|
|
|
| |
Check event_initialized before event_del if event may not have been set
up; libevent2 complains about this. Reported by Moriyoshi Koizumi.
|
|
|
|
|
| |
Remove some bits leftover from unused backoff code.
|
|
|
|
|
|
| |
Do not change pane when changing window with mouse on status line,
pointed out by Romain Francoise.
|
|
|
|
|
|
| |
Add an option to move the status line to the top of the screen,
requested by many.
|
|
|
|
|
|
|
| |
Call bufferevent_free before closing file descriptor associated with it
or bugs in $EventMechanism on $OtherOS makes libevent get it's knickers
in a twist. From Dylan Alex Simon.
|
|
|
|
|
| |
Remove unused backoff code that doesn't do any good.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Drop the ability to have a list of keys in the prefix in favour of two
separate options, prefix and prefix2. This simplifies the code and gets
rid the data options type which was only used for this one option.
Also add a -2 flag to send-prefix to send the secondary prefix key,
fixing a cause of minor irritation.
People who want three prefix keys are out of luck :-).
|
|
|
|
|
|
|
| |
Fix so that when mouse-select-pane and mouse-select-window are both
enabled, clicking on the status line does not change the current
pane. From Romain Francoise.
|
|
|
|
|
| |
Fix a couple of memory leaks, from marcel partap.
|
|
|
|
|
|
|
|
| |
Do not continue to send data to suspended/locked clients or there will
be a huge rush of it after they are resumed/unlocked. The main output
path was fine but status line updates and the terminal state reset code
were missed.
|
|
|
|
|
|
|
| |
Support xterm(1) cursor colour change sequences through terminfo(5) Cc
(set) and Cr (reset) extensions. Originally by Sean Estabrooks, tweaked
by me and Ailin Nemui.
|
|
|
|
|
| |
Only select pane on click, not drag. From hsim at gmx.li.
|
|
|
|
|
|
| |
Add a new option, mouse-resize-pane. When on, panes may be resized by
dragging their borders. From hsim at gmx.li.
|
|
|
|
|
|
| |
Change window with mouse wheel over status line if mouse-select-window
is on, from marcel partap.
|
|
|
|
|
|
| |
Check if mouse-select-pane is ON not off when setting mouse flags,
reported by oga.
|
|
|
|
|
|
|
|
| |
When mode-mouse is on (it is off by default), automatically enter copy
mode when the mouse is dragged or the mouse wheel is used. Also exit
copy mode when the mouse wheel is scrolled off the bottom. Discussed
with and written by hsim at gmx dot li.
|
|
|
|
|
|
|
|
|
|
|
| |
|Date: 2011/04/18 20:49:05
|Author: nicm
|Branch: HEAD
|Tag: (none)
|Log:
|Add an option (mouse-select-window) which allows the mouse to be used by
|clicking on the status line, written by hsim at gmx dot li.
|
|
|
|
|
|
|
|
|
|
|
| |
|Date: 2011/03/29 20:30:16
|Author: nicm
|Branch: HEAD
|Tag: (none)
|Log:
|Change -t on display-message to be target-pane for the #[A-Z]
|replacements and add -c as target-client.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Simplify the way jobs work and drop the persist type, so all jobs are
fire-and-forget.
Status jobs now managed with two trees of output (new and old), rather
than storing the output in the jobs themselves. When the status line is
processed any jobs which don't appear in the new tree are started and
the output from the old tree displayed. When a job finishes it updates
the new tree with its output and that is used for any subsequent
redraws. When the status interval expires, the new tree is moved to the
old so that all jobs are run again.
This fixes the "#(echo %H:%M:%S)" problem which would lead to thousands
of identical persistent jobs and high memory use (this can still be
achieved by adding "sleep 30" but that is much less likely to happen by
accident).
|
|
|
|
|
|
| |
Only set a mouse mode for mouse-select-pane if none already set by the
mode (any will do).
|
|
|
|
|
|
|
| |
Move all calls to fcntl(...O_NONBLOCK) into a function and clear the
flag on the stdio file descriptors before closing them (fixes things
like "tmux ls && cat").
|