| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
| |
When backspace is received at the beginning of a line and the previous line was
wrapped, move the cursor back up to the end of the previous line.
Another one of the forgotten persons requested this quite a while ago (I need
to start noting names on todo items...) when it was quite hard to
implement. Now it is easy and I don't see it can do any harm, so hey presto...
|
|
|
|
|
|
|
| |
Don't run through the column unchanged case if the row was unchanged but there
were no suitable optimisations, instead make it an else to fall through to
absolute addressing.
|
|
|
|
|
|
| |
If the vertical cursor movement crosses the scroll region, CUU and CUD
shouldn't be used even if VPA isn't present - in that case CUP should be used.
|
|
|
|
|
| |
Wrap a couple of long lines.
|
|
|
|
|
|
| |
Use absolute movement if right at the end of the line as it isn't a reliable
place to move from relatively.
|
|
|
|
|
|
|
| |
Use relative cursor movement instead of absolute when possible and when
supported by the terminal to reduce the size of the output data (generally
about 10-20%).
|
|
|
|
|
|
| |
Permit attributes to be turned off in #[] by prefixing with "no", for example
"noblink".
|
|
|
|
|
| |
Similarly add a tty_cursor_pane function to tidy up most of the calls.
|
|
|
|
|
| |
_absolute is redundant, just use tty_region.
|
|
|
|
|
|
| |
Cleanup: use two functions for region setting, one for absolute and one inside
pane.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Like linefeed, don't set the scroll region for reverse index unless it will be
needed.
While here, also tidy up a couple of long lines and remove an extraneous blank.
|
|
|
|
|
| |
punctuation fix;
|
|
|
|
|
|
|
|
|
| |
Set the current window pointer to NULL when killing a winlink that is to be
replaced with link-window -k. This prevents it being pushed onto the last
window stack and causing a use-after-free.
Only took me an hour to find this :-/...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a pipe-pane command to allow a pane to be piped to a shell command, for
example:
pipe-pane 'cat >~/out'
No arguments stops outputing and closes the pipe; the -o flag toggles a pipe
and on and off (useful for key bindings).
Suggested by espie@.
|
|
|
|
|
| |
Convert if-shell over to the background job framework as well.
|
|
|
|
|
| |
Remove a debugging leftover and add copyright.
|
|
|
|
|
| |
Switch run-shell over to queue the command in the background like #().
|
|
|
|
|
|
|
| |
There isn't much point in having a free function if it isn't used.
Also allow a NULL tree.
|
|
|
|
|
|
| |
Collect status from dead jobs and don't invoke the callback until both
all input (the socket is closed) and status is available.
|
|
|
|
|
|
|
|
|
| |
Clean up by introducing a wrapper struct for mouse clicks rather than passing
three u_chars around.
As a side-effect this fixes incorrectly rejecting high cursor positions
(because it was comparing them as signed char), reported by Tom Doherty.
|
|
|
|
|
|
| |
Braek some bits out of server_fill_client() that aren't really related to
polling into their own function.
|
|
|
|
|
|
| |
Put all jobs on a global all_jobs list and use that in server.c instead of
running through all the clients.
|
|
|
|
|
| |
-scroll mode which is dead.
|
| |
|
|
|
|
|
| |
Split list-panes off from list-windows.
|
|
|
|
|
| |
Accept key and mouse input for keys in zombified windows if they are in a mode..
|
|
|
|
|
|
| |
When a window is zombified and automatic-rename is on, append [dead] to the
name.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than running status-left, status-right and window title #() with popen
immediately every redraw, queue them up and run them in the background,
starting each once every status-interval. The actual status line uses the
output from the last run.
This brings several advantages:
- tmux itself may be called from inside #() without causing the server to hang;
- likewise, sleep or similar doesn't cause the server to block;
- commands aren't run excessively often when redrawing;
- commands shared by status-left and status-right, or used multiple times, will
only be run once.
run-shell and if-shell still use system()/popen() but will be changed over to
use this too later.
|
| |
|
|
|
|
|
|
|
|
| |
New option, mouse-select-pane. If on, the mouse may be used to select the
current pane.
Suggested by sthen@ and also by someone else ages ago who I have forgotten.
|
|
|
|
|
|
| |
There is no point setting the scroll region up for line feeds unless scrolling
is actually going to happen, so don't.
|
|
|
|
|
|
|
|
|
|
| |
Add "grouped sessions" which have independent name, options, current window and
so on but where the linked windows are synchronized (ie creating, killing
windows and so on are mirrored between the sessions). A grouped session may be
created by passing -t to new-session.
Had this around for a while, tested by a couple of people.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Support for individual session idle time locking. May be enabled by turning off
the lock-server option (it is on by default). When this is off, each session
locks when it has been idle for the lock-after-time setting. When on, the
entire server locks when ALL sessions have been idle for their individual
lock-after-time settings.
This replaces one global-only option (lock-after-time) with another
(lock-server), but the default behaviour is usually preferable so there don't
seem to be many alternatives.
Diff/idea largely from Thomas Adam, tweaked by me.
|
|
|
|
|
|
|
|
|
| |
Instead of passing a struct pollfd ** around through various functions, build
them into a tree and then convert into a flat poll array before and after poll.
This adds a little code but should reduce annoying problems with ordering when
adding new things that also need to be polled.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The UTF-8 detection idea doesn't work and I am reasonably happy with the
current methods, so remove the (already #ifdef 0'd) code.
|