| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
| |
There is no point setting the scroll region up for line feeds unless scrolling
is actually going to happen, so don't.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Be less aggressive about turning the cursor off, only explicitly turn it off
when tmux is redrawing, otherwise leave in the state set by the application.
|
|
|
|
|
|
|
|
|
| |
Support -c like sh(1) to execute a command, useful when tmux is a login
shell. Suggested by halex@.
This includes another protocol version increase (the last for now) so again
restart the tmux server before upgrading.
|
|
|
|
|
|
| |
Don't die if the client is detaching (the tty has been closed) after waking up
from locking.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the internal tmux locking and instead detach each client and run the
command specified by a new option "lock-command" (by default "lock -np") in
each client.
This means each terminal has to be unlocked individually but simplifies the
code and allows the system password to be used to unlock.
Note that the set-password command is gone, so it will need to be removed from
configuration files, and the -U command line flag has been removed.
This is the third protocol version change so again it is best to stop the tmux
server before upgrading.
|
|
|
|
|
|
|
|
|
| |
Trim some code by moving the ioctl(TIOCGWINSZ) after SIGWINCH from the client
into the server.
This is another (the second of four) protocol version changes coming this
morning, so again the server should be killed before upgrading.
|
|
|
|
|
|
|
|
|
|
|
| |
Don't attempt to open() the tty path, rely on the client sending its stdin fd
with imsg and fatal if it doesn't, then set the FD_CLOEXEC flag in tty_init
instead of tty_open to prevent them leaking into child processes if any are
created between the two calls.
This bumps the protocol version, so the tmux server should be killed before
upgrading.
|
|
|
|
|
|
| |
Be more careful about what flags are cleared when opening the terminal,
otherwise the opened/started flags are cleared and the terminal never released.
|
|
|
|
|
|
| |
Permit options such as status-bg to be configured using the entire 256 colour
palette by setting "colour0" to "colour255".
|
|
|
|
|
|
|
| |
Add a new display-panes command, with two options (display-panes-colour and
display-panes-time), which displays a visual indication of the number of each
pane.
|
|
|
|
|
| |
Emulate dch/dch1 if missing by redrawing the entire line.
|
| |
|
|
|
|
|
|
|
| |
Send SGR0 when initialising the screen. Fixes problems on terminals with BCE
(like putty) if the background colours is non-default when tmux starts. May
also fix problems when resuming a suspended tmux.
|
|
|
|
|
|
|
|
|
| |
A tty context must not be modified as it may be reused to update multiple
clients, so make it const.
Also fix an actual modification which caused a hang when a session was
connected to multiple terminals at least one of which was missing ich/ich1.
|
|
|
|
|
|
|
|
| |
Initialise log_fd to -1, prevents spurious disconnection of the client when it
ends up as fd 0 (likely if the server is started with "tmux start").
Also add some extra debugging messages to server.c.
|
|
|
|
|
|
|
|
|
|
|
| |
Have the client pass its stdin fd to the server when identifying itself and
have the server use that rather than reopening the tty. If the fd isn't given,
use the old behaviour (so no need for a version change).
This allows tmux to be used as the shell, so also change so that when working
out the command to execute if default-command is empty (the default), tmux will
try not execute itself.
|
|
|
|
|
| |
Add a TTY_OPENED flag and tidy a little.
|
|
|
|
|
|
| |
Drop the no_stop argument to tty_close and tty_free in favour of a flag in the
tty struct.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change the way the grid is stored, previously it was:
- a two-dimensional array of cells;
- a two-dimensional array of utf8 data;
- an array of line lengths.
Now it is a single array of a new struct grid_line each of which represents a
line and contains the length and an array of cells and an array of utf8 data.
This will make it easier to add additional per-line members, such as flags.
|
|
|
|
|
|
|
|
|
|
| |
If colours are not supported by the terminal, try to emulate a coloured
background by setting or clearing the reverse attribute.
This makes a few applications which don't use the reverse attribute themselves
a little happier, and allows the status, message and mode options to have
default attributes and fg/bg options that work as expected when set as reverse.
|
|
|
|
|
|
|
|
|
|
| |
Add a terminal-overrides session option allowing individual terminfo(5) entries
to be overridden. The 88col/256col checks are now moved into the default
setting and out of the code.
Also remove a couple of old workarounds for xterm and rxvt which are no longer
necessary (tmux can emulate them if missing).
|
|
|
|
|
| |
Draw UTF-8 characters under the selection correctly.
|
|
|
|
|
|
| |
tty_write is relatively short and the only function left in tty-write.c so
move it into tty.c.
|
|
|
|
|
|
| |
More tty code tidying: move the saved cursor/region position (from before the
screen was updated) out of struct screen and into struct tty_ctx.
|
|
|
|
|
|
|
| |
enum tty_cmd is only used as an index into the array of command function
pointers, so remove it and use the function pointers directly to represent
themselves.
|
|
|
|
|
|
| |
There are relatively few arguments to tty_cmd_* functions now, so tidy them up
by using a struct rather than hiding everything with varargs.
|
|
|
|
|
|
| |
tty_cmd_raw is only used once, for raw UTF-8 output, so rename it to
tty_cmd_utf8character and eliminate the size argument.
|
|
|
|
|
|
| |
smcup to the first and rmcup to the last sequences output to the terminal. This
allows tmux to use the alternate screen (smcup/rmcup) when available.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
otherwise colour 8 isn't reset.
|
| |
|
| |
|
|
|
|
|
| |
duplicate. Found by lint.
|
| |
|
|
|
|
|
|
|
| |
normal eight-bit output is wrong, separate it into a different function. Fixes
spacing when mixing UTF-8 with some escape sequences, notably the way w3m does
it.
|
|
|
|
|
|
| |
first cursor test in vttest (in ports) to pass; it still shops a few more
problems though.
|
|
|
|
|
| |
to the cursor is cy not cy - 1, and the current cursor cell should be included.
|
|
|
|
| |
further.
|
|
|
|
| |
character and seeing how much the cursor moves. Currently tries to figure out if this works by some stupid checks on the terminal, these need to be rethought. Also might be better using a width 1 character rather than width 2.
|
|
|
|
| |
Should fix terminals which use this to detect line breaks.
|
| |
|
|
|
|
| |
region before cursor.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
the entire window.
|