Nicholas Marriott
daa26079ee
Always move the cursor position on !xenl terminals, since there is no invisible
...
last cursor position.
Also nuke an unused variable.
2009-10-17 08:35:38 +00:00
Nicholas Marriott
43d62c1ae3
Instead of having a complicated check to see if the cursor is in the last
...
position to avoid an explicit wrap, actually move it there.
Some UTF-8 fixes to come.
2009-10-17 08:24:46 +00:00
Nicholas Marriott
70355021d8
When checking whether the region will scroll and the cursor position is thus
...
unsuitable for using CUD/CUU, check the current cursor position not the target
position.
2009-10-16 19:09:40 +00:00
Nicholas Marriott
5d78371628
Don't try to use \n across scroll region when doing \r\n either.
2009-10-13 08:37:15 +00:00
Nicholas Marriott
4dcb5040a0
Instead of using something sort of similar for both newline checks, use
...
something the same. Doesn't fix the bug I'm looking for though :-/.
2009-10-13 00:44:16 +00:00
Nicholas Marriott
d7626cd9d7
When drawing lines that have wrapped naturally, don't force a newline but
...
permit them to wrap naturally again. This allows terminals that use this to
guess where lines start and end for eg mouse selecting (like xterm) to work
correctly.
This was another long-standing issue raised by several people over the last
while.
Thanks to martynas@ for much testing. This was not trivial to get right so
bringing it in for wider testing and adn to fix any further glitches in-tree.
2009-10-12 17:19:47 +00:00
Nicholas Marriott
693b3d03e6
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.
2009-10-12 16:41:02 +00:00
Nicholas Marriott
eb9826f65d
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.
2009-10-12 16:37:43 +00:00
Nicholas Marriott
0aab5811ca
Use absolute movement if right at the end of the line as it isn't a reliable
...
place to move from relatively.
2009-10-12 14:54:19 +00:00
Nicholas Marriott
687c4a9fab
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%).
2009-10-12 13:01:18 +00:00
Nicholas Marriott
762459954f
Similarly add a tty_cursor_pane function to tidy up most of the calls.
2009-10-12 09:29:58 +00:00
Nicholas Marriott
972a6f5656
_absolute is redundant, just use tty_region.
2009-10-12 09:16:59 +00:00
Nicholas Marriott
f05b32f7ad
Cleanup: use two functions for region setting, one for absolute and one inside
...
pane.
2009-10-12 09:09:35 +00:00
Nicholas Marriott
0a2a354499
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.
2009-10-11 22:35:10 +00:00
Nicholas Marriott
3a20a05a49
There is no point setting the scroll region up for line feeds unless scrolling
...
is actually going to happen, so don't.
2009-10-10 10:36:46 +00:00
Nicholas Marriott
bf38a311da
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.
2009-10-09 07:33:12 +00:00
Nicholas Marriott
d528184836
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.
2009-10-09 07:23:28 +00:00
Nicholas Marriott
9200a0be7a
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.
2009-09-23 12:03:30 +00:00
Nicholas Marriott
631a618238
Don't die if the client is detaching (the tty has been closed) after waking up
...
from locking.
2009-09-23 07:25:31 +00:00
Nicholas Marriott
b01dcd7971
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.
2009-09-23 06:18:47 +00:00
Nicholas Marriott
962fa20b36
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.
2009-09-23 06:12:58 +00:00
Nicholas Marriott
64caf59e84
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.
2009-09-23 06:05:02 +00:00
Nicholas Marriott
0a9005678d
Be more careful about what flags are cleared when opening the terminal,
...
otherwise the opened/started flags are cleared and the terminal never released.
2009-09-22 19:11:52 +00:00
Nicholas Marriott
372a8cb1d9
Permit options such as status-bg to be configured using the entire 256 colour
...
palette by setting "colour0" to "colour255".
2009-09-10 17:16:24 +00:00
Nicholas Marriott
04319964b9
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.
2009-08-31 20:46:19 +00:00
Nicholas Marriott
926b52b600
Emulate dch/dch1 if missing by redrawing the entire line.
2009-08-21 12:29:59 +00:00
Nicholas Marriott
5cf994856f
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.
2009-08-14 08:53:52 +00:00
Nicholas Marriott
bc497dbb92
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.
2009-08-12 09:41:59 +00:00
Nicholas Marriott
e0a19abb99
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.
2009-08-11 22:34:17 +00:00
Nicholas Marriott
4310282a4c
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.
2009-08-11 21:28:11 +00:00
Nicholas Marriott
4ec8ade11c
Add a TTY_OPENED flag and tidy a little.
2009-08-11 20:29:04 +00:00
Nicholas Marriott
ff65e37545
Drop the no_stop argument to tty_close and tty_free in favour of a flag in the
...
tty struct.
2009-08-11 19:32:25 +00:00
Nicholas Marriott
5e01b6d663
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 containts 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.
2009-08-08 13:29:27 +00:00
Nicholas Marriott
bcddddf98d
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.
2009-08-05 16:26:38 +00:00
Nicholas Marriott
1673735f02
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).
2009-08-03 14:10:54 +00:00
Nicholas Marriott
fc65da1eed
Draw UTF-8 characters under the selection correctly.
2009-07-27 11:33:21 +00:00
Nicholas Marriott
dd4a3b24fc
tty_write is relatively short and the only function left in tty-write.c so move
...
it into tty.c.
2009-07-22 20:56:58 +00:00
Nicholas Marriott
ddad0be5f7
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.
2009-07-22 20:53:38 +00:00
Nicholas Marriott
2ec2837daa
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.
2009-07-22 18:02:23 +00:00
Nicholas Marriott
6a309c53a8
There are relatively few arguments to tty_cmd_* functions now, so tidy them up
...
by using a struct rather than hiding everything with varargs.
2009-07-22 16:45:31 +00:00
Nicholas Marriott
5bd72ec629
tty_cmd_raw is only used once, for raw UTF-8 output, so rename it to
...
tty_cmd_utf8character and eliminate the size argument.
2009-07-22 15:55:32 +00:00
Nicholas Marriott
4a6d62e401
Don't send initialisation strings is1/2/3 (barely anything else does) and move
...
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.
2009-07-10 07:11:59 +00:00
Nicholas Marriott
474fdebb7a
Handle empty or unset TERM correctly; also fix a fatal() message while here.
2009-07-07 17:24:32 +00:00
Nicholas Marriott
2660692fb1
Copy the 256-colour flag into the tty saved cell as well as the actual colour,
...
otherwise colour 8 isn't reset properly.
2009-06-27 12:57:14 +00:00
Nicholas Marriott
1675ddb4d1
Miscellaneous unused functions, including one which was basically a
...
duplicate. Found by lint.
2009-06-25 06:15:04 +00:00
Nicholas Marriott
83078bdcbc
Unused variables. Found by lint, no binary change.
2009-06-25 05:56:44 +00:00
Nicholas Marriott
2de599ac0e
Trying to predict the cursor position for UTF-8 output in the same way as for
...
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.
2009-06-24 16:01:02 +00:00
Nicholas Marriott
52ec9b9ec4
Implement the DEC alignment test. With the last change this is enough for the
...
first cursor test in vttest (in ports) to pass; it still shops a few more
problems though.
2009-06-03 23:30:40 +00:00
Nicholas Marriott
ebe07c2726
Fix some miscalculations when clearing to start of screen: the number of lines
...
to the cursor is cy not cy - 1, and the current cursor cell should be included.
2009-06-03 23:26:56 +00:00
Nicholas Marriott
3f76a973ee
Recent code to try and detect if a terminal supports UTF-8 by printing to it
...
fails spectacularly on (at least) sparc64, so disable it for now. Thanks to
naddy and Josh Elsasser for help and testing.
2009-06-02 23:39:32 +00:00
Nicholas Marriott
35876eaab9
Import tmux, a terminal multiplexor allowing (among other things) a single
...
terminal to be switched between several different windows and programs
displayed on one terminal be detached from one terminal and moved to another.
ok deraadt pirofti
2009-06-01 22:58:49 +00:00